0

Hotelkosten eingetragen? Abfrage ob man am Vortag etwas erledigt hat

Ich habe noch eine Idee die mir schon länger im Kopf herumschwirrt aber noch nicht DIE Lösung gefunden.

Und zwar habe ich ein Feld "Hotelkosten" in das ich die Kosten eintrage wenn eine Übernachtung anfiel. Diese wird immer dem ersten Job (Datensatz) nach der Übernachtung zugeordnet. Und genau das vergesse ich gerne einzutragen. Da das nun per Ninox alles recht schnell zur Rechnung wird ohne dass man da selber noch gross eingreift, fehlen diese Kosten dann dort. Soll nicht sein.

Ich würde also gern eine Warnung bzw. einen Dialog haben der mich davor warnt. Am Ende einer Woche generiere ich über einen Button die PDF zu den Datensätzen. (Jeden Datensatz für sich). Da kommt im Moment noch eine sinnlose Dialogabfrage die ich genau dafür nutzen möchte. Die einfachste Variante bekomme ich selber hin: if HOTELOSTEN = null then dialog.....

 

Eine Warnung die aber immer kommt ignoriert man schnell. Also soll das intelligenter ablaufen. Eine Logik wäre z.B.: Wurde am Vortag der letzte Datensatz von diesem Tag bearbeitet, also in Stundenfeldern z.B. Arbeits- oder Fahrtzeiten eingetragen und am nächsten Tag beim ersten der Datensätze vom dem Tag ist das Feld HOTELKOSTEN leer, ist das verdächtig. Hier sollte der Dialog mit der Warnung aufploppen wenn man die PDF generieren möchte.

 

ungefähr so:

WENN "letzter Datensatz von gestern mit Feldern Arbeitsstd. = null ODER Fahrtstd. = null" UND "dieser Datensatz ist der erste vom Folgetag" UND "Feld Hotelkosten = null" DANN Dialog mit Hotelkostenwarnung

 

Ninox müsste also immer EINEN TAG zurückschauen und dort kontrollieren: Sind Fahrt- oder Arbeitszeiten eingetragen worden im letzten Datensatz von dem Tag. Falls ja ist die Wahrscheinlichkeit hoch, dass am nächsten Tag der erste Datensatz Hotelkosten im Feld haben müsste

4 Antworten

null
    • Michael_Martin
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Probiere mal dies:

    if (last(Hotelkosten) = 0 or last('Arbeitsstd.') = 0 or last('Fahrtstd.' = 0)) and Hotelkosten = 0 then true else false 

    Dieses machst Du als Berechnungsfeld in den Datensatz. Freitags oder Samstags kannst Du dann dieses Berechnungsfeld abfragen ob da irgendwo ein TRUE darin steht.

    • Pyromixer.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Vielen Dank.

    Irgendwie klappts nicht. Wenn ich mit (last(Hotelkosten)=0) abfrage zeigt er mir an ob am aktuellen Tag was drin steht. Er schaut gar nicht auf den letzten Datensatz. Wobei auch die Sache mit den Datensätzen wohl fehleranfällig ist, da ich die ja nicht unbedingt in der Reihenfolge des abarbeitens eingebe.

    Es müsste irgendwie auch das  Datum des zu prüfenden Datensatz mit denen eines gestrigen Datum verglichen werden.

    • Michael_Martin
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Pyromixer,

    hab den Fehler entdeckt.

    let myID := number(Nr);
    let Hotel := last((select Test)[number(Nr) < myID].Hotelkosten);
    let Arbeit := last((select Test)[number(Nr) < myID].'Arbeitest.');
    let Fahrt := last((select Test)[number(Nr) < myID].'Fahrtstd.');
    if (Arbeit > 0 or Fahrt > 0) and Hotel = 0 then
    alert(" dein Hinweis ")
    else
    void
    end

    Test ist dein Tabellenname, musst Du also entsprechen ändern. Es wird jetzt bei jedem neuen Eintrag geschaut, ob beim vorherigen Eintrag Hotelkosten vorhanden sind. Ich persönlich würde aber Dir empfehlen für den Außendienst einen Schalter zu machen. Denn sonst poppt dein Hinweis nahezu immer auf.

     

    Gruß Michael

    • Pyromixer.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Michael.

    Vielen Dank. Werde ich die nächsten Tage mal angehen und ausprobieren. Ich weiss auch eh noch nicht ob es sinnvoll ist den "letzten" Eintrag zu prüfen. Was wäre der "letzte Eintrag"? Der an dem man was gemacht hat oder der der zuletzt eingetragen wurde? Ich trage die Datensätze ja vor der Arbeitswoche ein und das auch kunterbunt so wie sie halt grad eingegeben werden.

    Prüfen müsste Ninox dann aber ja datumabhängig. Also wenn ich am heutigen Datensatz was mache bzw. dort das heutige Datum eingebe (was immer der erste Schritt ist) dann müsste er auf die Datensätze vom Tag davor schauen.

     

    Oder was mir jetzt so grad einfällt: Die Termine der Jobs stehen ja schon vorher fest. Ninox könnte also auch im Vorfeld schon alles auf diese Logik prüfen. Ich muss das noch mal in Ruhe durchschauen. Aber Danke schon mal für das Script :-)

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 4Antworten
  • 1676Ansichten