Autor Thema: Wiedervorlage / Kalendereintrag - Hilfe!!  (Gelesen 3703 mal)

Offline HelpMartin

  • Frischling
  • *
  • Beiträge: 9
Wiedervorlage / Kalendereintrag - Hilfe!!
« am: 22.02.05 - 10:23:57 »
Hallo,
ich hab schon nach entsprechenden Lösungen gesucht, zu meinem Problem aber nichts gefunden.
Vielleicht weis jemand von euch Rat:
In einer DB können die Mitarbeiter Beiträge erstellen.
Nun sollen einzelne Doks/Beiträge als Wiedervorlage im Kalender des Mitarbeiters eingetragen werden können.
Wie der Kalendereintrag erstellt wird, ist mir klar.

Aber es sollen zusätzlich 2 Felder aus dem Dok im Kurztext des Kalendereintrags angezeigt werden, das Wiedevorlagedatum also Datum im Kalender muß wählbar sein und zusätzlich im Dok selbst in einem Feld gespeichert werden.

Vielleicht hat jemand den entsprechenden Script für mich.?

Ich bedanke mich schon mal im Voraus für die Unterstützung.

Gruß
Martin

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Wiedervorlage / Kalendereintrag - Hilfe!!
« Antwort #1 am: 22.02.05 - 11:52:18 »
Hi,

erstmal willkommen im Forum.

Das hab' ich in "grauer Vorzeit" mal so ähnlich gemacht.

Hier ist der Code das Agenten:

Code
Sub Initialize
	
	Dim session As New NotesSession
	Dim ws As New NotesUIWorkspace
	Dim collection As NotesDocumentCollection   
	Dim currentdb As NotesDatabase
	Dim maildb As NotesDatabase
	Dim profile As NotesDocument
	Dim doc As NotesDocument
	Dim wvdoc As NotesDocument
	Dim datetime As New NotesDateTime("")
	Dim dateitem As NotesItem
	Dim timeitem As NotesItem
	Dim MailDatenbank As Variant
	Dim eintrag As String
	
	
'Initialisierung mit aktuellen Datum und Uhrzeit
	Call datetime.SetNow
	
' Zugriff auf markiertes Dockument
	Set currentdb = session.CurrentDatabase
	Set collection = currentdb.UnprocessedDocuments
	If collection.Count = 0 Then 
		Messagebox "Sie haben keinen Eintrag markiert.", 64, "Adressen"
		Exit Sub
	End If  'If collection.Count = 0
	If collection.Count = 1 Then
		Set doc = collection.GetNthDocument(1)
		If doc.Form(0) = "frmFirma" Then
			eintrag = Trim$(doc.Vorname(0) & " " & doc.Name(0))
		Else
			eintrag = Trim$(doc.KontaktVorname(0) & " " & doc.KontaktName(0))               
		End If  'If doc.Form(0) = "frmFirma"
	Else       
		Messagebox "Für die Erstellung einer Wiedervorlage darf nur ein Eintrag markiert sein.", 64, "Adressen"
		Exit Sub
	End If  'If collection.Count = 1
	
'Zugriff auf Maildatenbank und Prüfung ob im Kalenderprofil die Weckfunktion eingeschaltet ist.
	MailDatenbank = Evaluate("@MailDbName")
	If MailDatenbank(1) = "" Then
		Messagebox "Auf Ihre Maildatenbank kann nicht zugegriffen werden.", 16, "Adressen - Fehler"
		Exit Sub          
	End If  'If MailDatenbank(1) = ""
	Set maildb = New NotesDatabase(MailDatenbank(0),MailDatenbank(1))
	Set profile = maildb.GetProfileDocument("CalendarProfile")
	If profile Is Nothing Then
		Messagebox "Fehler beim Zugriff aus das Kalenderprofil Ihrer Maildatenbank.", 16, "Adressen - Fehler"
		Exit Sub 
	Else
		If profile.EnableAlarms(0) <> "1" Then
			Messagebox "Im Kalenderprofil Ihrer Maildatenbank sind keine Alarmoptionen aktiviert." & Chr$(10) & _
			"Es kann keine Wiedervorlage erstellt werden.", 48, "Adressen - Warnung"
			Exit Sub                
		End If  ' If profile.EnableAlarms(0) <> "1"
	End If  'If profile Is Nothing
	
'Erstellen einer Erinnerung innerhalb der Maildatenbank des Users     
	Set wvdoc = New NotesDocument(maildb)
	wvdoc.Form = "Appointment"
	wvdoc.AppointmentType = "4"
	wvdoc.ExcludeFromView = "D"
	Set wvdoc.StartDateTime = datetime
	Set wvdoc.CalendarDateTime = datetime     
	wvdoc.Subject = "Wiedervorlage für " & eintrag
	
	If ws.DialogBox("tmDlgAlarm", True, True, False, False, False, False, "Wiedervorlage", wvdoc) = False Then Exit Sub
	
	Set dateitem = wvdoc.GetFirstItem("tmpAlarmOnDate")
	Set timeitem = wvdoc.GetFirstItem("tmpAlarmOnTime")
	Set AlarmTime = New NotesDateTime(dateitem.DateTimeValue.DateOnly & " " & timeitem.DateTimeValue.TimeOnly)
	Set wvdoc.ReminderTime = AlarmTime 
	Set wvdoc.StartDateTime = AlarmTime
	Set wvdoc.CalendarDateTime = AlarmTime     
	Set wvdoc.~$AlarmTime = AlarmTime
	Call wvdoc.ReplaceItemValue("$Alarm", 1)
	AlarmSet = 1
	wvdoc.RemoveItem("$AlarmOffset")
	Call wvdoc.ReplaceItemValue("_ViewIcon",10)          
	wvdoc.OrgDontDoubleBook = ""
	wvdoc.OrgTable = ORS_ITEM_CALENDAR
	wvdoc.~$PublicAccess = "0"     'Allgemeinen Zugriff verhindern
	
	Call wvdoc.ComputeWithForm(True,False)
	Call wvdoc.Save(True,False,True)   'Sichern und als gelesen markieren
	Call wvdoc.PutInFolder("$Alarms")   'Damit autom. Benachrichtigung erfolgt in entspr. Ordner kopieren

'Hier übernimmst du die Daten in dein Dokument (Feldnamen beispielhaft)
doc.WiedervorlageDatum = wvdoc.StartDateTime 
doc.WiedervorlageZeit = AlarmTime
Call doc.Save(True,False)
	
End Sub

Unten findest du noch eine Grafik der Teilmasken. Ich galube ich habe damals einfach die Felder aus dem entsprechenden Dokument aus der Mail-DB in meinen Dialog kopiert.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline HelpMartin

  • Frischling
  • *
  • Beiträge: 9
Re: Wiedervorlage / Kalendereintrag - Hilfe!!
« Antwort #2 am: 23.02.05 - 13:45:08 »
Danke Axel für die schnelle Unterstützung,

ich hab da aber noch ein paar Fragen:

(Set collection = currentdb.UnprocessedDocuments
If collection.Count = 0 Then
Messagebox "Sie haben keinen Eintrag markiert.", 64, "Adressen"
Exit Sub
End If  'If collection.Count = 0)

Grundsätzlich sollte das Script im Dokument starten und
nicht über eine Ansicht.

(If doc.Form(0) = "frmFirma" Then)

Dann auch nicht auf eine bestimmte Maske bezogen.
Da unterschiedliche Masken angesprochen werden müssen.
Hier gibt es dann eine Teilmaske mit gemeinsamen Feldern, die in allen Masken vorhanden ist.

Läßt sich das realisieren?

Gruß Martin


Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Wiedervorlage / Kalendereintrag - Hilfe!!
« Antwort #3 am: 23.02.05 - 14:01:13 »
Hi,

yoo, das sollte kein Problem sein.

So müsste das gehen

Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument

Set uidoc = ws.Currentdocument   'Zugriff auf aktuelles Dokument
Set doc = uidoc.Document

'Felder aus Teilmaske (Feldnamen musst du anpassen)
eintrag = Trim$(doc.Vorname(0) & " " & doc.Name(0))

'Zugriff auf Maildatenbank und Prüfung ob im Kalenderprofil die Weckfunktion eingeschaltet ist.
MailDatenbank = Evaluate("@MailDbName")
...



Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline HelpMartin

  • Frischling
  • *
  • Beiträge: 9
Re: Wiedervorlage / Kalendereintrag - Hilfe!!
« Antwort #4 am: 24.02.05 - 15:38:08 »
Also Axel, das klappt schon mal vorzüglich!

Aber im Kalenderdok wollte ich noch ein weiteres Feld (Termin_ART) füllen.
Hab ich so versucht:

Erstellen einer Erinnerung innerhalb der Maildatenbank des Users     
     Set wvdoc = New NotesDocument(maildb)
     wvdoc.Form = "Appointment"
     wvdoc.AppointmentType = "4"
     wvdoc.ExcludeFromView = "D"
     wvdoc.Termin_ART = "Sonstiges"


Klappt aber nicht.

Des weiteren wollte ich den Meldetext ($AlarmDiscription) aus der Dialogmmaske ins Subject des KalenderDoks übertragen bzw. an den schon bestehenden Eintrag anhängen??

Und was noch ganz schön wäre: ein entsprechender DocLink im Body.

Gruß
Martin



Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Wiedervorlage / Kalendereintrag - Hilfe!!
« Antwort #5 am: 24.02.05 - 16:18:40 »
Aber im Kalenderdok wollte ich noch ein weiteres Feld (Termin_ART) füllen.
Hab ich so versucht:

Erstellen einer Erinnerung innerhalb der Maildatenbank des Users     
     Set wvdoc = New NotesDocument(maildb)
     wvdoc.Form = "Appointment"
     wvdoc.AppointmentType = "4"
     wvdoc.ExcludeFromView = "D"
     wvdoc.Termin_ART = "Sonstiges"


Klappt aber nicht.

Was klappt hier nicht?

Des weiteren wollte ich den Meldetext ($AlarmDiscription) aus der Dialogmmaske ins Subject des KalenderDoks übertragen bzw. an den schon bestehenden Eintrag anhängen??

Dim item As NotesItem
Set item = wvdoc.GetFirstItem("$AlarmDiscription")
wvdoc.Subject = "Wiedervorlage für " & eintrag & item.Text

Und was noch ganz schön wäre: ein entsprechender DocLink im Body.

Schau mal in die Designer-Hilfe oder such hier mal im Forum. Gerade hier hatten wir das Thema schon öfters.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline HelpMartin

  • Frischling
  • *
  • Beiträge: 9
Re: Wiedervorlage / Kalendereintrag - Hilfe!!
« Antwort #6 am: 24.02.05 - 17:41:45 »
Hallo Axel

herzlichen Dank.
Ich muß aber leider noch mal nachhaken:

Dim item As NotesItem
Set item = wvdoc.GetFirstItem("$AlarmDiscription")
wvdoc.Subject = "Wiedervorlage für " & eintrag & item.Text

Habe ich so eingetragen.
Danach bekomme ich die Meldung "Object Varable not set"!?
Hab zwar ein bischenrumprobiert aber kein positives Ergebnis erhalten.

Gruß
Martin

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Wiedervorlage / Kalendereintrag - Hilfe!!
« Antwort #7 am: 24.02.05 - 17:51:19 »
"Discription" ? Findet sich nicht im Wörterbuch und wohl auch nicht als Itemname im Mailfile  ;D

Setzt mal den richtigen Itemnamen ein und vor allem: Verwende nie ein Item, ohne dieses nachher zu prüfen:

Set NotesItem = NotesDocument.GetFirstItem ("ItemName")
If Not (NotesItem Is Nothing) Then ...

Und dass für (fast) alle Objekte machen - Du schreibst zwar mehr, machst Dir aber das Leben erheblich leichter.

Bernhard

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Wiedervorlage / Kalendereintrag - Hilfe!!
« Antwort #8 am: 24.02.05 - 18:17:01 »
Hi,

das Feld heißt auch nicht $AlarmDiscription sondern $AlarmDescription.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Wiedervorlage / Kalendereintrag - Hilfe!!
« Antwort #9 am: 24.02.05 - 18:45:10 »
Erwähnte ich das nicht bereits, Axel ?

Offline HelpMartin

  • Frischling
  • *
  • Beiträge: 9
Re: Wiedervorlage / Kalendereintrag - Hilfe!!
« Antwort #10 am: 28.02.05 - 15:02:27 »
Hallo Axel, Hallo Bernhard,

das mit Alarm Description habe ich inzwischen auch gemerkt.

Habe das auch entsprechend geändert.
Fehler bleibt aber.

Hier noch mal der Script:

'Erstellen einer Erinnerung innerhalb der Maildatenbank des Users     
     Set wvdoc = New NotesDocument(maildb)
     wvdoc.Form = "Appointment"
     wvdoc.AppointmentType = "4"
     wvdoc.ExcludeFromView = "D"
     Set wvdoc.StartDateTime = datetime
     Set wvdoc.CalendarDateTime = datetime
     wvdoc.Subject = "WV für " & eintrag & meldeitem.Text   
     
     If ws.DialogBox("WVDialog", True, True, False, False, False, False, "Wiedervorlage-Daten", wvdoc) = False Then Exit Sub
     
     Set meldeitem = wvdoc.GetFirstItem("$AlarmDescription")
     Set dateitem = wvdoc.GetFirstItem("tmpAlarmOnDate")
     Set timeitem = wvdoc.GetFirstItem("tmpAlarmOnTime")
     Set AlarmTime = New NotesDateTime(dateitem.DateTimeValue.DateOnly & " " & timeitem.DateTimeValue.TimeOnly)
     Set wvdoc.ReminderTime = AlarmTime
     Set wvdoc.StartDateTime = AlarmTime
     Set wvdoc.CalendarDateTime = AlarmTime
     Set wvdoc.~$AlarmTime = AlarmTime
     Call wvdoc.ReplaceItemValue("$Alarm", 1)


Das Feld ("$AlarmDescription") ist vorhanden.
Vom Ablauf her wird/soll das Feld erst nach Öffnen der Dialogmaske vom User gefüllt und dann als nächster Schritt beim Anlegen des Kalendereintrags ins subject übernommen werden.

Stimmt da etwas mit der Reihenfolge nicht?
Vielleicht könnt ihr mich noch mal unterstützen.

Gruß
Martin




Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Wiedervorlage / Kalendereintrag - Hilfe!!
« Antwort #11 am: 28.02.05 - 15:07:17 »
Erst versuchst Du, auf meldeitem zuzugreifen, und danach instantiierst Du es erst. Ob das die richtige Reihenfolge ist ?  ;D

Bernhard

Offline HelpMartin

  • Frischling
  • *
  • Beiträge: 9
Re: Wiedervorlage / Kalendereintrag - Hilfe!!
« Antwort #12 am: 28.02.05 - 16:26:37 »
Da hast Du natürlich Recht Bernhard.

bei eintrag könnte ich das item ja auch weglassen.

Aber wie übergebe ich das ganze dann ans subject?

Help me.

Gruß
Martin

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Wiedervorlage / Kalendereintrag - Hilfe!!
« Antwort #13 am: 28.02.05 - 17:40:33 »
Hi,

du kannst diese Zeile vor dem Anzeigen des Dialoges verwenden

 wvdoc.Subject = "WV für " & eintrag

Dann wird der Inhalt im Dialog angezeigt.


Nach dem Aufruf des Dialoges und der Initialisierung von meldeitem fügst du diese Zeile ein:

  wvdoc.Subject = wvdoc.Subject(0) & meldeitem.Text   


Ist vielleicht nicht die eleganteste Lösung. Ich bin im Moment unterwegs und auf die Schnelle ist mir dieser Weg eingefallen.


Axel

« Letzte Änderung: 28.02.05 - 17:46:08 von Axel »
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz