Felder abhängig mit Standartwerten machen
Habe einen Tabelle Namens "Beratung" dort 2 Felder mit "Name" und "Termin" und eine Verknüfung zu einer Haupttabelle. Ich versuche schon länger dass sobald der "Name" ausgefüllt wird (über Verknüpfung zu einer Haupttabelle welche nach Auswahl das "Namensfeld" rein schreibt) das Termin von "Frei auf Besetzt" wechselt.
Habe es versucht im Feld Termin nach Änderung folgendes ausführen.
if Name = 1 then Termin = "Reserviert" else Termin = "Frei" end
Das Feld Termin bleibt immer leer. Wo könnte der Fehler liegen. Vielen Dank für Eure Hilfe
Funktioniert die If Anweisung auch mit Auswahlfeldern?
14 Antworten
-
Ohne jetzt genauer geguckt zu haben: Bei der Wertzuweisung an Termin fehlt der Doppelpunkt vor dem Gleichheitszeichen.
if Name = 1 then Termin := "Reserviert" else Termin := "Frei" end
-
PS: Oder auch
Termin := if Name = 1 then "Reserviert" else "Frei" end
-
Cheerio,
warum "if Name = 1"? Wenn 'Name' tatsächlich das Verknüpfungsfeld ist, sollte doch
Termin := if Name then "Reserviert" else "Frei" end
genügen!?
Außerdem sollte der Code entweder in dem Änderungstrigger der Tabelle oder des Feldes 'Name' - beim Feld 'Termin' bewirkt er klar nichts...
lg, Torsten
-
Ich würde für Termin ein Berechnungsfeld f(x) nehmen. Dann ist die Formel für das Feld:
---
if Name then "Reserviert" else "Frei" end
---
Leo
-
Bei beiden Formel bleibt nur Frei stehen und 'Reserviert' kommt nicht zum Vorschein, verstehe daß einfach nicht was hier nicht passt. 2 Simple Textfelder in einem wird nur der Wert übergeben aus der Haupttabelle und in das Namenfeld geschrieben und das 2 bleibt einfach auf Frei stehen. Nachdem der Wert im Namensfeld übernommen wird. Vielleicht hat jemand noch eine idee? Danke
-
Sorry der Post von vorher, habe nun einiges Versucht und die Lösung ist die von Leo, Vielen Dank für Unterstützung. Bei den ersten Lösungen kam nur Frei und nie Reserviert keine Ahnung warum es nicht klappte. Danke Trotzdem
-
Nur vollständigkeitshalber: Wenn die beide Felder - Textfelder sind und du das Feld Name aus der Verknüpfungsfeld zu Haupttabelle füllst (ich nehme an Name:=Haupttabelle.Name), dann musst du genau dort (also Verknüpfung zu Haupttabelle -nach Änderung) auch dein Skript fürs Feld Termin schreiben. Etwa so:
if HAUPTTABELLE then ( Name:=Haupttabelle.Name; Termin:=""Reserviert") else (Name:=null; Termin:="Frei") end
Leo
-
Das ist genau die Perfekte Lösung. Leo bist mal wieder Spitze. Recht Herzlichen Dank
Hätte noch eine Frage dazu
Bei zwei Textfeldern (Raum und Ort) kann ich da sagen wenn der Ort gewählt wurde das es dann Automatisch den Raum auch schreibt. zb "Ort"= Berlin und "Raum" (sobald Berlin gewählt wird ist) = Zimmer oder "Ort" = Rom und "Raum" = Stanza zb.
Habe unter Ort bei ausführung geschrieben.
if Ort = "Berlin" then
Raum := "Zimmer"or if Ort ="Rom" then
Raum := "Stock"
endKomme da nicht dahinter wie ich solch eine Bedingung schreiben kann es steht nur "true" sobald ich Berlin schreibe im "Raum".
Danke für jegliche Hilfe. lg Claus
-
Hallo Claus,
bei Ort nach Änderung:
Raum := if Ort = "Berlin" then "Zimmer" else if Ort = "Rom" then "Stock" end end
lg, Torsten
-
Ja, kann so machen. Ich fürchte aber, du hast mehr als zwei Orte. in diesem Fall würde ich zu switch case greifen:
---
Raum :=
switch Ort do
case "Berlin":
"Zimmer"
case "Rom":
"Stock"
end
---so kannst du beliebig viel Orte hinzufügen ohne if then end zu beachten
Leo
-
Vielen Dank für die beiden Lösungen. Top wie immer!!!
-
Wollte es mit einem Auswahlfeld machen da funktioniert es nicht weil warscheinlich der Wert 1 , 2 ,3 übergeben wird.
Versuchte es nun in ein neues Feld den Wert "Berlin" anzeigen zu lassen und dort die Formel
(Raum :=
switch Ort do
case "Berlin":
"Zimmer"
case "Rom":
"Stock"
end)Der Wert steht korrekt aber es wird nicht weitergereicht, dass die Ausführung durchgeführt wird. Gibt es da noch einen zusätzlichen Befehl das es angestossen wird? sobald der Wert nicht durch ein Enter bestätigt wird kommt kein Resultat beim "Raum" Feld. Sorry das ich nochmal Frage.
-
Wenn 'Ort' ein Auswahlfeld ist, kann man die Bezeichnung mit text(AUSWAHLFELD) auslesen:
Raum := switch text(Ort) do
case "Berlin": "Zimmer"
case "Rom": "Stock"
end
Oder eben die numerischen IDs der Auswahloptionen:
Raum := switch Ort do
case 1: "Zimmer"
case 2: "Stock"
end
-
Vielen Dank klappt perfekt. Top
Content aside
- vor 4 JahrenZuletzt aktiv
- 14Antworten
- 1793Ansichten