duplizieren von Datensätzen inkl Duplizierung von verknüpften Datensätzen
Ausgangslage:
Tabelle «Budgetplanung» mit verschiedenen Budgetpositionen (einzelne Datensätze). Im Datensatz gibt es eine1:N-Verknüpfung zur Tabelle «BudgetplanungEinzelpositionen» und eine Befehlsschaltfläche «Uebernahme in neues Finanzjahr» mit folgendem Code:
let new := duplicate(this);
new.(Finanzjahr := Finanzjahr + 1);
new.(Planungsstatus := 1);
new.(Bewilligungsdatum := "");
new.('CAPEX-Nr' := "");
new.('Genehmigter Betrag' := "");
new.(Erstellungsstatus := 1);
for i in Einzelpositionen do
let newPos := (create BudgetplanungEinzelpositionen);
new.Einzelpositionen.('Bezeichnung Einzelposition' := "");
new.Einzelpositionen.('geplanter Posititonsbetrag' := "");
new.Einzelpositionen.('Positionsbegründung / Erklärung' := "");
closeRecord();
popupRecord(new)
end
Ziel
Durch ausführen der Befehlsschaltfläche soll der aktuelle Datensatz aus der Tabelle Budgetplanung dupliziert werden. Ebenso sollen die verknüpften Datensätze der Tabelle «BudgetplanungEinzelpositionen» auch dupliziert (inkl. der Werte) werden und mit dem neu erstellten Datensatz der Tabelle «Budgetplanung» verknüpft werden.
Problemstellung:
Beim Auslösen der Befehlsschaltfläche wird der Datensatz aus der Tabelle «Budgetplanung» wie gewünscht dupliziert. Ebenso werden für die Anzahl der verknüpften Datensätze der Tabelle BudgetplanungEinzelpositionen» neu Datensätze angelegt.
Allerdings sind diese neu angelegten Datensätze in «BudgetplanungEinzelpositionen» komplett leer und auch nicht verknüpft.
Weiss jemand wo mein Denkfehler liegt?
3 Antworten
-
Moin,
let new := duplicate(this);
new.(Finanzjahr := Finanzjahr + 1);
new.(Planungsstatus := 1);
new.(Bewilligungsdatum := "");
new.('CAPEX-Nr' := "");
new.('Genehmigter Betrag' := "");
new.(Erstellungsstatus := 1);
for i in Einzelpositionen do
let newPos := (create BudgetplanungEinzelpositionen);
newPos.('Bezeichnung Einzelposition' := i.'Bezeichnung Einzelposition');
newPos.('geplanter Posititonsbetrag' := i.'geplanter Posititonsbetrag');
newPos.('Positionsbegründung / Erklärung' := i.'Positionsbegründung / Erklärung');
newPos.('Name_der_Verknüpfung_zu_Budgetplanung' := new)
end;
closeRecord();
popupRecord(new)
lg, Torsten
-
Hallo Stonie,
mit create BudgetplanungEinzelpositionen erstellst du einen neuen Datensatz, deswegen ist er auch leer. Wenn die Beziehung als Komposition gekennzeichnet wird, werden auch die Einzelpositionen mit kopiert. Ansonsten würde ich es so versuchen:
---
let me:=this;
let new := duplicate(me);
new.(Finanzjahr := Finanzjahr + 1;
Planungsstatus := 1;
Bewilligungsdatum := null;
'CAPEX-Nr' := null;
'Genehmigter Betrag' := null;
Erstellungsstatus := 1);
for i in me.Einzelpositionen do
let newPos := duplicate (i);
newPos.(Budgetplanung:=new;
'Bezeichnung Einzelposition' := null;
'geplanter Posititonsbetrag' := null;
'Positionsbegründung / Erklärung' := null)
end;
closeRecord();
popupRecord(new)
---
Leo
-
vielen Dank für die Inputs. Mit etwas Anpassung läuft das Script nun einwandfrei.
Weltklasse!
Content aside
- vor 4 JahrenZuletzt aktiv
- 3Antworten
- 606Ansichten