0

Befehlsschaltfläche: mehrere Spalten (Unique) von einer HT in eine UT kopieren

Hallo und guten Morgen Ninox Gemeinde, 

ich scheitere gerade an ein Script um den Inhalt aus 4 Spalten nur für das Jahr “2020”, in eine Untertabelle zu kopieren. 

Mein Gedanke war, ein Jahr in ein Feld einzutragen, dass per Befehlsschaltefläche beim Kopieren berücksichtigt.

 

Das kopieren einer einzelne Zeile funktioniert mit diesem Script aber leider scheitere ich am Rest...

let me := this;
let myNewRecord := (create “DVF Erfolgsliste”);
myNewRecord.(Year := me.Year);
myNewRecord.(“Name of the Salon/Circuit” := me.“Name of the Salon/Circuit”);
myNewRecord.(PSA := me.PSA);
myNewRecord.(FIAP := me.FIAP)

 

Viele Grüße

Jerry

13 Antworten

null
    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Jerry,
    Ich vermute, wenn du Tabelle DVF Erfolgliste öffnest, findest du deine Datensätze. Die sind aber nich mit dem Datensatz der Haupttabelle verknüpft.
    Der Kode dafür sollte so Laufen:

    ---

    let me := this;
    let myNewRecord := (create “DVF Erfolgsliste”);
    myNewRecord.NAMEDERHAUPTTABELLE:=me;
    myNewRecord.(Year := me.Year);
    myNewRecord.(“Name of the Salon/Circuit” := me.“Name of the Salon/Circuit”);
    myNewRecord.(PSA := me.PSA);
    myNewRecord.(FIAP := me.FIAP)

    ---

    Die doppelten Anführungszeichen durch einfache ersetzen.

     

    Leo

    • JerryLouis_Ruff
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Leo ich danke Dir ganz herzlichst,

    ja es funktioniert, wäre es theoretisch möglich die 4 unten stehenden Spalten komplett in einen Rutsch in die Untertabelle “DVF Erfolgsliste” ohne Duplikate zu kopieren?

    myNewRecord.(Year := me.Year);
    myNewRecord.(“Name of the Salon/Circuit” := me.“Name of the Salon/Circuit”);
    myNewRecord.(PSA := me.PSA);
    myNewRecord.(FIAP := me.FIAP)

     

    Mein Gedanke war, dass ich zum Beispiel mein Wunschjahr in ein Feld eintrage und die 4 Spalten aus der HT in die UT mit entsprechenden eingetragenen Jahr und ohne Duplikate kopiert werden. 

     

    Vielen herzlichen Dank 

    Jerry

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Jerry,

    was heißt ohne Duplikate? Weche Felder werden geprüft?

    • JerryLouis_Ruff
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Leo,

    ich habe eine “Adminseite” aufgebaut, in dem ich gezielt bestimmte aktivitäten vornehme, wie zum Beispiel neue Titel prüfen. 

    Auf der “Adminseite” habe ich ein Zahl-Feld und ein fx-Feld eingebaut, dass als Ziel hatte, die HT (Success List (International)) auf diese vier Spalten zu prüfen und wenn das Jahr “x” im Zahlenfeld in der HT vorhanden ist, dann alle vier Spalten mit dem Jahr “x” rein zu kopieren. 

    myNewRecord.(Year := me.Year);
    myNewRecord.(“Name of the Salon/Circuit” := me.“Name of the Salon/Circuit”);
    myNewRecord.(PSA := me.PSA);
    myNewRecord.(FIAP := me.FIAP)

     

    Bei einer Teilnahme in ein internationalen Wettbewerb nimmt man mit vier Bilder (vier verschiedene Bildtitel * x Sparten) in einer Sparte teil, dadurch würde vier mal unten stehende Zeilen kopiert werden: 

    2nd GCPA International 2020 PSA 2020-442 FIAP (null) 2020
    2nd GCPA International 2020 PSA 2020-442 FIAP (null) 2020
    2nd GCPA International 2020 PSA 2020-442 FIAP (null) 2020
    2nd GCPA International 2020 PSA 2020-442 FIAP (null) 2020

     

    Da ich aber in der UT nur die Auswertung vornehme, würde ich nur einmal benötigen.

    2nd GCPA International 2020 PSA 2020-442 FIAP (null) 2020

    Leider werden meine Screenshots nicht angezeigt? 

     

    Meine Datenbankstruktur würde so aussehen: 

    Adminseite klick ich auf Befehlsschaltfläche 

    4 Spalten in der HT werden in der Untertabelle (unique) kopiert

    (alle Tabellen sind miteinander verknpüft) 

     

    Viele Grüße

    Jerry

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Jerry,

    leider verstehe ich immer noch nicht. Wie viele Tabellen gibt es insgesamt, 

    • JerryLouis_Ruff
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Leo,

    es gibt die Tabelle “Administration” mit Befehlsschaltfläche um in den Haupttabelle die vier Spalten die in Untertabelle kopieren soll. 

    Viele Grüße

    Jerry

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Also 3 Tabellen? Kannst du bitte die Bilder irgendwo auf Cloud posten? Ich verstehe immer noch nicht was du möchtest.
    Wenn du für 4 (bzw. für alle)  Datensätze in der UT einen HT Datensatz erzeugen möchtest wo die 4 Felder übereinstimmen und dort die 4 Felder rein schreiben dann:
    ---

    for i in select UT do
    if not i.HT then
    if cnt(select HT [FELD1=i.FELD1 and FELD2=i.FELD2 and FELD3=i.FELD3 and FELD4=i.FELD4])=0 then
    let new:=create HT;
    i.HT:=new;
    new.FELD1:=i.FELD1;
    new.FELD2:=i.FELD2;
    new.FELD3:=i.FELD3;
    new.FELD4:=i.FELD4;
    else
    let my:=first(select HT [FELD1=i.FELD1 and FELD2=i.FELD2 and FELD3=i.FELD3 and FELD4=i.FELD4]);
    i.HT:=my
    end
    end
    end

    ---

    Leo

    • JerryLouis_Ruff
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, ich danke Dir.

    Ich habe drei screenshots gemacht und in Dropbox abgelegt. 

    Screenshot “Administration” hat Befehlsschaltfläche und Feld für das Jahr

    Screenshot HT hat die gepflegten Felder die in 

    Schreenshot UT kopiert werden sollen.

    Viele Grüße

    Jerry

    Die Felder habe ich in rot markiert die gleich sind. 

    https://www.dropbox.com/sh/7lw5ncum9yxg93r/AAAkoef99N8QH72Y69ea0Ue-a?dl=0

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Dann ist es doch umgekehrt: Die Tabelle Success List (International) ist eine Untertabelle und die Tabelle DVF Erfolgsliste ist eine Haupttabelle weil zu einem Datensatz meherere Datensätze von Success List gehören können. Aus der Bilder kann ich nicht erkennen ob die zwei Tabellen miteinnander vrknüpft sind. Welche Tabelle ist mit welcher verknüpft?

    • JerryLouis_Ruff
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, 

    Success List (International) beinhaltet alle gepflegte Daten aus allen Jahren (2015 bis 2021)

    DVF Erfolgsliste ist leer (dient nur für Auswertungen und für Anträge).

     

    Wenn ich die DVF Erfolgsliste öffne und mir die Verknüpfung mit Success List (International) anzeigen lasse, dann wird mir N:1 angezeigt. 

    (Screenshot habe ich in Dropbox abgelegt)

     

    Feld 1/2/3/4 soll aus der Tabelle Success List (International) in die DVF Erfolgsliste für ein bestimmtes Jahr übertragen werden, wenn ich auf der Administrationsseite (N:1 Verknüpfung zu beiden) die Befehlsschaltfläche + Feld “Zahl für das entsprechende Jahr” anwähle.

     

    Viele Grüße

    Jerry

    • JerryLouis_Ruff
    • vor 3 Jahren
    • Gemeldet - anzeigen
    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Jerry,

    ---

    let me := this;
    if me.Jahr then
    let myselect:=select “Success List (International)” where Year=me.Jahr
    for i in myselect do
    if not i.“DVF Erfolgsliste” then
    let myChoice:=(select “DVF Erfolgsliste” where Year =i.Year and “Name of the Salon/Circuit” := i.“Name of the Salon/Circuit” and PSA := i.PSA and FIAP := i.FIAP);

    if cnt(myChoiche)=0 then 

    let myNewRecord := (create “DVF Erfolgsliste”);
    i.“DVF Erfolgsliste”:=myNewRecord;
    myNewRecord.(Year := i.Year);
    myNewRecord.(“Name of the Salon/Circuit” := i.“Name of the Salon/Circuit”);
    myNewRecord.(PSA := i.PSA);
    myNewRecord.(FIAP :=i.FIAP)

    else

    let myExistRecord:=first(myChoice);
    i.“DVF Erfolgsliste”:=myExistRecord

    end

    ---

     

    wen es auch nicht hinhaut, lass dir einen Termin mit Ninox support geben und zeig dort die DB. Es ist nicht möglich so etwas per Ferndiagnose und mit kaputtem Forum zu realisieren.

    Leo

    • JerryLouis_Ruff
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, 

    ich Danke Dir, ich probiere es aus und ggf melde ich mich beim Support

    Vielen Dank für deine Hilfe 

    Viele Grüße

    Jerry

Content aside

  • vor 3 JahrenZuletzt aktiv
  • 13Antworten
  • 1026Ansichten