Anzeige Termine > 20 Tage von einem Feld

  • Hallo,
    ich habe eine Ansicht, in der in einer Spalte die folgende Formel steht:
    @If((@Date(x_bearb_termin)- _Today)/86400<-30;"a überfällig!!";(@Date(x_bearb_termin) - _Today)/86400<2;"b bereits fällig";(@Date(x_bearb_termin) - _Today)/86400<6;"c in nächsten 5 Tagen fällig";(@Date(x_bearb_termin) - _Today)/86400<11;"d in nächsten 10 Tagen fällig";[color=990033](@Date(x_bearb_termin) - _Today)/86400<21;"e in 20 Tagen überfällig";[/color](@Date(x_bearb_termin) - _Today)/86400<31;"f in nächsten 30 Tagen fällig";"g später fällig")


    Nun möchte ich die rot markierte Formel so ändern, das ich dort alle Termine angezeigt bekomme, die x_bearb_termin > 20 Tage sind.


    wie müsste ich die Formel umstellen - bin leider kein Programmierer....
    Danke
    Matze

  • Hast du doch: du prüfst doch schon auf 30 Tage ab. Und wenn ich mich jetzt nicht ganz verrechnet habe, ist 30 grob gerundet größer als 20...

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • na er zeigt mir bei "in den nächsten Tagen fällig" die Termine an, die auch dann fällig sind. Ich möchte aber es so, das mir die TErmine angezeigt werden, die bereits 20 Tage oder läner ÜBER Fälligkeitstag (x_bearb_termin) liegen.....


    Könnte auch ne eigene Ansicht sein; soweit ich das sehe, könnten ja sonst durch die if-Formel die TErmine schon anders "abgefangen" werden - oder?

  • Äääh ... wie wäre es dann, mit "Heute - DueDate >= 20 Tagen" zu rechnen :-?

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

    • Offizieller Beitrag

    muss es dann nicht - 21 sein und die Bedingung weiter nach vorn wandern?
    x_bearb_termin liegt ja zeitlich gesehen vor Today, damit ist der Zahlenwert von x_bearb_termin kleiner wie der Zahlenwert von Today.
    Kleine Zahl minus große Zahl ergibt irgend etwas negatives.

    Code
    dif := (@Date(x_bearb_termin)- _Today) / 86400;
    @If(dif < -30;"a überfällig!!";
       dif < -21;"e in 20 Tagen überfällig";[/b]
       dif < 2;"b bereits fällig";
       dif < 6;"c in nächsten 5 Tagen fällig";
       dif < 11;"d in nächsten 10 Tagen fällig";
       dif < 31;"f in nächsten 30 Tagen fällig";
    "g später fällig")


    Wie hast Du eigentlich _Today berechnet?


    Gruß
    Dirk


    %edit
    habe den Code mal etwas optimiert

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Wenn mit einer Variable gearbeitet wird, dann hast du schon Recht.
    Wenn aber jedes Mal die Operanden neu ausgerechnet werden, ist es Latte, ob A-B oder B-A, man muss nur wissen, was man wie herum berechnet ;)

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

    • Offizieller Beitrag

    es ist nicht egal, weil wenn g zutrifft wird die Berechnung im alten Code 6 x durchgeführt.


    Anders gesagt im alten Code wird die Berechnung zwischen 1 bis 6 x pro Dokument durchgeführt und in der optimierten Variante immer nur 1 x pro Dokument.


    Gruß
    Dirk

  • Hallo Dirk,
    kommt der Fehler: "Uhrzeit oder Datum kann nicht interpretiert werden"


    zur Vervollständigung:
    _TD := @If(@Trim(@Text(@TextToTime("ToDay")))="";"Heute";"Today");
    _ToDay := @Date( @TextToTime( _TD ) );

  • Ja, meine ich ja: deine Variante mit einer Variable ist schon die bessere und auch performantere.

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Wäre es einfacher, wenn ich eine neue Ansicht bastele wo ich die Termine die 20 Tage oder länger über x_bearb_termin liegen ?


    Müsste nur dann dort die Formel für die Spalte wissen.....
    sorry ;)
    Matze

    • Offizieller Beitrag

    als erstes wurde ich prüfen, ob in x_bearb_Termin ein Datum/Zeitwert steht.


    @TextToTime("ToDay") bringt Dir auf einem deutschen Client keinen leeren String sondern das Datem 30.12.1899.


    Für die Clients mit den Sprachen deutsch, franz. und engl. müsste es so aussehen:

    Code
    Heute_deu := @TextToTime( "Heute" );
    Heute_engl := @TextToTime( "Today" );
    Heute_franz := @TextToTime( "Aujourd\'hui" );
    Heute := @If( Heute_deu > [01.01.1900]; Heute_deu;
               Heute_engl > [01.01.1900]; Heute_engl;
               Heute_franz);
    SELECT Datum <= Heute


    Gruß
    Dirk

  • also das Feld ist Datum/Zeit - berechnet.


    Sorry Dirk, aber was ist dein letzter Beitrag? Kann damit nichts anfangen


    Habe jetzt ne neue Ansicht und folgende Formel erstellt:


    @Adjust(x_bearb_termin;0;0;20;0;0;0); "seit 20 Tagen überfällig"


    leider zeigt er mir auch Termin an, die z.B. x_bearb_termin das Datum 26.05.2008 eingetragen haben. Das sind doch keine 20 Tage?

    • Offizieller Beitrag

    Du prüfst
    @Trim(@Text(@TextToTime("ToDay")))=""
    aber der EIntrag liefert keinen leeren String sondern im Fehlerfall das Datum 30.12.1899.


    Lass mal die vollständige Select-Formel sehen.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • sorry, aber es gibt nicht mehr - habe nur die eine Zeile eingefügt....
    Was meinst mit Select?


    Dachte es wäre einfach so mal mit @Adjust die TErmine rauszufiltern und anzusehen.....

  • ok - jetzt weiß ich was du meinst....
    hier:
    SELECT x_Muster != "Ja" & t_Kontrolle = "1" &
    ((Form = "Checkliste" & x_status = "1") |
    (Form != "Checkliste" & x_bearb_termin != "" & x_bearb_erledigt_am = ""))