0

Schleife einbinden

Guten Morgen zusammen,

wenn das Feld "Urvater" auf "nein" gesetzt ist, soll das Feld "Eigenschaft-Ausgabe" den Inhalt des Feldes "Eigenschaft-Auswahl" des entsprechenden Urvaters (= max. übergeordnetster Vater) anzeigen.

PS: Das Feld "Eigenschafts-Eingabe" verweist auf eine eigene Tabelle und wird nur angezeigt, wenn das Feld "Urvater" auf "ja" gesetzt ist.

Für den Datensatz Nr. 4 funktioniert dies auch bereits soweit.

Für die noch tiefer verschachtelten Datensätze benötige ich jedoch Eure Hilfe:

Wie muss hierzu die notwendige Schleife im Code des Feldes "Eigenschaft-Ausgabe" ergänzt werden/ aussehen?

Siehe hierzu auch folgende Ansicht:
https://share.ninoxdb.de/aga4r2m998en6coijx504r5jenu2w3vcd6vf

Vielen Dank im Vorfeld für Eure Hilfe!

Tobias

4 Antworten

null
    • schallertobias
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Nachtrag:

     

    bisheriger Code des Feldes "Eigenschaft-Ausgabe":

    let Urvatername := Vater.Name;
    if Urvater = false then
    text((select Personentabelle)[Name = Urvatername].'Eigenschaft-Auswahl'.Beschreibung)
    end

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Tobias, auf die Schnelle einfach mal ins Blaue geschossen:

    if Urvater = false then
    let Urvatername := Vater.Name;
       first((select Personentabelle)[Name = Urvatername].text('Eigenschaft-Auswahl'))
    end

    • schallertobias
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo zusammen,

    bin mittlerweile selbst auf die Lösung gekommen. Für alle, die es interessiert:

    let Vatername := Vater.Name;
    let merker := "";
    if Urvater = false then
       while merker = "" do
          if text((select Personentabelle)[Name = Vatername].'Eigenschaft-Auswahl'.Beschreibung) = "" then
             Vatername := text((select Personentabelle)[Name = Vatername].Vater.Name)
          else
             merker := "a"
          end
       end;
       text((select Personentabelle)[Name = Vatername].'Eigenschaft-Auswahl'.Beschreibung)
    end

    PS: vom eigentlichen Code abgesehen, habe ich Urvatername durch Vatername ersetzt. Davon bitte nicht stören lassen.

    VG

    Tobias

    • schallertobias
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Weitere Anmerkung:

    Der obige Quelltext funktioniert bei bestehenden Datenstätzen, führt aber bei der Anlage neuer Datensätze zu Fehlern. Grund: Das Feld "Vater" ist im Moment der Neuanlage noch leer. Dies lässt sich vermeiden, indem man den "obigen Quelltext" in eine weitere "If-Bedingung" setzt:

    if Vater != "" then

        bisheriger Quelltext

    end

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 4Antworten
  • 1283Ansichten