0

Schleife über alle Datensätze einer Tabelle

Hallo, finde einfach den Fehler nicht:

Über einen Button sollen in die Tabelle Umfrage_TN Datensätze aus der aktuell geöffneten Tabelle geschrieben werden. Für den gerade geöffneten Datensatz klappt das mit. In der Tabelle Umfrage_TN wird ein Datensatz angelegt und die entsprechenden Felder gefüllt:

let thisUmf := this.Umfrage;
let P_ID := concat(lower('ID Frage 1'), lower('ID Frage 2'), lower('ID Frage 3'));
let TN := first((select Teilnehmer)[concat(IF1, IF2, IF3) = P_ID]).number(Nr);
let AnzF := 'Anzahl Fächer';
let thisFach01 := 'Fach 1';
let Fach_01 := first((select Fach)[Fach like thisFach01]).number(Nr);
let thisFach02 := 'Fach 2';
let Fach_02 := first((select Fach)[Fach like thisFach02]).number(Nr);
if cnt((select Umfrage_TN)[Teilnehmer.number(Nr) = TN and Umfrage = thisUmf]) = 0 then
    let myUmTn := (create Umfrage_TN);
    myUmTn.('Fach 1' := Fach_01);
    myUmTn.('Fach 2' := Fach_02);
    if 'Fach 3' != null then
        let thisFach03 := 'Fach 3';
        let Fach_03 := first((select Fach)[Fach like thisFach03]).number(Nr);
        myUmTn.('Fach 3' := Fach_03)
    end;
    myUmTn.(Umfrage := thisUmf);
    myUmTn.(Teilnehmer := TN);
    myUmTn.('Anzahl Fächer' := AnzF)
end

 

Baue ich die eine Schleife ein wie folgt, passiert gar nichts. Sieht jemand den Fehler?

let thisUmf := this.Umfrage;
for i in this do
    let P_ID := concat(i.lower('ID Frage 1'), i.lower('ID Frage 2'), i.lower('ID Frage 3'));
    let TN := first((select Teilnehmer)[concat(IF1, IF2, IF3) = P_ID]).number(Nr);
    let AnzF := i.'Anzahl Fächer';
    let thisFach01 := i.'Fach 1';
    let Fach_01 := first((select Fach)[Fach like thisFach01]).number(Nr);
    let thisFach02 := i.'Fach 2';
    let Fach_02 := first((select Fach)[Fach like thisFach02]).number(Nr);
    if cnt((select Umfrage_TN)[Teilnehmer.number(Nr) = TN and Umfrage = thisUmf]) = 0 then
        let myUmTn := (create Umfrage_TN);
        myUmTn.('Fach 1' := Fach_01);
        myUmTn.('Fach 2' := Fach_02);
        if i.'Fach 3' != null then
            let thisFach03 := i.'Fach 3';
            let Fach_03 := first((select Fach)[Fach like thisFach03]).number(Nr);
            myUmTn.('Fach 3' := Fach_03)
        end;
        myUmTn.(Umfrage := thisUmf);
        myUmTn.(Teilnehmer := TN);
        myUmTn.('Anzahl Fächer' := AnzF)
    end
end;

 

Danke. Maurice

2 Antworten

null
    • Geschäftsführerin bei Kennes Digital
    • Stefanie_K
    • vor 10 Monaten
    • Gemeldet - anzeigen

    "this" bezieht sich nur auf den einen aktuell geöffneten Datensatz. Für die Schleife brauchst du eine select-Anweisung

      • Maurice
      • vor 10 Monaten
      • Gemeldet - anzeigen

       Danke. Hatte auch inzwischen mit select probiert mit Erfolg. Bei einem anderen Button hatte ich mit "this" die Tabelle angesprochen, aber da lag ich wohl falsch im Sinne: es ist passiert, was ich wollte, aber nicht mit dem richtigen Code. :-)

Content aside

  • Status Answered
  • vor 10 MonatenZuletzt aktiv
  • 2Antworten
  • 37Ansichten
  • 2 Folge bereits