Neuer Datensatz aus Untertabelle in eine andere Untertabelle der gleichen Haupttabelle
Hallo,
ich möchte aus einer Untertabelle in einer anderen Untertabelle der gleichen Haupttabelle einen neuen Datensatz erzeugen:
let my := this;
let myNew := (create Aktiendividenden);
myNew.(Aktie = my.AG);
myNew.(Datum := my.'Datum der Hauptversammlung' + 3);
myNew.('Dividende pro Stück in Landeswährung' := my.'vorgeschlagene Dividende pro Stück');
popupRecord(myNew)
Was mir nicht gelingt, ist, dem neuen Datensatz mitzuteilen, diesem neuen Datensatz der entsprechenden Aktie zuzuordnen. Zwar wird ein neuer Datensatz angelegt, auch die Felder werden befüllt, aber ich muss per Hand noch die entsprechende Aktie auswählen. Auch das möchte ich automatisieren, weiss aber nicht wie.
Vielen Dank für Tipps.
11 Antworten
-
Du definierst eine Variable mit dem Inhalt der Verknüpfung zur Haupttabelle und ordnest dann diese Variable der Verknüpfung zu.
let vHaupttabelle := 'Verknüpfung Haupttabelle';
myNew.'Verknüpfung Haupttabelle' := vHaupttabelle -
Du musst der Untertabelle die ID des neuen Datensatzes zuweisen.... z.B:
DEINEUNTERTABELLE := 14
verknüpft deine Untertabelle mit dem Datensatz mit der ID 14.
Da Ninox die IDs automatisch vergibt und intern immer weiter hochzählt, kannst du den neuen Datensatz nach deinem create-script oben mit
last(select Aktiendividenden).Nr
herausfinden und der Untertabelle zuweisen
-
Ein Beispiel findest du in der 0001_Ninox-Reference in der Tabelle 'Praxisbeispiele/Examples' unter der 007.
-
Hallo, wenn die Haupttabelle bspw. "Aktien" heißt, dann heißen wahrscheinlich auch die Verknüpfungen in den Untertabellen so (wenn der Name nicht bewusst geändert wurde). Von daher würde ich spekulativ mal folgendes vorschlagen:
let my := this;
let myNew := (create Aktiendividenden);
myNew.(Aktien = my.Aktien);
[...]
-
Und es fehlt ein Doppelpunkt vor dem Gleichheitszeichen bei myNew.Aktie
-
Stimmt, danke für den Hinweis, Uwe! Also noch mal:
let my := this;
let myNew := (create Aktiendividenden);
myNew.(Aktien := my.Aktien);
[...]
-
Hallo Axel, hatte das Script von A.Wegner gemeint und in meiner Antwort wohl wieder zuweit gedacht.
Wenn er aus der Untertabelle einen neuen Datensatz in eine andere Untertabelle erzeugt fehlt ja erstmal der Bezug zur Haupttabelle. Deshalb mein Scriptvorschlag. Ist halt blöd wenn wan das Datenmodell nicht kennt und weiss von wo das Feld herkommt. Dann spekuliert man halt. -
Ach so, ja, aber ich hatte den Fehler ja übernommen und fühlte mich deshalb auch angesprochen.
Die ID des Datensatzes der Haupttabelle ist ja automatisch in dem Moment gegeben, da ich in der Untertabelle den neuen Datensatz anlege (auch, wenn die Verknüpfung im Formular der Untertabelle nicht angezeigt wird). Also kann man sie wie jedes andere Datenfeld an den neuen Datensatz übergeben. Das Spekulative lag in diesem Fall eher in den Bezeichnungen der Verknüpfungen. Man weiß halt nicht, was "Aktie" (ohne Mehrzahl-n) oder "AG" für Felder sind. Es kann aber auch sein, dass es die Namen der Verknüpfungen sind und die Nichtzuordnung tatsächlich nur an dem fehlenden Doppelpunkt lag, den du bemerkt hast.
-
Vielen Dank für die vielen Antworten - ich habe den ersten Tipp von Master UweG umgesetzt, und es funktioniert so, wie ich es mir gewünscht habe. Ich würde mich freuen, wenn mir jemand erklären könnte, was die zwei neuen Zeilen Code tatsächlich machen und warum diese notwendig sind, also :
let vHaupttabelle := 'Verknüpfung Haupttabelle';
myNew.'Verknüpfung Haupttabelle' := vHaupttabelleVielen Dank für die schnelle Hilfe!
-
Ich habe sie so verstanden, dass du aus der einen Untertabelle einen neuen Record in einer anderen Untertabelle erstellen möchtest. Dabei möchtest du aber in dem neuen Record der zweiten Untertabelle eine automatische Verknüpfung zum entsprechenden Record der Haupttabelle haben die mit dem auslösenden Record der ersten Untertabelle verknüpft ist.
Mit der ersten Zeile des ScriptCode weist du einer Variablen 'vHaupttabelle' die VerknüpfungsID des Records der Haupttabelle zu, auf den sich der Record der ersten Untertabelle bezieht.
Mit der zweiten Zeile weist du dem Verknüpfungsfeld im neu erstellten Record der zweiten Untertabelle diese VerknüpfungsID als Variable zu.Ich hätte mit meinem Vorschlag auch falsch liegen können, wenn die Annahme von Tobias oder Copytexter zu deiner Fragestellung die Richtige wäre.
-
Vielen Dank!
Content aside
- vor 3 JahrenZuletzt aktiv
- 11Antworten
- 1175Ansichten