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
- 
  
"this" bezieht sich nur auf den einen aktuell geöffneten Datensatz. Für die Schleife brauchst du eine select-Anweisung
 
Content aside
- Status Answered
 - vor 2 JahrenZuletzt aktiv
 - 2Antworten
 - 62Ansichten
 - 
    2
    Folge bereits
    
 
