0

Bei Click nächsten wert übergeben ?

Hallo, 

Ich habe von einer Suche mehrere Ergebnisse. Jetzt würde ich gern über eine Befehlstaste der Reihe nach vom kleinsten Datum  beginnend, bei click immer das jeweilige nächste Datum in ein datumsfeld übergeben. Geht das ? Und wenn ja wie?

10 Antworten

null
    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Da Ninox keine temporäre Variablen zulesst muss man dafür ein Zahlenfeld benutzen. 
    Was bedeuted “von einer Suche mehrere Ergebnisse? Array, Tabelle, Liste?
    die idee ist es bei der Suche das Zahlenfeld zuerst auf 0 zu setzen 

    ---

    let ERGEBNISARRAY:=sort(select TABELLE where ###.DATUM);
    ZAHLENFELD:=0

    ---

    dann bei dem Button:

    ---
    Datum:=item(ERGEBNISARRAY,ZAHLENFELD);
    ZAHLENFELD:=ZAHLENFELD+1
    ---

    Leo

    • Michi.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ich müßte aus tabelle “A” vom Zahlenfeld  “PZ” die summe ermitteln für jeden hinterlegten Tag und jede Tour . Bedinung sind hierfür  “Filiale=1. Ergebniss soll sein:    Datum / Tour / Filiale /PZ .

    In tabelle ”B“ sind weitere Zahlenfelder  ”MAX“ und ”FZ“  diese sind auch nach Datum / Filiale / Tour hinterlegt.

    --------------------------------------

    Max = Maximale mögliche Planzeit in h (einfaches Zahlenfeld)

    FZ = Fahrzeit in h (einfaches Zahlenfeld)

    PZ = bisherige geplante zeit in h (einfaches Zahlenfeld)

    Touren gibt es immer mehrere und sind nach nummern angelegt

    -------------------------------------------------

    Wenn bei Filiale 1 eine Tour die bedinung  = FZ+PZ < Max erfüllt, soll das Datum vom kleinsten wert bei click übergeben werden

    Hab keine Ahnung wie das geht, da sich die werte gerade bei PZ immer verändern. Tabellen sind nicht verknüpft. 

    • Michi.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    hab jetzt eine neue Tabelle wo die Daten zusammengeführt werden. Diese wird bei jedem vorgang aktualisiert. Wie soll ich jetzt weiter vorgehen?

    Und gibt es eine bessere lösung für die neue tabelle? Schreibe immer die neuen tordaten und lösche sie anschliesend bis auf den letzten eintrag. Das Löschen geht leider auch nicht über do as server. Da ist die tabelle leer am ende. Das dauert da natürlich auch ganz schön. hat jemand rat? das ist das  grobe skript für die neue tabelle

    do as server
    for i in (select Disponiert)[Lieferdatum = Lieferdatum] do
    let new := (create Opt);
    new.(PZ2 := i.GesamtPZ);
    new.(Gesamt := i.gesamtberechnung);
    new.(Datum := i.Lieferdatum);
    new.(tour := i.text(Tour));
    for t in (select Touren)[i.Lieferdatum = Datum] do
    new.(Max := t.Max);
    new.(FZ1 := t.FZ1)
    end
    end
    end;

    for i in select Opt do
    delete (select Opt where Datum = i.Datum and tour = tour and Nr < i.Nr)
    end

    aus der soll dan das Datum wie oben beschrieben kommen.

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    statt 

    ---

    for i in select Opt do
    delete (select Opt where Datum = i.Datum and tour = tour and Nr < i.Nr)
    end

    ---

    würde ich es so schreiben:

    ---

    delete (select Opt where Datum = i.Datum and tour = tour and Nr < i.Nr)

    ---

    die Schleife ist hier überflüssig

    Leo

    • Michi.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke erstmal Leo,

    kannst du eventuell noch mal drüber schauen. Bekomm das mit der Auswertung einfach nicht hin. Wäre aber toll wenn diese funktion gehen würde.

    • Michi.1
    • vor 4 Jahren
    • Gemeldet - anzeigen
    • Michi.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Bild will wohl nicht.

    Aus den Daten der Tabelle Opt soll bei Click der nächste mögliche Terminvorschlag beginnend mit today() in “Datum für verfügbare Termine”(Datumsfeld) erscheinen. Filter ist die “Filiale” (Auswahlfeld) und ob die “Planzeit für neuen Termin” (Zahlenfeld) zeitlich in die “übrige Planzeit” (Berechnugsfeld) passt. 

    • Michi.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    jetzt hab ich die relewanten daten in eine hilfstabelle geschrieben. Datum und Filiale wo die vorherigen kriterien passen.   Jetzt sollte es doch möglich sein das ich über die Tabelle Planung mit einem Befehlsfeld die Datumsangaben nacheinander von today() sortiert angefangen (sind nicht vortlaufend) in ein Datumsfeld bekomme.

    Nur wie?????

    do as server
    delete (select Hilfe);
    for i in (select Opt)[“Planzeit für neuen Termin” < “übrige zeit”] do
    let new := (create Hilfe);
    new.(Filiale := i.Filiale);
    new.(Datum := i.Lieferdatum)
    end
    end

    • Michi.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    über “Datum:=item(ERGEBNISARRAY,ZAHLENFELD);” bekomm ich das zwar hin, es ist jedoch nicht aufsteigend. Die Sortierung klappt, jedoch sind die internen NR nicht dem Datum entsprechend. Das heist (06.12. mit NR =10) kommt vor dem (01.12. mit NR = 11) usw. 

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ohne Datenmodell zu sehen ist es echt schwierig. So als Tipp:

    ---

    for i in (select Opt)[“Planzeit für neuen Termin” < “übrige zeit”]  order bei Datum do

    .....

    end

    ---

    Leo