Lotus Notes / Domino Sonstiges > Help-Desk Applikation !!Help!!

Neue Ansicht Open/Closed by year/month/week erstellen?

<< < (4/5) > >>

Hagen-Roderich:
Mit der Formel:
D := @TextToTime(DateCompleted);

FirstOfYear := @Date(@Year(D); 1; 1);
LastOfYear := @Date(@Year(D); 12; 31);
FirstDayNum := @Weekday(FirstOfYear);
LastDayNum := @Weekday(LastOfYear);

REM {ISO weeks start on Monday and ends on Sunday.};
ISOFirstDayNum := @If(FirstDayNum = 1; 7; FirstDayNum - 1);
ISOLastDayNum := @If(LastDayNum = 1; 7; LastDayNum - 1);

REM {The first and last ISO week is the first};
REM {and last ISO week to include Thursday};
IsFirstWeek := 7 - ISOFirstDayNum > 2;
IsLastWeek := 7 - ISOLastDayNum < 4;
REM {The date of the first day of the first ISO week};
ISOFirstDay := @If(IsFirstWeek;
            @Adjust(FirstOfYear; 0; 0; 1 - ISOFirstDayNum; 0; 0; 0);
            @Adjust(FirstOfYear; 0; 0; 8 - ISOFirstDayNum; 0; 0; 0));
REM {The date of the last day of the last ISO week};
ISOLastDay := @If(IsLastWeek;
            @Adjust(LastOfYear; 0; 0; 7 - ISOLastDayNum; 0; 0; 0);
            @Adjust(LastOfYear; 0; 0; -ISOLastDayNum; 0; 0; 0));

REM {Date outside ISOFirstDay and ISOlastDay};
REM {are from the previous or next year};
REM {Return the ISO week number and exit};

FirstWeekNextYear := @If(D > ISOLastDay; @Return(@Prompt([Ok]; "FWNY";
@Text(@Year(D)+1) + "W01")); NULL);

REM {I suspect this is where Julian dates would be useful};
REM {A recursive call could be used in a real language};
LastWeekLastYear := (D - @Adjust(FirstOfYear; -1; 0; 0; 0; 0; 0))/60/60/24/7;
AdjustLastWeek := 1 - (LastWeekLastYear - @Integer(LastWeekLastYear));
@Set("LastWeekLastYear"; LastWeekLastYear + AdjustLastWeek);
@If(D < ISOFirstDay;
@Return(@Prompt([Ok]; "LWLY"; @Text(@Year(D) - 1) + "W" +
@Text(LastWeekLastYear))); NULL);

REM {If you get this far, the date falls into an ISO week this year};
REM {Convert the difference in seconds to weeks};
NumWeeks := (D - ISOFirstDay)/60/60/24/7;

REM {Fractions indicate that the date falls};
REM {in the middle of the ISO week};
WeekAdjust := 1 - (NumWeeks - @Integer(NumWeeks));
ISOWeekNum := NumWeeks + WeekAdjust;

REM {Conform to ISO 8601 format};
Pad:=@If(ISOWeekNum<10;"0";"");
@Text(@Year(D))+" - Week "+Pad+@Text(ISOWeekNum)
In welcher Woche das Ticket geschlossen wurde.
Seit dem Update auf 1.6 von 1.53 funktioniert das mit den neu abgeschlossenen nicht mehr.
Ich nehme an der Fehler liegt hier: D := @TextToTime(DateCompleted);
Da ich den Code nicht verstehe und er auch nicht von mir ist, brauche ich Hilfe um den Code so an zupassen das er mit 1.53 und 1.60 Tickets wieder arbeitet.

eknori (retired):

--- Zitat ---D := @TextToTime(DateCompleted);
--- Ende Zitat ---

In der 1.6 ist DateCompleted bereits ein Date/Time Feld. Daher geht @textToTime nicht

P.S.
ich werde das morgen mal mit deinem Code testen. heute habe ich keine Zeit und keinen Bock.

Hagen-Roderich:
Mit: D := @Date(DateCompleted); funktionieren die unter 1.60 erstellten Tickets, aber wie bekomme ich ALLE Tickets in einer Ansicht wieder zum laufen? Leider bin ich nicht in der Lage mir einen Agenten zuschreiben der die 1.53 Tickets anpasst.

koehlerbv:
Mal abgesehen davon: Wir haben doch hier im Forum unter Best Practices die ISO-KW-Berechnung in viel kompakterer Form im Angebot:

--- Code: ---REM "Berechnung der Kalenderwoche des Tages >>Datum<<";

Datum           := [tt.mm.jjjj];
Wochenstart     := @Adjust(Datum; 0;0; -@Weekday(Datum)+@If(@Weekday(Datum)=1;-5;2); 0;0;0);
ErsterJanuar    := @Date(@Year(Wochenstart); 1; 1);
ErsterWochentag := @Weekday(ErsterJanuar);
MinutenProTag   := 60 * 60 * 24;
TagImJahr       := (Wochenstart - ErsterJanuar) / MinutenProTag;
Kalenderwoche   := 1 + @Round(TagImJahr / 7);
KW              := @If((ErsterWochenTag *= 2:3:4) & (Kalenderwoche = 53); 1; Kalenderwoche);

@Text(KW) + " KW"
--- Ende Code ---

eknori (retired):
Um das einheitlich zu bekommen würde ich das Feld DTClosed in der Ansicht verwenden und das feld bei den alten Tickets über den Button RECALC in der Ansicht ($export) berechnen lassen.
Das sollte funktionieren. Vorher mal mit einem Dokument testen, ob das Datumsformat richtig erkannt wird.
Ich habe momentan leider keine funktionierende 1.5er Datenbank mit entsprechenden "AltDaten" zur Verfügung. Daher kann ich das nicht testen.

Die Berechnung der KW würde ich zudem in die Maske mit übernejmen und dort über die Formel ein feld füllen, das dann in der Ansicht verwendet werden kann. Sollte ein wenig performanter sein, als bei jedem Doc die KW in der Ansicht zur Laufzeit zu berechnen.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln