0

Auswahlfeld in Abhängigkeit von Zahlenfeld ändern

Hallo Zusammen, 

irgendwie stehe ich gerade etwas auf dem Schlauch. 

Ich möchte mein Auswahlfeld in Abhängigkeit von einem Zahlenfeld ändern, wenn der Wert des Zahlenfeldes 0 (nicht null) ist, dass soll das Auswahlfeld "Status" auf 3 springen. 

Folgende Codes habe ich bereits probiert:

if 'Ist-Menge' = "0" then Status := 3 end

if 'Ist-Menge' = 0 then Status := 3 end

if 'Ist-Menge' = number("0") then Status := 3 end

Vermutlich einfach nur (wie immer) eine Kleinigkeit :) 

8 Antworten

null
    • rainless
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hast Du die Regel als "Trigger nach Änderung"  des Zahlenfelds gesetzt? Dann sollte eigentlich die zweite Regel funktionieren.

    • Patrik_Ronschke
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Moin Lars,

    genau, ich konnte den Fehler jetzt nochmals eingrenzen.

    Ich habe eine Tabelle dupliziert, in der Ursprungstabelle funktioniert dies auch wunderbar.

    Komischerweise jedoch in der duplizierten Tabelle nicht, das kommt mir etwas komisch vor...

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

      Patrik Ronschke 

      Hallo Patrik, handelt es sich bei 'Ist-Menge' um ein Datenfeld vom Typ Zahl oder um ein Berechnungsfeld mit numerischem Ergebnis? Wenn Datenfeld: Wird der Wert eingetippt oder über einen Trigger generiert?

      So oder so: Kann es sein, dass das Feld Ergebnisse wie 0,0045 enthält, die Anzeige per "Zahlenformat" aber auf weniger Nachkomastellen gerundet ist, so dass man nur 0,00 sieht?

      Hast du schon mal "if Zahl < 0.01 then ..." o. ä. probiert?
       

      • Patrik_Ronschke
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro 

      Moin,

      geht leider auch nicht, es handelt sich um ein simples Zahlenfeld.

      if Status != 4 then
          if 'Ist-Menge' > 'Soll-Menge' then
              Status := 1
          else
              if 'Ist-Menge' < 'Soll-Menge' then
                  Status := 2
              else
                  if 'Ist-Menge' < 0.01 then Status := 3 end
              end
          end
      end
      
      • Ninox-Professional
      • planoxpro
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Patrik Ronschke 

      Ich kenne die Zahlen dazu nicht, würde die Abfrage auf 0 aber nach vorne stellen. Sonst kommt es ja gar nicht zu dem Fall, da wahrscheinlich immer eine der vorherigen Bedingungen erfüllt ist (außer bei "="):

      if Status != 4 then
         Status :=  if 'Ist-Menge' = 0  then 3  else
            if 'Ist-Menge' < 'Soll-Menge' then 2 else 1 end end
      end
      


       

      • Patrik_Ronschke
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro 

      So gehts tatsächlich, verwirrend, dass es in einer identischen Tabelle andersherum geht und in dieser nicht :)

      Danke

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

      Das wäre in der Tat verwirrend, denn wenn der Wert von 'Ist-Menge' = 0 ist, dann ist er automatisch immer auch < 'Soll-Menge', es sei denn, der Wert von 'Soll-Menge' wäre ebenfalls 0. Dein obiges if-Konstrukt kann also nur funktionieren, wenn beide Werte = 0 sind.

      Mir ist es aber aber auch schon passiert, dass ich die logische Abfolge der if-Abfragen nicht ausreichend durchdacht und mich dann über das Ergebnis gewundert habe. 🤔

      Im Übrigen ist dieser Thread ein anschauliches Beispiel dafür, dass man nicht zu viel (überflüssigen) Code posten sollte - aber auch nicht zu wenig. Denn aus deiner usprünglichen Fragestellung war das Problem gar nicht ersichtlich. Hätte man gewusst, dass die Abfrage Teil eines verschachtelten if-Konstruktes ist, wäre man der Lösung früher auf die Spur gekommen. 😉

    • Patrik_Ronschke
    • vor 2 Jahren
    • Gemeldet - anzeigen
    planox. pro said:
    Dein obiges if-Konstrukt kann also nur funktionieren, wenn beide Werte = 0 sind.

    So ist es tatsächlich genau in dem Datensatz gewesen, in dem ich es ausprobiert habe :)

     

    Aber jetzt ist das Problem ja gelöst.

    Danke

Content aside

  • Status Answered
  • vor 2 JahrenZuletzt aktiv
  • 8Antworten
  • 73Ansichten
  • 3 Folge bereits