Autor Thema: Kalender erstellt und Probleme...  (Gelesen 1665 mal)

Offline mangler

  • Senior Mitglied
  • ****
  • Beiträge: 465
  • Geschlecht: Weiblich
  • Nicht alles ist, wie es scheint.
Kalender erstellt und Probleme...
« am: 17.03.03 - 13:33:38 »
Hi @ll,

ich hab eine neue Kalenderansicht erstellt und eine Maske, mit der ich Termine eintragen kann. Funzt soweit alles auch ganz prima. Aber wenn ich einen Termin nicht für Heute, sondern z.B. Morgen erstellen will, klick in die Kalenderanzeige für den 18.03.03 und sag "Neuer Termin" übernimmt er nicht das ausgewählte Datum sondern bleibt beim heutigen Datum. Ich hab schon einiges ausprobiert, finde aber keine Lösung dafür.

Hat Jemand von Euch eine Idee?

Interessant wäre für mich auch die Funktion, Termine die über mehrere Tage gehen, für jeden Tag anzeigen zu lassen, aber dafür habe ich auch noch keine Möglichkeit gefunden, obwohl ich Anfangs- und Enddatumsfelder eingerichtet habe.

Bitte helft mir.
Es ergibt sich alles - wenn die Zeit reif dafür ist !!!

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Kalender erstellt und Probleme...
« Antwort #1 am: 17.03.03 - 14:07:09 »
dazu brauchst Du das Kalender spezifische Event "RegionDoubleClick"

beispiel aus Help...
Sub Regiondoubleclick(Source As Notesuiview)
     Messagebox Source.CalendarDateTime,, _
                "Date and time for this region"
End Sub

Aus der KLasse NotesUIView kommt das CalendarDateTime (Variant):
Data type
Variant of type DATE
Syntax
To get: dateV = notesUIView.CalendarDateTime
Usage
This is the target date-time when the user does a copy, paste, or drag and drop operation in a calendar view.

Das kannst Du auslesen und nutzen.

Und wegen dem übergreifenden Termin:
Du kannst höchstens auf Basis eines Termindoc ein @explode auf das Startdatum/Zeit und Enddatum/Endzeit setzen.

Nutze die Formel:
_VarRange:=
@Explode(
@TextToTime(
@Text(StartDate;"D0S0") + " - " + @Text(EndDate;"D0S0")
)
);
_VarRange

=> ergibt 12.03.03 18:00 - 13.03.03 18:00 - 14.03.03 18:00)
(wobei StartDate bereits das komplette Datum incl. Startzeit enthält...zB "12.03.2003 18:00").

Wenn Du nun eine Spalte in der View baust, die Mehrfachwerte getrennt anzeigt, dann hast Du tagesübergreifende Termine.

Unschön & großes Manko: der Termin am 13.03. "geht" dann eben von Startzeit - Endzeit...normalerweise wäre das aber am 2. Tag von 00:01 - 23:59, also ganztägig...tja...UND die für Kalender wichtige Duration passt damit auch nit...UND...niedrigere Endzeiten als Startzeíten sind zwar logisch klar, aber im Notes ergibt das Schrott.

Ausweg: Einzeldocs aus Eingabe basteln per Script.
« Letzte Änderung: 17.03.03 - 14:09:52 von Rob Green »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Kalender erstellt und Probleme...
« Antwort #2 am: 17.03.03 - 14:11:18 »
mit Script habe ich das verwendet...ist etwas länger...

Code
If doc.Tage(0)>1 Then
            
            days = doc.Tage(0)
            daycounter = Cint(days)
            
                  'letzte Datum Zeit der Beleihung neu bilden
            Set EndDateFirstT = New NotesDateTime(StartDateFirstT.dateonly & " " & StartZeitLastT.TimeOnly) ' Tag momentan auch 01.01.03 00:01 Uhr
            Set EndDateLastT  = New NotesDateTime(StartDateFirstT.dateonly & " " & EndZeitLastT.Timeonly) ' Tag momentan bis 01.01.03 08:00 Uhr
            Call EndDateFirstT.AdjustDay( daycounter ) ' auf letzten Tag hochzaehlen zB 10.01.03 00:01 Uhr
            Call EndDateLastT.AdjustDay( daycounter ) ' auf letzten Tag hochzaehlen zB 10.01.03 08:00 Uhr
            
            For i = 0 To daycounter
               
               Set newdoc = db.CreateDocument
               Call doc.CopyAllItems(newdoc, True)
               newdoc.DateCreated = Today
               
               If i=0 Then 'erste Lauf erster Tag der Beleihung
                  Dim FirstDayEndSave2 As New NotesDateTime(  StartDateFirstT.dateOnly & " " & EndZeitFirstT.TimeOnly ) 'zB 01.01. 23:59 Ende 1. Tag
                  Dim FirstDayStartSave2 As New NotesDateTime(  StartDateFirstT.dateOnly & " " & StartZeitFirstT.TimeOnly ) 'zB 01.01. 14:00 Beginn
                  newdoc.EndDatumZeit = FirstDayEndSave2.LSLocalTime
                  newdoc.EndDateTime = FirstDayEndSave2.LSLocalTime
                  newdoc.EndDate = FirstDayEndSave2.LSLocalTime   
                  newdoc.StartDatumZeit = FirstDayStartSave2.LSLocalTime
                  newdoc.StartDateTime = FirstDayStartSave2.LSLocalTime
                  newdoc.StartDate = FirstDayStartSave2.LSLocalTime
                  Call newdoc.ReplaceItemValue( "StartTime",StartZeitFirstT)
                  Call newdoc.ReplaceItemValue( "EndTime",EndZeitFirstT)
                  
                  LetzteTag = doc.EndDatumZeit(0)
                  ErsteTag = doc.StartDatumZeit(0)
                  LetzteTag1$ = Cstr(LetzteTag)
                  ErsteTag1$ = Cstr(ErsteTag)
                  Call newdoc.ReplaceItemValue("Ganztagshinweis","Ganztagstermin vom " & ErsteTag1$ & " bis zum " & LetzteTag1$)
                  newdoc.TagePKW = doc.Tage(0)
                  
                  START$ = FirstDayStartSave2.DateOnly
                  ENDE$ = FirstDayEndSave2.DateOnly
                  Datumse = "["+ START$ +"-"+ ENDE$ +"]" 
                  WERTE = Evaluate( { @Explode( @TextToTime( "} & DATUMSE & {" ) ) } )
                  newdoc.explodeDatum=WERTE
                  newdoc.ID=IDSave
                  newdoc.form="Buchung"
                  Call newdoc.computewithform( False, False )
                  Call newdoc.Save(True, False)
                  Print "Neuer Ganztagstermin " & Cstr(FirstDayStartSave2.LSLocalTime)
               End If
               
               If i>0 And i<daycounter Then 'nächster Tag der Beleihung bis vor letzten Tag der Rückgabe
                  Set NextDateFirstT = New NotesDateTime(StartDateFirstT.dateonly & " " & StartZeitLastT.TimeOnly) 'zweiter Tag momentan auch 01.01.03 00:01 Uhr
                  Set NextDateLastT  = New NotesDateTime(StartDateFirstT.dateonly & " " & EndZeitFirstT.Timeonly) 'zweiter Tag momentan auch bis 01.01.03 23:59 Uhr
                  Call NextDateFirstT.AdjustDay( i) ' auf nächsten Tag hochzaehlen zB 02.01.03 00:01 Uhr
                  Call NextDateLastT.AdjustDay( i) ' auf letzten Tag hochzaehlen zB 02.01.03 23:59 Uhr      
                  newdoc.EndDatumZeit = NextDateLastT.LSLocalTime
                  newdoc.EndDateTime = NextDateLastT.LSLocalTime
                  newdoc.EndDate = NextDateLastT.LSLocalTime   
                  newdoc.StartDatumZeit = NextDateFirstT.LSLocalTime
                  newdoc.StartDateTime = NextDateFirstT.LSLocalTime
                  newdoc.StartDate = NextDateFirstT.LSLocalTime
                  Call newdoc.ReplaceItemValue( "StartTime",StartZeitLastT)
                  Call newdoc.ReplaceItemValue( "EndTime",EndZeitFirstT)
                  Call newdoc.ReplaceItemValue( "DispDuration","24 Std.")
                  
                  LetzteTag = doc.EndDatumZeit(0)
                  ErsteTag = doc.StartDatumZeit(0)
                  LetzteTag1$ = Cstr(LetzteTag)
                  ErsteTag1$ = Cstr(ErsteTag)
                  Call newdoc.ReplaceItemValue("Ganztagshinweis","Ganztagstermin vom " & ErsteTag1$ & " bis zum " & LetzteTag1$)
                  newdoc.TagePKW = doc.Tage(0)
                  
                  START$ = NextDateFirstT.DateOnly
                  ENDE$ = NextDateLastT.DateOnly
                  Datumse = "["+ START$ +"-"+ ENDE$ +"]" 
                  WERTE = Evaluate( { @Explode( @TextToTime( "} & DATUMSE & {" ) ) } )
                  newdoc.explodeDatum=WERTE
                  newdoc.ID=IDSave
                  newdoc.form="Buchung"
                  Call newdoc.computewithform( False, False )
                  Call newdoc.Save(True, False)
                  Print "Neuer Ganztagstermin " & Cstr(NextDateFirstT.LSLocalTime)
                  
               End If   
               
               If i=daycounter Then 'letzter Tag der Beleihung = Tag der Rueckgabe
                  newdoc.EndDatumZeit = EndDateLastT.LSLocalTime 'Zb 03.01. 12:00 Uhr Rückgabe
                  newdoc.EndDateTime = EndDateLastT.LSLocalTime
                  newdoc.EndDate = EndDateLastT.LSLocalTime   
                  newdoc.StartDatumZeit = EndDateFirstT.LSLocalTime
                  newdoc.StartDateTime = EndDateFirstT.LSLocalTime
                  newdoc.StartDate = EndDateFirstT.LSLocalTime
                  Call newdoc.ReplaceItemValue( "StartTime",StartZeitLastT) 'zB 03.01. 00:01
                  Call newdoc.ReplaceItemValue( "EndTime",EndZeitLastT)
                  
                  LetzteTag = doc.EndDatumZeit(0)
                  ErsteTag = doc.StartDatumZeit(0)
                  LetzteTag1$ = Cstr(LetzteTag)
                  ErsteTag1$ = Cstr(ErsteTag)
                  Call newdoc.ReplaceItemValue("Ganztagshinweis","Ganztagstermin vom " & ErsteTag1$ & " bis zum " & LetzteTag1$)
                  newdoc.TagePKW = doc.Tage(0)
                  
                  START$ = EndDateFirstT.DateOnly
                  ENDE$ = EndDateLastT.DateOnly
                  Datumse = "["+ START$ +"-"+ ENDE$ +"]" 
                  WERTE = Evaluate( { @Explode( @TextToTime( "} & DATUMSE & {" ) ) } )
                  newdoc.explodeDatum=WERTE
                  newdoc.ID=IDSave
                  newdoc.form="Buchung"
                  Call newdoc.computewithform( False, False )
                  Call newdoc.Save(True, False)
                  Print "Neuer Ganztagstermin " & Cstr(EndDateFirstT.LSLocalTime)
               End If      
               
            Next                        
         End If               
« Letzte Änderung: 17.03.03 - 14:28:02 von Rob Green »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline mangler

  • Senior Mitglied
  • ****
  • Beiträge: 465
  • Geschlecht: Weiblich
  • Nicht alles ist, wie es scheint.
Re:Kalender erstellt und Probleme...
« Antwort #3 am: 17.03.03 - 14:33:51 »
Danke für die schnelle Hilfe, aber kannst du einem Lotus Script Anfänger vielleicht etwas helfen?
Es ergibt sich alles - wenn die Zeit reif dafür ist !!!

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Kalender erstellt und Probleme...
« Antwort #4 am: 17.03.03 - 15:00:27 »
als Anfänger das Teil da oben..oups...hm..was/wo soll ich Dir denn helfen?
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline mangler

  • Senior Mitglied
  • ****
  • Beiträge: 465
  • Geschlecht: Weiblich
  • Nicht alles ist, wie es scheint.
Re:Kalender erstellt und Probleme...
« Antwort #5 am: 17.03.03 - 15:06:06 »
Also zum ersten, "Regiondoubleclick" - hab ich in der Ansicht entsprechend eingefügt laut

Sub Regiondoubleclick(Source As Notesuiview)
   Messagebox Source.CalendarDateTime,, _
   "Date and time for this region"
End Sub

Greift so aber erstmal nicht? Jetzt weiss ich aber auch nicht, wo ich den zweiten Teil deiner Anleitung einbauen soll: "NotesUIView - ClanendarDateTime"????

Und gerade bin ich an meiner Ansicht zu bauen mit der Formel @Explode. Aber so richtig will das auch nicht. Ich hab sie gerade eingebaut, dann zeigte er die Termine, wie von dir beschrieben einzeln an, denn erstellte ich einen neuen Kalendereintrag und schon funzte es nicht mehr. *grübel* - Seltsam, seltsam.
Es ergibt sich alles - wenn die Zeit reif dafür ist !!!

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Kalender erstellt und Probleme...
« Antwort #6 am: 17.03.03 - 15:18:35 »
um es abzukürzen, sonst wird es immer komplexer...

http://www-10.lotus.com/ldd/today.nsf/62f62847467a8f78052568a80055b380/bca25a1b82b2252185256400007c0c8b?OpenDocument&Highlight=0,calendar

da steht alles Wort für Wort drin, was und wie Du es machen mußt, incl. Deinem RegionDoubleClick..einfach nachbauen step by step oder die downloadable DB nehmen  ;)
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline mangler

  • Senior Mitglied
  • ****
  • Beiträge: 465
  • Geschlecht: Weiblich
  • Nicht alles ist, wie es scheint.
Re:Kalender erstellt und Probleme...
« Antwort #7 am: 20.03.03 - 13:12:50 »
Vielen Dank, der Link zu der Datenbank von IBM hat mir weiter geholfen. Ich denke bevor ich das Rad neu erfinde, nutze ich lieber so etwas.   ;)

Vielen Dank noch mal für Eure Hilfe.
Es ergibt sich alles - wenn die Zeit reif dafür ist !!!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz