0

Feld von gestern abfragen

Guten Morgen.

Wie kann ich ein Feld von gestern abfragen? Bzw. ich möchte ein bestimmtes Feld auf Inhalt prüfen, darf aber nur von gestern sein ausgehend von einem Datumsfeld vom grad aktiven Datensatz.

 

Habe schon mit today und now und -1 herumgespielt aber ich bekomme es nicht hin. 

5 Antworten

null
    • Marwin
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Du kannst doch nicht einen Wert auslesen der nicht mehr aktuell ist oder wie meinst du das ?

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Moin, ich versteh's auch nicht wirklich, aber der Ansatz war im Prinzip richtig:

     

    DATUM - 1

     

    ergibt den Tag vor DATUM. Wobei man für DATUM eben auch today() einsetzen kann. Mit now() hingegen funktioniert es so nicht, weil hierbei ein Wert im Format Datum+Uhrzeit zurückgegeben wird. Da müsste man gezielt das Datum herausziehen mit

     

    date(today()) - 1

    Aber vielleicht beschreibst du ja noch mal etwas genauer, was du vorhast.

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

    Manchmal ist es schwieriger das Problem zu beschreiben als es zu lösen :-) Ich hatte das Problem schon mal anders gefragt aber das war noch komplizierter gefragt.

     

    Also:

    Ich habe Datensätze mit Datumsfeld drin. Je nachdem wann ich bei dem Kunden war usw. steht halt das Datum von diesem Tag drin. In jedem Datensatz steht auch noch ein Feld "Hotelkosten" drin. Nun möchte ich, dass ein Datensatz selbstständig einen Kalendertag zurück schaut (sucht) ob dort das Datumsfeld ausgefüllt wurde und wenn ja ob das Feld Hotelkosten vom heutigen Tag (also heute) ausgefüllt wurde. Falls Bedingungen erfüllt sollte ein Hinweis kommen.

     

    Ich möchte eine Art Warnung realisieren. Die Wahrscheinlichkeit, dass ich heute Hotelkosten eintragen müsste ist sehr hoch wenn ich gestern einen Datensatz ausgefüllt habe (also unterwegs war). Wenn man das noch mit Uhrzeit realisieren könnte, wäre es sogar noch feiner. Da ich ja auch mal zwei, drei Datensätze am Tag abarbeite sollte immer nur der früheste von den dreien Alarm schlagen.

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    'n Abend ...

     

    »Ich habe Datensätze mit Datumsfeld drin. [...] Wenn man das noch mit Uhrzeit realisieren könnte, wäre es sogar noch feiner.«

     

    Wo soll die Uhrzeit denn herkommen? Wird die schon irgendwo erfasst? In einem eigenen Uhrzeit-Feld? Oder ist das "Datumsfeld" gar kein Datumsfeld, sondern ein Termin- oder Zeitstempelfeld? 

     

    Am besten wäre natürlich ein Zeitstempelfeld, ich nenne es mal 'TERMINSTART', das könnte man auch gleich zur Sortierung der Tabelle nutzen. Dann könnte der Code für eine Schaltfläche vielleicht so (oder ähnlich) aussehen:

     

    let Stichtag := today() - 1;
    let Auftrag := first((select TABELLE where date(TERMINSTART) = Stichtag and HOTELKOSTEN = null) order by TERMINSTART);
    if Auftrag != null then
        let Antwort := dialog("Bitte prüfen", "Für die Nacht vor dem Auftrag " + Auftrag.TERMINSTART + " wurden keine Hotelkosten erfasst. Sind welche angefallen?", ["Ja, Hotelkosten erfassen", "Nein, keine Hotelkosten"]);
        if substr(Antwort, 0, 1) = "J" then
            openRecord(Auftrag)
        else
            Auftrag.(HOTELKOSTEN := 0)
        end
    else
        alert("Für gestern keine Aufträge ohne Hotelkosten gefunden.")
    end

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

    Hi Copy... Vielen Dank für die Unterstützung und das noch neben Deiner unglaublichen Arbeit mit dem Nachschlagewerk.

    Also ja, ich hatte vergessen zu erwähnen: Ich habe auch ein Terminfeld im Datensatz. Eigentlich sogar drei Felder die sich aufs Datum beziehen: Das Terminfeld (wann ich den Job erledigen müsste und meist auch erledige). Ein Datumsfeld (an dem ich den Job wirklich erledige (und der dann auch wichtig für die Hotelwarnung wäre) und schliesslich noch ein Datum wenn der Kunde alles unterschreibt.

     

    Ich werde mal mit deinem Code herum experimentieren. Danke nochmals :-)