0

Verschachtelte for-Schleifen

Hallo NINOX-Gemeinde,

dürfen for-Schleifen ineinander verschachtelt werden?

Ich habe in einem Formular ein Mehrfach-Auswahlfeld mit Namen (to) und möchte aus den Datensätzen einer untergeordneten Tabelle (Kontakte) entsprechend der ausgewählten Einträge des Auswahlfeldes die eMail-Adressen in einem berechneten Feld zusammenstellen.

Allerdings wird die äußere Schleife immer nur für den ersten Datensatz durchlaufen.

Gibr es hier eine Idee, was ich falsch mache? 

let myAr := split(text('to'), ",");
for myName in myAr do
     for myRec in Kontakte do
          if myRec.(Vorname + " " + Name) = myName then
               myName + " " + text(first(myRec.KontakteEMail[Typ = "Arbeit"].'E-Mail'))
           end
     end
end

Besten Dank und viele Grüße aus Thüringen 

Jörg

3 Antworten

null
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo Jörg,

    brauchst du wirklich Schleifen dafür? Ich möchte jetzt nicht die Sinnhaftigkeit solchen Konstrukt in Frage stellen. Meiner Meinung nach währe es viel besser, eine Verknüpfung zu Kontakten anstatt Mehrfachauswahlfeld zu benutzen.

    Wenn du dir sicher bist, dass die Untertabelle Kontakte mehr als einen Kontakt beinhaltet (also es sind mehrere Kontakte im Formularansicht sichtbar), dann würde ich so versuchen:

    ---

    let myAr := text('to');
    join(Kontakte[contains(myAr, Vorname + " " + Name)].(Vorname + " " + Name + " " + first(KontakteEMail[text(Typ)="Arbeit"].'E-Mail')), "
    ")

    ---

     

    Leo

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Ah so, Berechnungsfeld sollte mehr als eine Zeile beinhalten (Unteren Rand nach Unten ziehen)

     

    Leo

    • jmbrenn_webde
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Besten Dank Leo, 

    durch Deinen alternativen Code funktioniert es jetzt wie erwartet. Mit der direkten Verknüpfung zu den Kontakten hast Du absolut recht, das wäre die NINOX-/DB-adäquate Herangehensweise. Allerdings geht es mir hier primär um die Formularfunktionalität ein to- sowie cc-email-Adressfeld mit einfachen Mouseklicks zu füllen.

    Ein schönes Wochenende und viele Grüße 

    Jörg