0

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

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

    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

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

    PS: Oder auch

     

    Termin := if Name = 1 then "Reserviert" else "Frei" end

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

    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

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Claus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Claus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Claus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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"
    end

    Komme 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

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

    Hallo Claus,

     

    bei Ort nach Änderung:

     

    Raum := if Ort = "Berlin" then "Zimmer" else if Ort = "Rom" then "Stock" end end

     

    lg, Torsten

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Claus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Vielen Dank für die beiden Lösungen. Top wie immer!!!

    • Claus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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.

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

    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

    • Claus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Vielen Dank klappt perfekt. Top

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 14Antworten
  • 1785Ansichten