Autor Thema: Aktuelle Woche berechnen  (Gelesen 6219 mal)

schmidti88

  • Gast
Aktuelle Woche berechnen
« am: 02.04.09 - 15:11:50 »
Hallo!
Ich stehe vor einem Problem und denke mir ihr könnt mir bestimmt helfen:

Ich möchte ein Datumsfeld auslesen, in dem z.B.: 20.06.2008 steht. Beim Auslesen soll mir Notes aber nur sagen, welche Woche das ist im Kalenderjahr ist.

Habe schon mehrere Formeln aus der Suche benutzt, aber bei allen hatte ich das Problem, dass Notes nicht die Formel angenommen hat, weil er gesagt hat Zeit/Datum erwartet.

Mein Datumsfeld ist ein Zeit/Datum, der Wert wo die Formel rein kommt ist ein Zahlenfeld.


Folgende Formel habe ich in der Suche gefunden und wollte diese für meine ZWecke nutzen, leider kommt der besagte Fehler:

Code
Datum           := EintrittDatum;
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"


Wäre nett, wenn ihr mir helfen könntet!
Danke, gruß

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: Aktuelle Woche berechnen
« Antwort #1 am: 02.04.09 - 15:18:13 »
Du willst Text (Berechnungsergebnis) in ein Zahlenfeld schreiben. Das ist das Problem.
Zitat
@Text(KW) + " KW"
Ändere den Typ in Text.

Gruß
Stefan
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

schmidti88

  • Gast
Re: Aktuelle Woche berechnen
« Antwort #2 am: 02.04.09 - 15:44:37 »
Hallo!
Danke für deine Antwort!
Auch als Textfeld geht es nicht :(

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Aktuelle Woche berechnen
« Antwort #3 am: 02.04.09 - 16:52:52 »
ist das Feld 'Eintrittdatum' ein Datumsfeld?
Und der Wert dort drin vom Typ Datum?

Sonst knallt es bereits in der zweiten Zeile.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

schmidti88

  • Gast
Re: Aktuelle Woche berechnen
« Antwort #4 am: 02.04.09 - 21:35:17 »
Hallo!
Ja EintrittDatum ist ein datumsfeld!
Die Anweder geben dort z.B. 01.08.1999 ein!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Aktuelle Woche berechnen
« Antwort #5 am: 02.04.09 - 21:42:33 »
Deine Aussage ist ein absoluter Null-Beleg dafür, dass EintrittDatum wirklich als Item vom Typ Date/Time abgespeichert wird. Liefere einen Beweis (Schirmschuss der document properties mit Darstellung des Items aus einem Dokument, welches bei Dir bei der Berechnung "zickt").

Bernhard

s_Old

  • Gast
Re: Aktuelle Woche berechnen
« Antwort #6 am: 02.04.09 - 21:45:01 »
Vllt. mal damit ausprobieren>

Code
Datum := @If (!@IsTime (EintrittDatum);@ToTime(EintrittDatum);EintrittDatum);

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Aktuelle Woche berechnen
« Antwort #7 am: 02.04.09 - 22:19:44 »
Sven (und alle anderen, die dieses Wort verwenden): "Ausprobieren" oder "probier doch mal" geht in der Programmiererei einfach nicht. Vor allem nicht in diesem Zusammenhang:

Code
Datum := @If (!@IsTime (EintrittDatum);@ToTime(EintrittDatum);EintrittDatum)

Wo ist die Ausstiegsbedingung, wenn @IsTime False ergibt, weil der Anwender statt 02.04.2009 "Tante Hilda" getippt hat?

Was hilft es auch, wenn wir noch nicht einmal wissen, ob "schmidti" das ganze im Front- oder im Backend macht?

Bernhard

s_Old

  • Gast
Re: Aktuelle Woche berechnen
« Antwort #8 am: 03.04.09 - 10:33:49 »
Sven (und alle anderen, die dieses Wort verwenden): "Ausprobieren" oder "probier doch mal" geht in der Programmiererei einfach nicht.
Das seh ich doch ein bisschen anders, ich erreiche viel durch trial & error und halte dies auch für einen vollkommen übliches Verfahren
Lösungsansatz entwickelt -> Probleme -> anderen Lösungsansatz versuchen. Korrigier mich bitte wenn ich vollkommenen Blödsinn verzapfen sollte.

Vor allem nicht in diesem Zusammenhang:

Code
Datum := @If (!@IsTime (EintrittDatum);@ToTime(EintrittDatum);EintrittDatum)

Wo ist die Ausstiegsbedingung, wenn @IsTime False ergibt, weil der Anwender statt 02.04.2009 "Tante Hilda" getippt hat?
Ich gebe auch nur Ansätze weiter, in diesem Falle die Hinweise auf die Prüfung mit @IsTime bzw. die Konvertierung der Datentypen.

Was hilft es auch, wenn wir noch nicht einmal wissen, ob "schmidti" das ganze im Front- oder im Backend macht?
Hat das bei der Anfrage wirklich Relevanz? Wenn ja: warum?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Aktuelle Woche berechnen
« Antwort #9 am: 03.04.09 - 15:23:16 »
Das seh ich doch ein bisschen anders, ich erreiche viel durch trial & error und halte dies auch für einen vollkommen übliches Verfahren
Lösungsansatz entwickelt -> Probleme -> anderen Lösungsansatz versuchen. Korrigier mich bitte wenn ich vollkommenen Blödsinn verzapfen sollte.

Try & Error kann aber nur ein letztes Mittel sein. In diesen Fällen habe ich hinterher immer ein grösseres Problem: Warum funktioniert das jetzt?

Was hilft es auch, wenn wir noch nicht einmal wissen, ob "schmidti" das ganze im Front- oder im Backend macht?
Hat das bei der Anfrage wirklich Relevanz? Wenn ja: warum?

Wenn Du im Frontend bist und in der Maske ein Datums-/Zeit-Feld ist, kannst Du ganz anders auf den korrekten Gebrauch des Datentyps prüfen als das im Backend der Fall ist (wo Du Dich ja auf gar nichts in dieser Hinsicht verlassen kannst).

Bernhard

s_Old

  • Gast
Re: Aktuelle Woche berechnen
« Antwort #10 am: 03.04.09 - 16:22:47 »
In diesen Fällen habe ich hinterher immer ein grösseres Problem: Warum funktioniert das jetzt?
Ok, die Frage stelle ich mir dann auch immer hinterher, leider nicht immer von Erfolg gekrönt  :(
Ich glaube auch es ist besser einige Sachen als gegeben hinzunehmen als sich selber verrückt zu machen, zuletzt erlebt beim Hantieren mit RichTextItems...


Wenn Du im Frontend bist und in der Maske ein Datums-/Zeit-Feld ist, kannst Du ganz anders auf den korrekten Gebrauch des Datentyps prüfen als das im Backend der Fall ist (wo Du Dich ja auf gar nichts in dieser Hinsicht verlassen kannst).
Auch wenn es eine blöde Frage ist aber: Wie äussert sich das, habe ich noch nicht ganz verstanden?
« Letzte Änderung: 03.04.09 - 16:25:27 von Swehn »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Aktuelle Woche berechnen
« Antwort #11 am: 03.04.09 - 16:50:33 »
Es gibt keine blöden Fragen, Sven. Zumindest fast keine  ;)

Im Frontend steht einem inkorrekt ausgefüllten DT-Feld gar kein Item im Backend gegenüber. Du hast also ein sicheres, aber ganz anderes "Fehlerkriterium" als im Backend.
Mit Formelsprache reicht tatsächlich ein Test auf @IsTime, mit LotusScript oder Java sieht das aber ganz anders aus.

Zu "Try & Error": Fehler, die ich mir nicht erklären kann, nehme ich ggf. als gegeben hin und versuche eben einen anderen Weg (bis sich mir die Sache vielleicht später doch noch erschliesst). Wenn aber etwas funktioniert und ich weiss nicht warum: Das akzeptiere ich niemals. Das hat nichts mit Pedanterie o.ä. zu tun - es ist einfach mein berufliches "Überlebensprinzip" und hat sich in den fast 30 Jahren Programmierung für mich wirklich bewährt.

Bernhard

s_Old

  • Gast
Re: Aktuelle Woche berechnen
« Antwort #12 am: 03.04.09 - 17:27:33 »
Hallo Bernhard!

Danke für die Aufklärung, man lernt ja nie aus.

Zu "Try & Error": Fehler, die ich mir nicht erklären kann, nehme ich ggf. als gegeben hin und versuche eben einen anderen Weg (bis sich mir die Sache vielleicht später doch noch erschliesst).
Genau das versuchte ich auszudrücken.

Wenn aber etwas funktioniert und ich weiss nicht warum: Das akzeptiere ich niemals.
D´accord, auch wenn mein Wissen nicht immer bis ins kleinste Detail geht versuche ich auch immer zu verstehen, was ich gerade mache.

Das hat nichts mit Pedanterie o.ä. zu tun - es ist einfach mein berufliches "Überlebensprinzip" und hat sich in den fast 30 Jahren Programmierung für mich wirklich bewährt.
Da kann ich mit meinen knapp 3 Jahren Erfahrung natürlich nicht gegen anstinken  ;)


So und nu is aber auch gut gewesen, schönes Wochenende euch allen!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Aktuelle Woche berechnen
« Antwort #13 am: 03.04.09 - 17:50:38 »
Das hat nichts mit Pedanterie o.ä. zu tun - es ist einfach mein berufliches "Überlebensprinzip" und hat sich in den fast 30 Jahren Programmierung für mich wirklich bewährt.
Da kann ich mit meinen knapp 3 Jahren Erfahrung natürlich nicht gegen anstinken  ;)

Sven, das konnte ich damals auch nicht. Vor 17 Jahren bin ich in die Notes-Entwicklung eingestiegen, und ich wäre damals mehr als dankbar gewesen, wenn es einen derartigen Informationsaustausch, wie er beispielsweise heute durch AtNotes möglich ist, schon gegeben hätte. Ich erinnere mich sehr gut (!) an diese meine Einsteiger-Zeit und die Kollegen, die mir damals geholfen haben unter wesentlich schlechteren infrastrukturellen Bedingungen.
Heute versuche ich das beispielsweise bei AtNotes oder bei Trainings On The Job wieder zurück zu geben. Ich mache das sehr bewusst.

Bernhard

Offline TRO

  • Senior Mitglied
  • ****
  • Beiträge: 296
Re: Aktuelle Woche berechnen
« Antwort #14 am: 03.04.09 - 20:45:00 »
Zitat

... Vor 17 Jahren bin ich in die Notes-Entwicklung eingestiegen, und ich wäre damals mehr als dankbar gewesen, wenn es einen derartigen Informationsaustausch, wie er beispielsweise heute durch AtNotes möglich ist, schon gegeben hätte. ...
...
Bernhard

na, zu der Zeit gab es aber immerhin die lager.nsf  ;)


Thomas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Aktuelle Woche berechnen
« Antwort #15 am: 04.04.09 - 01:12:09 »
Hallo Thomas,

ja, aber interessanter und zeitnaher war das entsprechende CompuServe-Board  ;)

Irgendwie klauen wir hier gerade "schmidti" den Thread. Ist aber eigentlich auch wurscht - er sollte ja in der Lage sein, herauszufinden, welches Item nun wirklich kein DT-Value ist. Das kann ja nun nur noch der lösen, der die fejhlerhafte Anwendung direkt vor sich hat.

Bernhard

schmidti88

  • Gast
Re: Aktuelle Woche berechnen
« Antwort #16 am: 27.04.09 - 11:40:29 »
Hallo!
Danke für eure Antworten, nach einer längeren Zeit melde ich mcih auch mal wieder zu Wort :)

Ich hatte zu beginn den fehler gemacht, dass er am anfang gesagt hatte, falscher Typ! Nachdem ich aber den Wert berechnet lassen hab, so hat er mir perfekt die KW Woche ausgegeben!

Nun bin ich am überlegen, wie ich am besten die Auswahl machen kann, dass er mir nur die aus der aktuellen Woche ausgibt:


Code
SELECT @If(
  (Form = "Eintrittsdatum") &
  (@Month(EintrittDatum)=@Month(@Now)) ; @True;
   @False
)
Mit dieser Formel hab ich die Eintrittsdaten anzeigen lassen aus aktuellen Monat.

Nach mehrfachen hin her probieren bin ich immer noch nicht weitergekommen.

Denn im Prinzip müsste ich die Formel für die KW Woche berechnen in die oben genannte Formel implementieren. Aber irgendwie bekomm ich das nicht hin!

Könntet ihr mir bitte nochmal helfen? Wäre echt nett, danke!


Code
Datum           := @now;
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"


mein lösungsweg:

Code
SELECT @If(
  (Form = "Eintrittsdatum") &
  (KW=KW(Eintrittsdatum)) ; @True;
   @False
)

Aber natürlich funktioniert es nicht.

Die KW vor dem = soll den KW aus der Formel berechnen, und das KW hinter = soll das kw aus der maske holen.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz