Autor Thema: Nur bestimmte Kalenderwoche anzeigen  (Gelesen 3527 mal)

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Nur bestimmte Kalenderwoche anzeigen
« am: 22.07.09 - 15:44:16 »
Hallo,

in der ersten Spalte einer Anischt habe ich eine Formel (von Bernhard) zur Berechnung der Kalenderwoche

Code:
REM "Berechnung der Kalenderwoche des Tages >>Datum<<";
REM "Die Initialisierung von DAtum kann bspw. mit @Today erfolgen.";

Datum           := [DatumsFeld aus den Doks];
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"

Nun möchte ich es hinbekommen, das ich nur die Aktuelle KW und die darauffolgende KW in einer Ansicht seh.
wie bekomme ich das hin?
Meine bisherigen Versuche sind gescheitert

Danke,
Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Nur bestimmte Kalenderwoche anzeigen
« Antwort #1 am: 22.07.09 - 15:46:59 »
Hallo,

Was sind denn Deine bisherigen Versuche?


Andreas

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Nur bestimmte Kalenderwoche anzeigen
« Antwort #2 am: 22.07.09 - 15:58:45 »
Ich dachte das ich es über eine eingebettet Ansicht schaffe und eben mit Bernhards Formel das aktuelle Datum bestimmen kann und dies dann einfach als Kriterium setzen kann. Ging aber nicht.
Dannach hab ich mich mit der Auswahlformel einer Maske beschäftigt, aber auch dort war ich leider weniger erfolgreich.

Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Nur bestimmte Kalenderwoche anzeigen
« Antwort #3 am: 23.07.09 - 14:46:33 »
Hat niemand einen Tipp/Lösungsansatz.
Ich befürchte ich stehe nur auf dem Schlauch. Kann ja eigentlich nicht unmöglich sein.

Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Nur bestimmte Kalenderwoche anzeigen
« Antwort #4 am: 23.07.09 - 20:17:20 »
Dein Ansinnen ist problemlos möglich. Wenn Du uns aber nicht sagst, wie Du was bisher gemacht hast, können und wollen wir auch nicht weiterhelfen (zumindest meine Kristallkugel versteckt sich bei einem Gewitter wie jetzt immer  ;D).

More input, more output!

Bernhard

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Nur bestimmte Kalenderwoche anzeigen
« Antwort #5 am: 24.07.09 - 08:51:15 »
Oh okay, dachte irgendwie das reicht  :)

Ich hab eine Maske; in der hab ich ein Datumsfeld welches der User setzen kann.
In meiner Ansicht hab ich dann in der ersten Spalte dein Script (Danke! ;)) zum errechnen der Kalenderwoche in der das Datum liegt (Die Spalte KW ist Kategorisiert).
Nun hätt ich gerne eine extra Ansicht für die User, in der nur die Dokumente der aktuellen KW und der kommende KW angezeigt werden.

Ich hoffe, es ist nun klarer  :)

Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

BigWim

  • Gast
Re: Nur bestimmte Kalenderwoche anzeigen
« Antwort #6 am: 24.07.09 - 09:31:56 »
Hallo Chris,

wenn Du die aktuelle KW UND die aktuelle KW +1 anzeigen lassen willst, geht das meiner Meinung nach nicht mit einer eingebetteten Ansicht, es sei Du nutzt ein mehr als "wildes" Konstrukt.

Du müßtest in der Ansicht als erste (versteckte) Spalte haben, die berechnet:
a) die Kalenderwoche vom aktuellen Datum berechnet
   (-> hier im Forum habe ich nichts Gutes über die Kombination von View und @Today gelesen)
b) die Kalenderwoche des Datums aus dem Dokument
c) Vergleicht KW:
   (-> in etwa Wenn (a=b oder a+1=b) dann 1 ansonsten 0)

Damit hättest Du ein Ansichtskritierum für die eingebettete Ansicht.


Mein Favorit wäre ja eher, dieses als Agent zu implementieren, der täglich (ab 0:01 ;-)) läuft und ein entsprechendes Flag im Dokument setzt, sodaß die View nur Dokumente mit diesem Flag anzeigt.

Markus

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Nur bestimmte Kalenderwoche anzeigen
« Antwort #7 am: 24.07.09 - 09:40:54 »
Für eine normale Ansicht musst Du doch nur in der Ansichtsauswahlformel die KW auf Basis des "Datum" in den Dokumenten berechnen und die KW auf Basis @Today. Das SELECT-Statement würde dann auf dem entsprechenden Vergleich der beiden KW-Werte basieren.

Sowie Du viele Dokumente in der DB hast, für das aber zäh und ärgert den Server.

Bernhard

Jürgen Schomann

  • Gast
Re: Nur bestimmte Kalenderwoche anzeigen
« Antwort #8 am: 25.07.09 - 17:42:37 »
Nur ein Hinweis.
Die Formel für die Berechnung der KW ist nicht ganz korrekt. So liefert sie für den 31.12.2012 z. B. 53 statt 1. KW 2013:
Hier eine andere Formel:

Date := [<Datum>];
WeekThursday := @Adjust(Date; 0; 0; @If(@Weekday(Date) = 1; -3; -@Weekday(Date) + 5); 0; 0; 0);
WeekYear := @Year(WeekThursday);
January4Date := @Date(WeekYear; 1; 4);
FirstThursday := @Adjust(January4Date; 0; 0; @If(@Weekday(January4Date) = 1; -3; -@Weekday(January4Date) + 5); 0; 0; 0);
Week := ((WeekThursday - FirstThursday) / 86400) / 7 + 1;

@Prompt([Ok];"";@Text(Week) + ". KW, " + @Text(WeekYear))

Offline gstueb

  • Aktives Mitglied
  • ***
  • Beiträge: 125
  • Geschlecht: Männlich
  • God is real unless declared integer
Re: Nur bestimmte Kalenderwoche anzeigen
« Antwort #9 am: 25.07.09 - 20:41:30 »
Nun möchte ich es hinbekommen, das ich nur die Aktuelle KW und die darauffolgende KW in einer Ansicht seh.
wie bekomme ich das hin?

Wie Bernhard schon geschrieben hat, belastet eine Select-Formel in der Form

Code
Select KW=AktuelleKW | KW = NaechsteKW

den Server, weil durch die Datumsberechnung in der Ansichten-Formel die Ansicht nie wirklich aktuell ist und ständig neu berechnet wird.

Du könntest auch einen Agenten schreiben, der jeden Morgen läuft und alle Dokumente, die angezeigt werden sollen, entsprechend markiert und z.B. ein Feld Anzeigen = 1 setzt.

Oder Du erstellst in jedem Dokument ein Datumfeld "Heute", welches Du ebenfalls 1 x täglich per Agent (und bei der Neuanlage von Dokumenten) auf das aktuelle Datum setzt. Wenn Du anstelle von @today dann dieses Feld in der Auswahlformel verwendest, bekommt der Server keine Probleme mit der Ansicht.

Gruß,
Gregor

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Nur bestimmte Kalenderwoche anzeigen
« Antwort #10 am: 26.07.09 - 16:49:57 »
Danke, Jürgen! Ich habe tatsächlich nicht hinreichend getestet, nachdem jr mir eine kürzere Fassung meines eigenen Codes zur Verfügung stellte - so ist mir der Bug glatt entgangen.

Ich habe den entsprechenden Best Practice-Artikel "KW-Berechnung" jetzt geändert und Deinen Code eingestellt.

Bernhard

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Nur bestimmte Kalenderwoche anzeigen
« Antwort #11 am: 28.07.09 - 09:10:06 »
Vielen Dank für eure Antworten.
Bin nur leider gerade auf einer Schulung und kann deshalb da grad nicht weitermachen.
Sobald ich dazukomm werd ichs ausprobieren :)

Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz