Domino 9 und frühere Versionen > ND6: Entwicklung

Feld auf leeren Inhalt prüfen

(1/2) > >>

Fitz:
Hallo Notesfreunde,

ich möchte für alle User zentral eine Mailsignatur vorgeben. Dazu habe ich im Forum schon viele Hinweise und Scriptbeispiele gefunden. Meine Vorgehensweise ist nun folgende. Ich hinterlege im öffentlichen Adressbuch unter dem Reiter Verschiedenes -> Webseite die Signatur des Users. Mit dem Script im Postopen der Inbox kopiere ich die Signatur in das CalendarProfile.

Ich habe nur noch ein "kleines" Problem. Wenn keine Signatur im Feld Website vorhanden ist, wird die bestehende Signatur trotzdem überschrieben. Wie kann ich das Feld Website auf leeren Inhalt prüfen?

Danke für Infos :-)

Gruß
Bernd


Server R6.5.5FP1
Clients R5.12/6.5.5



Sub Postopen(Source As Notesuiview)
   
   Dim dbPAB As NotesDatabase    
   Dim dbNAB As NotesDatabase
   Dim nnUserName As NotesName
   Dim viewPeople As NotesView
   Dim docPerson As NotesDocument
   Dim session As NotesSession
   Dim dbCurrent As NotesDatabase
   
   Dim db As NotesDatabase
   Dim docCalenderProfile As NotesDocument
   Dim itemSignature As NotesItem
   
   Set Session = New NotesSession
   Set dbCurrent = session.CurrentDatabase
   
   ' pruefe ob die enames.nsf lokal auf der Workstation vorhanden ist
   ' enames.nsf ist eine Replik des Server Adressbuchs
   Set dbNAB = session.GetDatabase("", "enames.nsf")
   If dbNAB.IsOpen = False Then Goto Serverpruefung
   
   'Messagebox "enames.nsf der lokalen Workstation wird verwendet",,"ChangeSignaturPruefung"
   
   Goto ChangeSignatur
   
Serverpruefung:
   
   'pruefe ob die names.nsf auf dem Server vorhanden ist
   Set dbNAB = session.GetDatabase(dbCurrent.Server, "names.nsf")
   If dbNAB.IsOpen = False Then Goto FinishFunction
   
   'Messagebox "names.nsf vom SERVER wird verwendet",,"ChangeSignaturPruefung"
   
ChangeSignatur:
   
   'Messagebox "ChangeSignatur wird ausgeführt",,"ChangeSignaturPruefung"
   
   ' ermittle das Personendokument des aktuell angemeldeten Users
   ' wenn keine Personen gefunden wurde, dann beende die Funktion
   Set viewPeople = dbNAB.GetView("($VIMPeople)")
   Set nnUserName = New NotesName(session.UserName)
   Set docPerson = viewPeople.GetDocumentByKey(nnUserName.Abbreviated)
   If docPerson Is Nothing Then Goto FinishFunction
   
   ' lese Feld Website aus dem Personendokument aus   
   VorgabeSignatur = docPerson.Website
   
' --> wie kann ich das Feld auf leeren Inhalt prüfen?
' ein If VorgabeSignatur = "" oder If Isempty(VorgabeSignatur) = True then .... geht nicht  :-(


   Set session = New NotesSession
   Set db = session.CurrentDatabase
   Set docCalendarProfile = db.GetProfileDocument("CalendarProfile")
   Set itemSignature = docCalendarProfile.GetfirstItem("Signature_1")
   
   ' Setze Signatur bei jedem neuen Mail in das Memo Feld
   'docCalendarProfile.EnableSignature = "1"
   
   docCalendarProfile.SignatureOption = "1"
   docCalendarProfile.Signature_1 = VorgabeSignatur
   
   Call docCalendarProfile.Save(False, False)
   Call docCalendarProfile.ComputeWithForm(True,False)
   
FinishFunction:
   
End Sub

klaussal:
VorgabeSignatur = docPerson.Website(0)

Fitz:
Hallo,

Danke für den Tipp :-) Ich habe nun folgendes eingebaut und es geht

   ' wenn Feld Website ist leer dann verlasse die Funktion
   If docPerson.Website(0) = "" Then Goto FinishFunction :-)

Nur noch eine Frage: was hat das (0) für eine Bedeutung? Ich administriere hauptsächlich Notes und erstelle "einfache" Datenbanken, daher ist meine Lotus Script Erfahrung nicht sehr tief :-(

Gruß
Bernd

DAU-in:
Der Rückgabewert ist ein Array uind mit der 0 sprichst du das erste (einzige) Element an

klaussal:

--- Zitat ---If docPerson.Website(0) = "" Then Goto FinishFunction
--- Ende Zitat ---

If Trim(docPerson.Website(0)) = ""  ist besser.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln