Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino

jnotes Planer - Anfgangs- und Endezeit festlegen. Nicht implementiert?

(1/2) > >>

padkey:
Hallo zusammen,

wieder ein Prob mit dem Planer... :-(

Diesmal will ich die Anfangszeit und Endzeit für einen Arbeitstag festlegen. Beispiel von 8Uhr morgens bis 17Uhr Abends,anstatt von 0 Uhr bis 24Uhr.

Hierfür gibt es auch in der Property-File einen EIntrag:

--- Code: ---Planer.WorkTime.Start=8
Planer.WorkTime.End=17
--- Ende Code ---
Jedoch ohne Auswirkung.
Auch in PlanerUnitCalculator.java sind:

--- Code: ---protected int firstHourInPlaner=8;
protected int lastHourInPlaner=17;
--- Ende Code ---

zu finden. Auch hier wird auf diese Werte nicht zugriffen, außer mit den getter-Methoden, jedoch werden diese nie im ganzen Projekt irgendwo anders aufgerufen...

Sind diese Sachen überhaupt implementiert?

Wenn nicht, hat jmd eine Idee, wo ich da am besten ansetze, schlage mich schon relativ lange mit diesem Problem rum. Ich finde einfach nicht diese Codezeile, die sagt, dass der Tag 24 stunden oder 24*60*60*1000 ms oder was auch sonst hat...

vielen dank für hilfe

gruß padkey

jBubbleBoy:
"WorkTime" dient nicht der Skalierung der Zeitachse sondern um den Zeitstrang farblich hervorzuheben. 

Wenn Du eine gesamte Zeitdarstellung hast z.B. 2 oder 3 Tage, dann immer von 0 - 24 Uhr.

Wenn Du nur einen Tag darstellen willst, dann kann man eine Trick anwenden der darin besteht die Startzeit auf z.B. 8 Uhr zu legen und die Zeitskalierung so zu trimmen das genau ein Arbeitstag von 8-17 Uhr abgebildet wird.
Wenn der Anwender dann scrollt dann natürlich in der gesamten Zeitachse (0 - 24). Man kann aber Aktionen bereitstellen, welche Tageweise vor- oder zurückspringen, das geht dann über JavaScript.

Hoffe ich konnte Dir helfen :)

padkey:
hey, vielen Dank für deine schnelle Hilfe! Habe mein Problem nochmals versucht genauer zu schildern... ich hoffe man kann dies einfach mit wenigen Zeilen Code an der richtigen Stelle lösen, nur momentan scheine ich diese Stelle nicht zu finden... :-(


--- Zitat ---Wenn Du eine gesamte Zeitdarstellung hast z.B. 2 oder 3 Tage, dann immer von 0 - 24 Uhr.

--- Ende Zitat ---
Ich habe den Planer-Mode: Day, also werden immer mehrere Tage angezeigt.

Die Balken stellen Arbeitsaufgaben/Aufträge/Beschäftigungen dar.Diese sollen dann so reingezogen werden können, dass rechts eines "Units" anstatt 0 Uhr 8Uhr steht und dieses dann auch im Dokument in Notes so einfügen.


--- Zitat ---Wenn Du nur einen Tag darstellen willst, dann kann man eine Trick anwenden der darin besteht die Startzeit auf z.B. 8 Uhr zu legen und die Zeitskalierung so zu trimmen das genau ein Arbeitstag von 8-17 Uhr abgebildet wird.

--- Ende Zitat ---
Okay, das würde mich mal interessen, wie ich die Zeitskalierung trimmen kann?
Wenn ich die Startzeit(des Planers) in den Methoden calcDateToUnit() und calcUnitToDate() auf 8Uhr setze, dann beginnen auch die alle Units bei 8Uhr, jedoch endet dann der Tag auch bei 7,59Uhr. Dies beruht darauf, dass immer das Startdatum des Planers zum berechnen der anderen Daten verwendet wird.Somit habe ich nichts gewonnen. Ein Unit stellt immer noch 24 Stunden dar.
Wo holt sich das Unit, die Informationen, dass es 24 Stunden abbilden soll???

Ich habe auch schon die currentUnitLength, also unter getCurrentUnitLength():

--- Code: ---case PlanerOptions.PLANERMODE_DAY :
return 24 * 3600000L;

--- Ende Code ---
anstatt 24 auf 9 Units gedreht. Jedoch wird dann 1 Tag nicht mehr in einem Unit(also Kasten oder Feld) angezeigt, sondern in ca. 3.

Nun gibt es viele Möglichkeiten, den Rest zu entfernen, man entfernt die Zeit davor, man setzt die Tageslänge einfach auf 9 Stunden...


jBubbleBoy:
Du hast doch bestimmt die Dokumentation, da sollte beschrieben sein wie du mit den Parametern:

--- Code: ---Planer.Widthcalculate.Mode
Planer.Mode
Planer.Unit.Width

--- Ende Code ---
Du dir deine eigenen sichtbaren Zeitbereiche definieren kannst.

Setze "Planer.Widthcalculate.Mode" auf "normal" um die volle Kontrolle über die Zeiteinteilung zu erhalten, z.B.:

--- Code: ---Planer.Widthcalculate.Mode=normal
Planer.Mode=Hour
Planer.Unit.Width=10 

--- Ende Code ---
bei einer Appletbreite von 400 Pixel gehen genau 40 Units unter (Appletbreite/Planer.Unit.Width) eine Unit stellt eine Stunde dar (Planer.Mode=Hour), also werden 40 Stunden abgebildet.

Also durch wissen über Appletbreite und den Einstellungen von Planer.Mode und Planer.Unit.Width kannst Du dir den Zeitbereich selber festlegen.  Der Parameter "Planer.Widthcalculate.Mode" nimmt dir diese Aufgabe ab ist aber auch nicht so flexible.

padkey:
okay, vielen dank, für die gute idee mit der Ansicht.

Jedoch sehe ich hier ein Problem: auch wenn ich dann die Appletbreite auf 90 Pixel bei 10 Pixel pro Unit im Stundenmodus drehe und dann nur von 8 bis 17 uhr mir die zeit anschaue, sehe ich ein paar probleme:
wenn ich den balken zu weit nach rechts verschiebe, dann ist der Balken trotzdem außerhalb von meiner Zeitspanne.
Eigentlich wollte ich auch eine Ansicht über mehrere Tage...

Für das was ich den Kalendar verwenden will, geht kein weg daran vorbei, das ein Unit nur von 8 - 17 Uhr geht.

Habe mir überlegt ein Kalendarmodell in Java zu machen, welches nur diese Zeitspanne enthält und dieses dann zu verwenden. Was meinst du dazu?

Die Idee mit der Ansicht ist zwar gut, aber es muss doch auch einen einfachen Weg geben, die Anfangszeit und Endzeit eines Units zu definieren.

Gruß Patrick

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln