0

wenn zahl > als x dann dynamisches Auswahlfeld y

Hallo zusammen,

ich habe ein Zahlenfeld und ein dynamisches Auswahlfeld.

Nun möchte ich folgendes erreichen:

Wenn Zahlfeld > 1500 dann DAF(TabelleXrecord15)

Mein Ansatz ist:

if Zahlfeld > 1500 then
    DAF = first((select TabelleX)[number(Nr) = 15])
end

Leider passiert nichts. Hat jemand eine Idee, was ich falsch gemacht haben könnte?

 

Vielen Dank schon mal.

Gruß Kruna

6 Antworten

null
    • Developer by Smartplanung
    • smartplanung
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Du gibst ja im DAF eine Select-Anweisung an, damit das DAF auch weiß woher und was es auflisten soll. In dem Fall:

    if Zahlfeld > 1500 then
        first((select TabelleX)[number(Nr) = 15])
    end
    

    Würde aber bedeuten, dass das DAF nur ein Ergebnis anzeigt, da "first" dem Select vorangestellt ist.

    In deinem Code hätte Ninox geguckt, ob "DAF" gleich deinem first(select) ist. Das wäre dann True oder False (Boolean) gewesen. Aber niemals der gewünschte Datensatz selbst.

    Wenn Du allerdings im DAF automatisch auswählen möchtest, ginge das mit DAF := xyz. Aber auch nicht in der Select-Anweisung, sondern bei Änderungstriggern wie in dem Zahlenfeld oder in Buttons, usw.

      • Kruna
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Patrick W.hallo PAtrick,

      zunächst einmal vielen Dank für Deine Hilfe.

      Leider habe ich nicht ganz verstanden, was Du meinst bzw. wie das Script korrekt lauten sollte oder geht das nur mittels Button?

      Ich habe dieses Script 'irgendwo' in meiner DB schon mal angewendet, allerdings im Button.

      Entschuldige, ich bin manchmal etwas schwer von Kapee bzgl Ninox.😅

      Gruß Kruna

      • Developer by Smartplanung
      • smartplanung
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Kruna was ist denn das Ziel? Soll das DAF nur entsprechende Auswahlmöglichkeiten haben oder direkt etwas auswählen?

      Wenn es nur Auswahlmöglichkeit haben soll, im DAF unter "dynamic values":

      if Zahlfeld > 1500 then
          first((select TabelleX)[number(Nr) = 15])
      end

      Wenn direkt etwas ausgewählt werden soll, im DAF unter "dynamic values":

      if Zahlfeld > 1500 then
          first((select TabelleX)[number(Nr) = 15])
      end

      oder

      (select TabelleX)

      und in dem Trigger eines beliebigen Feldes oder in einem Button oder in einer Formel unter "Beim Klicken":

      let id := DEIN_FELD_MIT_DER_ID - z.B. eine Verknüpfung;
      let vWert := ZAHLENFELD;
      if vWert > 1500 then
           DAF := id
      end;

      oder wenn die ID fest vorgegeben ist:

      let vWert := ZAHLENFELD;
      if vWert > 1500 then
      DAF := 15
      end;

      Um noch genauer zu antworten, würde ich noch ein paar Infos benötigen. Wo holst Du die ID (number(Nr) her? Ist die festgelegt oder wird die durch irgendwas ermittelt?

      IDs sollten bis auf wenige Ausnahmen eigentlich immer variabel behandelt werden. Wenn die Tabelle nur für DAF dient, ist das in Ordnung. Wenn man aber direkte Datensätze ansprechen möchte, sollte die ID immer ermittelt werden. Ob durch Verknüpfungen oder entsprechende Select-Anweisungen. Das führt sonst nur zu Chaos.

      • Kruna
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Patrick W.guten Morgen Patrick,

      let vWert := ZAHLENFELD;
      if vWert > 1500 then
      DAF := 15
      end;

      Das war die Lösung, tausend Dank!

      Denn, wenn das Zahlfeld größer als 1500 ist, dann switched das DAF 'automatisch' auf record no. 15.

      Eine Frage bitte noch nur für mein Verständnis

      let id := DEIN_FELD_MIT_DER_ID - z.B. eine Verknüpfung;
      let vWert := ZAHLENFELD;
      if vWert > 1500 then
           DAF := id
      end;

      DEIN_FELD_MIT_DER_ID - was wäre das denn?

       

      Um noch genauer zu antworten, würde ich noch ein paar Infos benötigen. Wo holst Du die ID (number(Nr) her? Ist die festgelegt oder wird die durch irgendwas ermittelt?

      Die ist in einer Tabelle für DAF festgelegt.

      Vielen Dank und Gruß

      Kruna

      • Developer by Smartplanung
      • smartplanung
      • vor 1 Jahr
      • Gemeldet - anzeigen

       DEIN_FELD_MIT_DER_ID wäre in dem Fall die 15.

      Oft füllt man ein DAF auch mit Datensätzen aus Projekttabellen oder ähnliches, wo man die ID entsprechend ermitteln müsste. Da Du jedoch nur eine Tabelle extra für das DAF hast, passt das, wenn Du die ID 15 direkt angibst.

      • Kruna
      • vor 1 Jahr
      • Gemeldet - anzeigen

      ok, vielen Dank für Deine Erklärung und natürlich für Deine Hilfe! :-)

      Gruß

      Kruna