0

Datensatz in neue Tabelle übertragen

Ich habe eine Haupttabelle (Name: Angebot) und eine dazugehörige Untertabelle. Durch die Verknüpfung werden Eintragungen in der Haupttabelle als Tabelle dargestellt mit einem oder mehreren Einträgen. Nun möchte ich, sofern das Angebot angenommen wird (aus ja/nein oder bei Status "gewonnen") diese Einträge, da verschiedene Datumseingaben, jeweils als einzelne neue Einträge/Datensätze mit ggf. weiteren Datenfeldern in eine To-Do-Liste oder ähnliches eingetragen werden.

 

Danke.

12 Antworten

null
    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Rene,

    so etwas wird in einer Schleife erledigt. Z.B.: für Ja/Nein Feld als Trigger nach Änderung:

    ...

    if 'Ja/Nein Feld'=true then

    for i in 'DEINE UNTERTABELLE' do

    let new:=create 'DEINE TODO TABELLE';

    new.Datum:=i.Datum;

    new.Textfeld:=i.Textfeld;

    new.Nummerfeld:=i.Nummerfeld

    end

    end

    ...

    • Rene
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke Leonid. Ich probiere es mal so aus, da kann ich quasi alle Datumsfelder in der Angebotstabelle als nein im Kalender setzen und die Felder der neuen Tabelle als Anzeigekriterium ja im Kalender nutzen. Tolle schnelle Hilde hier im Forum.

    • Rene
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leonid, wofür steht das for i in der Zeile 2. Ich habe es jetzt mal so eingegeben, aber es wird kein neuer Datensatz erzeugt. Habe den Trigger beim Ergebnisfeld hinterlegt.

    if Ergebnis = 1 then
    for Einsatzdatum in Einsatzplanung do
    let new := (create 'To-do-Liste');
    new.(Erstellt := Einsatzdatum)
    end
    end

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Rene,

    i ist eine Variable in der Schleife. in jedem Schritt wird der neue Datensatz durch i ersetzt. Deine Formel sollte dann so sein:

    if Ergebnis = 1 then
    for i in Einsatzplanung do
    let new := (create 'To-do-Liste');
    new.(Erstellt :=i.Einsatzdatum)
    end
    end

    Leo

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Wobei der neue Datensatz in der 'Todo-Liste' m. E. ja auch mit Renés Code angelegt worden sein müsste, oder? Leer natürlich, aber der Datensatz selbst (oder auch mehrere) müsste doch eigentlich existieren. Falls also wirklich kein neuer To-do-Datensatz angelegt wurde, nicht mal ein leerer, dann sollte man vielleicht auch die if-Bedingung checken, also ob das Feld "Ergebnis" tatsächlich einen numerischen Wert beinhaltet und dieser 1 ist.

    • Rene
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leonid, ich habe deine Variente jetzt mal probiert zuerst beim Feld Ergebnis unter Scriptausführung nach Änderung, hier funktionierte es nicht und dann habe ich es gelöscht und in der Tabelle unter Scriptausführung nach Änderung geschrieben. Funktionkierte auch nicht. Wann erkennt das System die Änderung, nach Schließung übeer x ? Das Feld Ereignis steht in der Haupttabelle und die Felder für die neue Tabelle (To-Do...) stehen in der Untertabelle Einsatzplanung. Das Feld Ergebnis ist ein Auswahlfeld gewonnen = 1, verloren = 2 und offen = 3 .

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Rene,

    ich vermute, wenn du die Tabelle To-do-Liste öffnest, findest du alle neue Datensätze. Diese sind aber nich mit dem Datensat aus der Tabelle Angebot verknüpft, deswegen siehst du diese auch in der Untertabelle nicht. Der Trigger solltest du schon bei dem Feld Ergebnis setzen aber die Formel muss noch ein Zusatz haben um die Datensätze zu verknüpfen.

    ---

    if Ergebnis = 1 then
    let my:=this;
    for i in Einsatzplanung do
    let new := (create 'To-do-Liste');
    new.(Erstellt :=i.Einsatzdatum);
    new.Angebot:=my
    end
    end

    ---

     

    Leo

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter,

    Ich verstehe deine Anmerkung nicht ganz. Der Datensatz in der ToDo Tabelle wird für jeden Datensat der Untertabelle Einsatzplanung neu Angelegt (let new := (create 'To-do-Liste'))

    Leo

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, meine Anmerkung bezog sich auf Renés Aussage: "[...] aber es wird kein neuer Datensatz erzeugt." Ich hatte die Vermutung, dass doch leere Datensätze erzeugt wurden, die nur nicht erkennbar waren.

     

    WENN aber tatsächlich KEINE Datensätze erzeugt worden wären, DANN hätte man vielleicht auch mal schauen müssen, ob die if-Bedingung überhaupt funktioniert. Denn das "create" müsste ja auch in seinem fehlerhaften Code ausgeführt werden.

     

    Hoffe, ich habe es jetzt verständlich ausgedrückt. Aber wahrscheinlich hat es sich ja sowieso erledigt. ;)

    • Rene
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leonid, die Formel hat leider nicht geklappt. Bei der Zeile "new.Angebot:=my" wird immer angezeigt Tabellenspalte Angebot nicht gefunden. Es ist doch eine Tabelle. Und eine Verknüpfung hatte ich gestern zwischen Angebot bzw. Kundenanfrage zu To-do-Liste bereits vorgenommen. Leere Datensätze in der To-do-Liste waren auch nicht da. Danke schon mal für die Hilfe Leonid und Copytexter ;-)

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Rene,

    da hilft nur, wenn du die Datenbank irgendwo postest. Oder du kannst heute ab 16:00 im Webinar dein Problem erklären. Birger wird sich freuen.

    Leo

    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo René,

     

    bei new.Angebot:=my ist mit "Angebot" der Name gemeint, den die Verknüpfung zu 'Angebot' in der Tabelle 'To-Do' hat. Das müsstest Du anpassen, falls abweichend.

     

    lg, Torsten