0

openRecord Frage

Mahlzeit, ich habe eine Frage zur openRecord-Funktion.

Ich habe 2 Tabellen:
"Bestand" und "Aufträge".

In beiden Tabellen gibt es ein Textfeld für die Fahrgestellnummer.

Nun möchte ich in der Tabelle "Bestand" einen Button drücken, um zu einem Datensatz in "Aufträge" zu springen bzw. wenn die Fahrgestellnummer dort nicht vorhanden ist, diesen anzulegen und dann zu diesem Datensatz zu springen.

Mein "else"-Teil passt. Nur mein "then"-Teil springt nicht zum gewünschten Datensatz.

Hier der Code:

let myVIN := Fahrgestellnummer;
if cnt(select 'Aufträge' where Fahrgestellnummer = myVIN) > 0 then
    openRecord(den gefundenen Datensatz in Aufträge)
else
    let me := this;
    let cp := (create 'Aufträge');
    cp.(Fahrgestellnummer := me.Fahrgestellnummer);
    openRecord(cp)
end

2 Antworten

null
    • Developer by Smartplanung
    • smartplanung
    • vor 2 Tagen
    • Gemeldet - anzeigen

    Die Frage ist tatsächlich, was Du in den openRecord Klammern zwischen if und else einsetzt. So müsste es gehen:

    let myVIN := Fahrgestellnummer;
    if cnt(select 'Aufträge' where Fahrgestellnummer = myVIN) > 0 then
        openRecord(first(select 'Aufträge' where Fahrgestellnummer = myVIN))
    else
        let me := this;
        let cp := (create 'Aufträge');
        cp.(Fahrgestellnummer := me.Fahrgestellnummer);
        openRecord(cp)
    end
    
    

    Ohne first() wären mehrere Ergebnisse möglich und somit würde Ninox auch nur bei einem Treffer nicht in den Datensatz springen. Bei solchen sachen immer dafür sorgen, dass es ein eindeutiges Ergebnis gibt.

    Alternativ müsste auch folgendes gehen:

    let myVIN := Fahrgestellnummer;
    let rec := first(select 'Aufträge' where Fahrgestellnummer = myVIN)
    if rec then
        openRecord(first(select 'Aufträge' where Fahrgestellnummer = myVIN))
    else
        let me := this;
        let cp := (create 'Aufträge');
        cp.(Fahrgestellnummer := me.Fahrgestellnummer);
        openRecord(cp)
    end
      • Martin_Ossadnik
      • vor 2 Tagen
      • Gemeldet - anzeigen

      Sehr schön! Vielen Dank!