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
-
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
-
Halo Torsten
Danke für deinen Hinweis, es funktioniert leider auch nicht
-
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.
-
Danke das versuche ich
-
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. -
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 -
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
Content aside
- vor 3 JahrenZuletzt aktiv
- 7Antworten
- 235Ansichten