0

Zahlenfeld in rot

Ich benötige eure Hilfe

Ich habe folgende Situation (Ahnenforschung)

Es gibt für jede Person einen Datensatz mit einer einmaligen ID Nr. (Zahlenfeld),

ein Textfeld mit dem Namen des Vaters und ein Zahlenfeld mit seiner ID Nr.

Für jedes Kind gibt es, so wie für den Vater ein Textfeld und ein Zahlenfeld für die ID Nr.. Die Felder der Kinder sind bezeichnet mit 1. Kind (Textfeld) und 1.Kind ID (Zahlenfeld), 2. Kind und so weiter…

Weiters gibt es ein Ja/Nein Feld ( Ausgewandert).

Ich hätte gerne wenn bei einem Datenblatt Ausgewandert = Ja, dass im Datenblatt des Vaters die ID Nr. des Kindes rot ist

Folgendes habe ich versucht:

Im Ja/Nein Feld Trigger nach Änderung

 

if Ausgewandert = 1 then

let myID := this;

let myVaterID := 'Vater ID';

let myVaterRecord := first(select Person where myVaterID = 'ID-Nr.').Nr;

if myVaterRecord then

styled(text('1.Kind ID'), "", if myVaterRecord.'1.Kind ID' = myID then

"red"

else

"black"

end, "")

end

end

 
Es wird mir kein Fehler angezeigt aber es funktioniert nicht 

7 Antworten

null
    • Torsten_Stang.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo,

     

    bei "if myVaterRecord.'1.Kind ID' = myID" vergleichst Du einen Feldinhalt mit einer (internen) Datensatz-ID, das kann nicht klappen. Vielleicht so:

     

    if Ausgewandert = 1 then
    let myID := this;
    let myVaterRecord := first(select Person where 'ID-Nr.' = myID.'Vater ID').Nr;
    if myVaterRecord then
    styled(text('1.Kind ID'), "", if myVaterRecord.'1.Kind ID' = myID.'ID Nr.' then
    "red"
    else
    "black"
    end, "")
    end
    end

    • Rudolf_Schabl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Halo Torsten

    Danke für deinen Hinweis, es funktioniert leider auch nicht

    • Torsten_Stang.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hm, schade. In Unkenntnis des Datenmodells kann ich Dir nur raten, dich ranzutasten. D.h. ein Funktionsfeld mit z.B. nur

     

    let myID := this;
    first(select Person where 'ID-Nr.' = myID.'Vater ID')

     

    wenn das für den spezifischen Datensatz stimmt, erweitern auf

     

    let myID := this;
    let myVaterRecord := first(select Person where 'ID-Nr.' = myID.'Vater ID');
    myVaterRecord.'1.Kind ID'

     

    und so weiter.

    • Rudolf_Schabl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Danke das versuche ich

    • Rudolf_Schabl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Torsten

    Kannst du dir das bitte nochmals ansehen

    Ich habe folgendes versucht

    let myID := this;
    let myVaterRecord := first(select Person where 'ID-Nr.' = myID.'Vater ID');
    myVaterRecord.'1.Kind ID'

    da bekomme ich die richtige ID Nr. sobald ich die Abfrage 

    if myVaterRecord then
    styled(text('1.Kind ID'), "", if myVaterRecord.'1.Kind ID' = myID.'ID Nr.' then
    "red"
    else
    "black"
    end, "")
    end
    end bekomme ich nichts.

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Rudolf,

    wenn ich es richtig verstehe, hast du gar keine Verknüpfungen in deiner Tabelle Personnen. So eine "excelhaltige" Vorgehensweise wird dir das Leben mit Ninox unnötig schwehr machen. 

    Wenn du in deinen Tabellen nur den Vater und Kinder brücksichtigst(also keine Mutter), dann wäre es sinnvoll die Tabelle Personen mit sich selbst zu verknüpfen. Dann hättest du in jedem Datensatz eine Verknüpfung zu dem Vater und eine Untertabelle für den Kinder. Damit entfällt auch die Sorge wenn ein Vater mehr Kinder hat als du Felder für Kinder angelegt hast. 
    Solte aber keine Kritik sein - es ist schließlich deine Datenbank.
    Jetzt zu deinem Problem. Du schreibst: "1.Kind ID (Zahlenfeld)" -> die Zahlenfelder können nicht eingefärbt werden - das geht nur für Funktionsfelder. Wenn du die IDs der Kinder bei dem Vater manuell erfasst und möchtest in einem zusätzlichen Funktionsfeld die Farbe ändern wenn das erste kind des Vaters ausgewandert ist, dann sollte es für Funktionsfeld so gehen:

    ---
    let me:=this;
    let myKind:=first(select Personen where 'ID-Nr.'=me.'1.Kind ID' );
    styled(text(myKind.'ID-Nr.'),if myKind.Ausgewandert then "red" else "black" end,"","")
    ---

    Leo

    • Rudolf_Schabl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Leonid

    Ich fasse das nicht als Kritik auf, im Gegenteil, da ich mich als Unwissenden bezeichnen möchte, bin ich für jede Hilfe dankbar. Als ich die Datenbank erstellt habe hatte ich null Wissen wie man Datenbanken wirklich aufbaut. 

    Es gibt natürlich auch für die Mutter ein eigenes Datenblatt, jedoch habe ich als erstes versucht ob es machbar ist.

    Deinen Vorschlag mit einem Funktionsfeld werde ich umsetzen.

     

     Danke