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
-
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
...
-
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.
-
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 -
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
-
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.
-
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 .
-
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
-
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
-
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. ;)
-
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 ;-)
-
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
-
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
Content aside
- vor 5 JahrenZuletzt aktiv
- 12Antworten
- 2986Ansichten