0

Daten aus dynamischem Auswahlfeld übernehmen funktioniert nicht mehr nach update 3.14

Hallo Ninox-Team,

 

nach dem update haben wir Probleme mit unserer Datenbank.

Die Daten aus den dynamischen Auswahlfeldern werden falsch, manchmal richtig oder als leerer Datensatz übernommen.

 

Ich denke, dass das irgendwas mit den Datensatznummern und „first“ zu tun hat

 

Hier der Code der auslösenden Buttons.

 

 Netz ausgeben :

 

if Netzauswahl = null then

alert("Bitte wähle ein Netz aus.")

else

let myFahrer := number(first(select Dashboard).Moppfahrer);

let myFaRec := first(select Moppfahrer where Nr = myFahrer);

let myObject := number(first(select Dashboard).Objekt);

let myObRec := first(select Objekte where Nr = myObject);

let myNetz := number(Netzauswahl);

let myDate := today();

let myBemerkung := Bemerkung;

let myWaeRec := first(select Objekte where contains(Objektname, "Wäsche"));

let myNetzRec := first(select Netze where Nr = myNetz);

let myMax := max(myNetzRec.Netzhistorie['aktueller Standort' = true].Eingangsdatum);

let myCheck := first(myNetzRec.Netzhistorie[Eingangsdatum = myMax and 'aktueller Standort' = true]);

if not contains(myNetzRec.Netznummer, "Sack") and

not contains(myCheck.Objekt.Objektname, "Wäsche") then

alert("Dieses Netz befindet sich nicht in der Wäscherei. Bitte wähle ein anderes Netz aus.")

else

let myUpdate := first(myNetzRec.Netzhistorie['aktueller Standort' = true and Objekt = myWaeRec]);

if myUpdate != null then

let myIst := myUpdate.Bemerkung;

if myUpdate.Bemerkung != null then

myUpdate.(Bemerkung := myIst +

"

" +

myBemerkung)

else

myUpdate.(Bemerkung := myBemerkung)

end;

myUpdate.(Ausgangsdatum := myDate);

myUpdate.('aus Objekt ausgegeben' := myFaRec);

myUpdate.('aktueller Standort' := false)

else

let newWae := (create Netzhistorie);

newWae.('welches (Netz)' := myNetzRec);

newWae.(Objekt := myWaeRec);

newWae.(Bemerkung := myBemerkung);

newWae.(Ausgangsdatum := myDate);

newWae.('aus Objekt ausgegeben' := myFaRec);

newWae.('aktueller Standort' := false)

end;

let newHis := (create Netzhistorie);

newHis.('welches (Netz)' := myNetzRec);

newHis.(Objekt := myObRec);

newHis.('an Objekt geliefert' := myFaRec);

newHis.(Eingangsdatum := myDate);

newHis.(Bemerkung := myBemerkung);

newHis.('aktueller Standort' := true);

Netzauswahl := null;

Bemerkung := null;

'Zeig mir alle Netze' := false;

let myDialog := dialog("Das Netz wurde an den Moppfahrer ausgegeben.", "Was möchtest Du jetzt tun?", ["Weiteres Netz ausgeben", "Zum Hauptmenü zurückkehren"]);

if myDialog = "Zum Hauptmenü zurückkehren" then

first(select Dashboard).(Objekt := null);

closeRecord()

end

end

end

 

Netz annehmen

 

if Netzauswahl = null then

alert("Bitte wähle ein Netz aus.")

else

let myFahrer := number(first(select Dashboard).Moppfahrer);

let myFaRec := first(select Moppfahrer where Nr = myFahrer);

let myObject := number(first(select Dashboard).Objekt);

let myObRec := first(select Objekte where Nr = myObject);

let myNetz := number(Netzauswahl);

let myDate := today();

let myBemerkung := Bemerkung;

let myWaeRec := first(select Objekte where contains(Objektname, "Wäsche"));

let myNetzRec := first(select Netze where Nr = myNetz);

let myMax := max(myNetzRec.Netzhistorie['aktueller Standort' = true].Eingangsdatum);

let myCheck := first(myNetzRec.Netzhistorie[Eingangsdatum = myMax and 'aktueller Standort' = true]);

if not contains(myNetzRec.Netznummer, "Sack") and

contains(myCheck.Objekt.Objektname, "Wäsche") then

alert("Dieses Netz befindet sich schon in der Wäscherei. Bitte wähle ein anderes Netz aus.")

else

let myUpdate := first(myNetzRec.Netzhistorie[Eingangsdatum = myMax and 'aktueller Standort' = true and Objekt = myObRec]);

if myUpdate != null then

let myIst := myUpdate.Bemerkung;

if myUpdate.Bemerkung != null then

myUpdate.(Bemerkung := myIst +

"

" +

myBemerkung)

else

myUpdate.(Bemerkung := myBemerkung)

end;

myUpdate.(Ausgangsdatum := myDate);

myUpdate.('aus Objekt ausgegeben' := myFaRec);

myUpdate.('aktueller Standort' := false)

else

let newHis := (create Netzhistorie);

newHis.('welches (Netz)' := myNetzRec);

newHis.(Objekt := myObRec);

newHis.(Ausgangsdatum := myDate);

newHis.('aus Objekt ausgegeben' := myFaRec);

newHis.(Bemerkung := myBemerkung);

newHis.('aktueller Standort' := false)

end;

let newWae := (create Netzhistorie);

newWae.('welches (Netz)' := myNetzRec);

newWae.(Objekt := myWaeRec);

newWae.('an Objekt geliefert' := myFaRec);

newWae.(Eingangsdatum := myDate);

newWae.(Bemerkung := myBemerkung);

newWae.('aktueller Standort' := true);

Netzauswahl := null;

Bemerkung := null;

'Zeig mir alle Netze' := false;

let myDialog := dialog("Das Netz wurde von der Wäscherei angenommen.", "Was möchtest Du jetzt tun?", ["Weiteres Netz annehmen", "Zum Hauptmenü zurückkehren"]);

if myDialog = "Zum Hauptmenü zurückkehren" then

first(select Dashboard).(Objekt := null);

closeRecord()

end

end

end

2 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 1 Monat
    • Gemeldet - anzeigen

    Sorry, aber ich habe weder Zeit noch Lust, mich durch die vielen Zeilen deines Scriptes zu wühlen, um herauszufinden, woran es hapern könnte.

    Deshalb nur grundsätzlich: Da Dynamische Auswahlfelder immer auf eine Tabelle zurückgreifen, kann man sich per number() die Datensatz-Nummer des gewählten Eintrags zurückgeben lassen:

    record(TABELLE, number(DYNAUSWAHLFELD))

    Will man sich nun die Werte von Datenfeldern aus diesem Datensatz zurückgeben lassen, könnte man das bspw. so tun:

    let myRec := record(TABELLE, number(DYNAUSWAHLFELD));
    DATENFELD1 := myRec.DATENFELD1;
    DATENFELD2 := myRec.DATENFELD2;
    ...

    Vielleicht hilft das ein bisschen weiter.
     

    • M_Schmidt
    • vor 1 Monat
    • Gemeldet - anzeigen

    Hi Planox,

    ich weiß, das ist viel, bin aber auch nicht wirklich fit in Ninox . Das hat ja auch alles bis zum 18.11. funktioniert ab 19.11. nicht mehr. Ich versuche das mal umzuschreiben. Danke für die Rückmeldung