Das Notes Forum

Lotus Notes / Domino Sonstiges => Projekt Bereich => Help-Desk Applikation !!Help!! => Thema gestartet von: Hagen-Roderich am 24.05.07 - 16:51:33

Titel: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: Hagen-Roderich am 24.05.07 - 16:51:33
Wie müsste man vorgehen wenn man Ansicht erstellen will in der nicht nur das Datum steht sondern ganz links das Jahr und wenn man das aufklappt der Monat und da dann wieder die Woche? Es wäre interessant zu wissen wie sich Ticketaufkommen so übers Jahr, Monat, Woche verteilt.
Mit der Summenfunktion Summenfunktion (http://atnotes.de/index.php?topic=34874.msg228836#msg228836) könnte man doch sowas machen, oder?
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: DerAndre am 25.05.07 - 08:08:39
Spaltenformel Jahr
  @Year(Datum)

Spaltenformel Monat
  @If(@Month(Datum) < 10 ; "0" + @Text(@Month(Datum));Text(@Month(Datum)))

Die Spalten dann Kategorisiert und das sollte es dann sein.

Plus Deiner Summengeschichte.
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: Hagen-Roderich am 25.05.07 - 11:44:15
Irgendwas mache ich falsch.  :-:
Ich hab Datum gegen Date getauscht aber das hat auch nichts gebracht. Die Spalteneigenschaften stimmen doch, oder?
Wird wohl ein Anfängerfehler sein.
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: DerAndre am 25.05.07 - 11:49:59
Laß den Stil auf Allgemein
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: m3 am 25.05.07 - 12:00:59
1) Wie heißt denn das Feld in dem Form, in dem das Datum drinnen steht?
2) Welchen Typ hat denn das Feld, in dem das Datum drinnen steht? DateTime oder Text (brrrr)?

In @Year() musst Du den Feldnamen schreiben, in dem das Datum gespeichert wird. Das funktioniert aber nur, wenn es sich bei dem Feld auch wirklich um ein Datumsfeld handelt.
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: DerAndre am 25.05.07 - 12:09:49
Ääääh und um die Woche habe ich mir auch noch keine Gedanken gemacht.

Aber viel Spaß bei der Wochenberechnung (http://atnotes.de/index.php?topic=20457.0)

Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: Hagen-Roderich am 25.05.07 - 12:50:55
Ich hab im Designer die Ansicht Closed By Date geöffnet. Dann "Spalte in Ansicht einfügen" (links) gewählt. Dann bei Spaltenwert / Formel "@Year(@Date(@Created))" eingefügt und das Jahr steht drin.
Bei Monat hab ich "@Month(@Date(@Created))" genommen, mal sehen ob ich die führende Null noch hin bekomme.
Danke für die Hilfe.
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: DerAndre am 25.05.07 - 13:03:08
Wo liegt das Problem?
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: Hagen-Roderich am 25.05.07 - 13:10:52
Wo liegt das Problem?

Wenn ich probiere die führende Null mit zu nutzen
@If(@Month(@Date(@Created))) < 10 ; "0" + @Text(@Month(@Date(@Created)));Text(@Month(@Date(@Created))))
Dann bekomme ich nur den Fehler wie auf dem Bild.
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: koehlerbv am 25.05.07 - 13:17:01
"Text" ist weder eine Variable noch eine Funktion - mach da mal @Text draus, dann klappts auch mit dem Nachbarn  ;)

Bernhard
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: koehlerbv am 25.05.07 - 13:18:41
Hier noch eine kürzere Variante:
@Right ("0" + @Text (@Month (@Created)); 2)

Bernhard
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: DerAndre am 25.05.07 - 13:21:30
Heidenei, hab ich doch den Klammeraffen verschlampt...  ::)
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: koehlerbv am 25.05.07 - 13:26:31
Das kann doch passieren, Andre. Aber man (Udo) sollte prinzipiell nur Code verwenden, wenn man weiss, was man da tut und vor allem den Code verstanden hat.

Bernhard
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: Hagen-Roderich am 25.05.07 - 13:30:28
Hier noch eine kürzere Variante:
@Right ("0" + @Text (@Month (@Created)); 2)

Bernhard

Danke, funktioniert.
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: DerAndre am 25.05.07 - 13:31:36
Pssssst  ;D

( War auch nicht wirklich Ernst gemeint Bernhard, wollte damit eigentlich Deine Aussage zum Ausdruck bringen )
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: Hagen-Roderich am 29.08.07 - 16:37:16
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.
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: eknori am 29.08.07 - 16:43:59
Zitat
D := @TextToTime(DateCompleted);

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.
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: Hagen-Roderich am 29.08.07 - 16:59:03
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.
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: koehlerbv am 29.08.07 - 17:02:27
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"
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: eknori am 30.08.07 - 06:32:57
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.
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: Hagen-Roderich am 30.08.07 - 14:33:24
D := @Date(DTClosed); + "Recalc" damit funktioniert es wieder. Danke.
Den kürzeren Code zur Berechnung der Woche habe ich leider nicht zum laufen gebracht.
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: akogan am 07.09.07 - 13:23:04
noch eine variante:

Spalten Formel Jahr:

@Text(@Year(@TextToTime(ScanDatum))) +  " (" + @Text(@DocDescendants) + ")"

Spalten Formel Monat:

Monat:=@Select(@Month(@TextToTime(ScanDatum));" 1 (Januar)";" 2 (Februar)";" 3 (März)";" 4 (April)";" 5 (Mai)";
" 6 (Juni)";" 7 (Juli)";" 8 (August)";" 9 (September)";"10 (Oktober)";"11 (November)";"12 (Dezember)");
Monat + " (" + @Text(@DocDescendants) + ")"

Spalten Formel Datum:

@Text(@Date(@TextToTime(ScanDatum))) + " (" + @Text(@DocDescendants) + ")"

Die spalten sind sortiert und kategoriesiert.

Gruss
Alex
Titel: Re: Neue Ansicht Open/Closed by year/month/week erstellen?
Beitrag von: koehlerbv am 07.09.07 - 13:30:57
Auch eine Möglichkeit, Alex. Allerdings wird dann der Tag falsch einsortiert, hier sollte es heissen:
@Right ("0" + @Text(@Date(@TextToTime(ScanDatum))); 2) + " (" + @Text(@DocDescendants) + ")"

Voraussetzung bei allem ist, dass "ScanDatum" tatsächlich als Text vorliegt, was ja wohl in der Version 1.6. nicht mehr der Fall ist. Sollte das gemixt vorkommen (alte / neue Daten und keine Konvertierung beim Update), muss "ScanDatum" vorher noch normiert werden.

Bernhard