0

IF in Kombination mit SELECT

Hallo,

ich habe in einer TAbelle ein Ja/Nein Feld, auf das bei einer Funktionsberechnung in einer anderen Tabelle als "Schalter" für eine If-Schleife zurückgegriffen werden soll. Z. B.:

if (select 'Persönliche Daten')[Vorname = "Maurice"].'über 600 ccm' = 1 then
alert("Ja")
else
alert("Nein");

Aber egal, was ich im Feld "über 600 ccm" wähle (ob an oder aus), ich erhalte immer die gleiche Meldung, naämlich "nein", lasse ich das =1 weg, erhalte ich immer "Ja".

Wie gelingt mir eine IF-Schleife mit dem Feld "über 600 ccm" als Trigger.

Grüße

Maurice

4 Antworten

null
    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Maurice,

    die select-Anweisung gibt einen Array zurück. Auch wenn du nur einen Datensatz mit dem Vorname Maurice hast, kann Ninox das erst nicht wissen. Ich würde es so versuchen:

    ---

    alert(if first(select 'Persönliche Daten' where Vorname = "Maurice").'über 600 ccm' = true then "Ja" else "Nein")

    ---

    Leo

    • Maurice
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo,

    die alert Ausgaben hatte ich hingesetzt, um meinen Code zu kontrollieren. Eigentlich will ich so etwas machen:

    if first(select 'Persönliche Daten' where Vorname = "Maurice").'über 600 ccm' = true then
    let Hubraum := 1
    else
    let Hubraum := 0
    end

    Aber da bekomme ich keine Ausgabe. Ich will über die If-Abfrage eine neue Variable in ihrem Wert definieren.

    Grüße

    Maurice

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Maurice,

    wenn die Formel in einem Berechnungsfeld ist dann sollte es so aussehen:

    ---

    if first(select 'Persönliche Daten' where Vorname = "Maurice").'über 600 ccm' = true then
    1
    else
    0
    end

    ---

    oder 

    ---

    if first(select 'Persönliche Daten' where Vorname = "Maurice").'über 600 ccm' = true then
    let Hubraum := 1
    else
    let Hubraum := 0
    end;
    Hubraum

    ---

    Leo

    • Maurice
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo,

    ja, ist in einem Berechnungsfeld. Und genau letzteres klappt nicht. Ninox fügt ein Komma und "void" nach den let-Befehlen ein.

    Ich habe das jetzt ohne die neu deklarierten Variablen gelöst, was jedes Mals den ganzen first(select ...) Rattenschwanz erfordert.

    switch Verkehrsmittel do
    case 2:
    switch first(select 'Persönliche Daten' where Vorname = "Maurice").'Kfz als Dienstfahrzeug' do
    case true:
    switch first(select 'Persönliche Daten' where Vorname = "Maurice").'über 600 ccm' do
    case true:
    'km Start-DG' * number((select 'Erstattungsbeträge')[Nr = 3].'Erstattung pro km')
    default:
    'km Start-DG' * number((select 'Erstattungsbeträge')[Nr = 4].'Erstattung pro km')
    end
    case false:
    switch first(select 'Persönliche Daten' where Vorname = "Maurice").'über 600 ccm' do
    case true:
    'km Start-DG' * number((select 'Erstattungsbeträge')[Nr = 1].'Erstattung pro km')
    default:
    'km Start-DG' * number((select 'Erstattungsbeträge')[Nr = 2].'Erstattung pro km')
    end
    end
    case 1:
    'km Start-DG' * number((select 'Erstattungsbeträge')[Nr = 5].'Erstattung pro km')
    default:
    0
    end

    Grüße

    Maurice

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 4Antworten
  • 1934Ansichten