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

15 Antworten

null
    • Leonid_Semik
    • vor 7 JahrenThu, February 22, 2018 at 6:58 PM UTC
    • Gemeldet - anzeigen
    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.
    • fherroeder
    • vor 7 JahrenFri, February 23, 2018 at 7:06 AM UTC
    • Gemeldet - anzeigen
    Ich bin begeistert :-)
    Funktioniert.
    Herzlichen Dank!
    • Holzi
    • vor 7 JahrenFri, February 23, 2018 at 10:17 AM UTC
    • Gemeldet - anzeigen
    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?
    • Holzi
    • vor 7 JahrenFri, February 23, 2018 at 10:40 AM UTC
    • Gemeldet - anzeigen
    Meine Frage kann natürlich so keiner beantworten, darum die DB bei Dropbox:
    https://www.dropbox.com/s/ryin819qiem3rhl/DroPP.ninox?dl=0
    • Leonid_Semik
    • vor 7 JahrenFri, February 23, 2018 at 10:59 AM UTC
    • Gemeldet - anzeigen
    Du hast auch keine Datensätze in Testlab. Die Idee ist hier, dass Ninox die Datensätze aus der verknüpften Tabelle (Testtab) übernimmt.
    • fherroeder
    • vor 7 JahrenFri, February 23, 2018 at 11:21 AM UTC
    • Gemeldet - anzeigen
    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
    • fherroeder
    • vor 7 JahrenFri, February 23, 2018 at 11:24 AM UTC
    • Gemeldet - anzeigen
    Ups, falsches Thema. Gehört in Sortierung für PDF-Druck.
    • Holzi
    • vor 7 JahrenFri, February 23, 2018 at 2:24 PM UTC
    • Gemeldet - anzeigen
    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.
    • Leonid_Semik
    • vor 7 JahrenFri, February 23, 2018 at 2:40 PM UTC
    • Gemeldet - anzeigen
    • Holzi
    • vor 7 JahrenFri, February 23, 2018 at 9:05 PM UTC
    • Gemeldet - anzeigen
    Vielen Dank für den link, jetzt habe ich es begriffen.
    • tobiasehn
    • vor 7 JahrenSun, February 25, 2018 at 8:57 AM UTC
    • Gemeldet - anzeigen
    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
    • Leonid_Semik
    • vor 7 JahrenSun, February 25, 2018 at 9:07 AM UTC
    • Gemeldet - anzeigen
    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
    • tobiasehn
    • vor 7 JahrenSun, February 25, 2018 at 9:12 AM UTC
    • Gemeldet - anzeigen
    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
    • Leonid_Semik
    • vor 7 JahrenSun, February 25, 2018 at 9:39 AM UTC
    • Gemeldet - anzeigen
    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
    • tobiasehn
    • vor 7 JahrenSun, February 25, 2018 at 9:52 AM UTC
    • Gemeldet - anzeigen
    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 7 JahrenSun, February 25, 2018 at 9:52 AM UTCZuletzt aktiv
  • 15Antworten
  • 6024Ansichten