0
Duplizieren von Datensatz mit Untertabelle die 2.
Hallo,
ich kriege es einfach nicht hin. Es gibt hier ja schon ein Thema diesbezüglich. Ich versteh ja den eigentlichen Ablauf der Funktion, bekomme es aber nicht hin.
Ich habe eine Tabelle "DropPP" mit zum testen einem Textfeld "Text".
Hierin eine Untertabelle "Testtab" mit einem Textfeld "Testfeld".
let ND := number(Nr);
let tText := Text;
let neuDok := (create DropPP);
neuDok.(Text := tText);
let neuPosDok := neuDok.Nr;
for p in select Testtab where number(DropPP.Nr) = ND do
let tTestfeld := p.Testfeld;
let neuPos := (create Testtab);
neuPos.(DropPP.Nr := neuPosDok);
neuPos.(Testfeld := tTestfeld)
end
Eine neuer Datensatz wird auch angelegt. Das Feld "Text" wird auch gefüllt.
Aber in der Untertabelle erscheint nix. Im Ursprungsdatensatz sind aber 2 Positionen angelegt.
??????
Schon mal vielen Dank für die Hilfe.
Frauke
ich kriege es einfach nicht hin. Es gibt hier ja schon ein Thema diesbezüglich. Ich versteh ja den eigentlichen Ablauf der Funktion, bekomme es aber nicht hin.
Ich habe eine Tabelle "DropPP" mit zum testen einem Textfeld "Text".
Hierin eine Untertabelle "Testtab" mit einem Textfeld "Testfeld".
let ND := number(Nr);
let tText := Text;
let neuDok := (create DropPP);
neuDok.(Text := tText);
let neuPosDok := neuDok.Nr;
for p in select Testtab where number(DropPP.Nr) = ND do
let tTestfeld := p.Testfeld;
let neuPos := (create Testtab);
neuPos.(DropPP.Nr := neuPosDok);
neuPos.(Testfeld := tTestfeld)
end
Eine neuer Datensatz wird auch angelegt. Das Feld "Text" wird auch gefüllt.
Aber in der Untertabelle erscheint nix. Im Ursprungsdatensatz sind aber 2 Positionen angelegt.
??????
Schon mal vielen Dank für die Hilfe.
Frauke
15 Antworten
-
Hallo Frauke,
versuch mal so:
---let ND := number(Nr);
let tText := Text;
let neuDok := (create DropPP);
neuDok.(Text := tText);
let neuPosDok := neuDok.Nr;
for p in Testtab do
let tTestfeld := p.Testfeld;
let neuPos := (create Testtab);
neuPos.DropPP := neuPosDok;
neuPos.Testfeld := tTestfeld
end
---
Da Testtab eine Untertabelle ist, kannst du diese ohne select ansprechen, dann wird Ninox nur die verknüpften Datensätze in der Schleife durchlaufen. -
Ich bin begeistert :-)
Funktioniert.
Herzlichen Dank! -
Hallo Frauke, Hallo Leo,
da ich Ninox "verstehen" möchte, habe ich das o.a. Beispiel 1:1 nachvollzogen.
Bei mir ist das Ergebnis:
Der Datensatz in DropPP wird dort kopiert, in der Untertabelle "Testtab" passiert nichts.
Habe ich wieder mal was nicht verstanden?
Woran könnte das liegen? -
Meine Frage kann natürlich so keiner beantworten, darum die DB bei Dropbox:
https://www.dropbox.com/s/ryin819qiem3rhl/DroPP.ninox?dl=0 -
Du hast auch keine Datensätze in Testlab. Die Idee ist hier, dass Ninox die Datensätze aus der verknüpften Tabelle (Testtab) übernimmt.
-
Funxt auch nicht wirklich. Hab mal nen Screenshot der Tabelle gemacht.
Ich brauche: Ware zu Ware, dann Farbe zu Farbe, dann erst Größe.
https://www.dropbox.com/s/yn861gcjtfedr6d/Bildschirmfoto%202018-02-23%20um%2012.59.02.png?dl=0 -
Ups, falsches Thema. Gehört in Sortierung für PDF-Druck.
-
Hallo Leo,
erstmal Danke für die Antwort.
Verstehe ich aber immer noch nicht. Auch wenn ich Datensätze in Testtab habe, passiert nichts, außer, dass in der Haupttabelle ein neuer, leerer Datensatz angelegt wird.
Ist da nicht doch irgendein Fehler im script?
Ich will nicht nerven, würde es aber gerne verstehen. -
Vielen Dank für den link, jetzt habe ich es begriffen.
-
Hallo Zusammen,
habs geschafft mich zu registrieren.. ;-)
ich arbeite gerade daran dieses Thema weiter zu entwickeln und komme derzeit nicht weiter.
Ich möchte auf Knopfdruck einen Datensatz inkl. Untertabelle in eine andere Tabelle kopieren
das ist der aktuelle Code:
let ND := number(Nr);
let tText := Text;
let neuDok := (create DropPP2);
neuDok.(select DropPP2).('Text 2' := tText);
let neuPosDok := neuDok.Nr;
for p in (select DropPP2).Testtab2 do
let NP := p.number(Nr);
let tTestfeld := p.(select DropPP).Testtab.Testfeld;
let neuPos := (create DropPP2).Testtab2;
neuPos.DropPP2.(Testtab2 := neuPosDok)
end
Ich bekomme die Meldung
Die Tabellenspalte ist kein einfaches Datenfeld: Testtab2 in Zeile 10, Spalte 28
Anbei das erweiterte Beispiel zum Download .
Könnt ihr mir helfen?
Vielen Dank im Voraus
Tobias -
Hallo Tobias,
kannst du bitte den Link zum Download als Text einfügen.
Die Tags für Link scheinen fehlerhaft zu sein
Grüße
Leo -
Hey Leo,
danke für die schnelle Antwort..
Hier noch mal der Link als Text, hoffe der Download funktioniert nun.
https://www.dropbox.com/s/hmqsjs79vx6atu9/DroPP2.ninox?dl=0
VG
Tobias -
Hallo Tobias,
Die Formel wäre:
let ND := Nr;
let tText := Text;
let neuDok := (create DropPP2);
neuDok.(DropPP := ND);
neuDok.('Text 2' := tText);
let neuPosDok := neuDok.Nr;
for p in Testtab do
let NP := p.Nr;
let tTestfeld := p.Testfeld;
let neuPos := (create Testtab2);
neuPos.(Testfeld2 := tTestfeld);
neuPos.(DropPP2 := neuPosDok)
end
Ich habe noch die Verknüpfung von DropPP2 zu DropPP eingebaut.
grüße
Leo -
Hey Leo,
vielen Dank für die schnelle Hilfe. Ich glaube ich habe verstanden, was der Fehler war.
Jetzt mal sehen ob ich es auf meine Anwendung umsetzten kann.
Grüße
Tobias
Content aside
- vor 6 JahrenZuletzt aktiv
- 15Antworten
- 6017Ansichten