Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Fitz am 23.02.07 - 08:45:19
Titel: Feld auf leeren Inhalt prüfen
Beitrag von: Fitz am 23.02.07 - 08:45:19
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"
Titel: Re: Feld auf leeren Inhalt prüfen
Beitrag von: klaussal am 23.02.07 - 08:47:19
VorgabeSignatur = docPerson.Website(0)
Titel: Re: Feld auf leeren Inhalt prüfen
Beitrag von: Fitz am 23.02.07 - 10:33:44
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
Titel: Re: Feld auf leeren Inhalt prüfen
Beitrag von: DAU-in am 23.02.07 - 10:37:08
Der Rückgabewert ist ein Array uind mit der 0 sprichst du das erste (einzige) Element an
Titel: Re: Feld auf leeren Inhalt prüfen
Beitrag von: klaussal am 23.02.07 - 10:39:49
Zitat
If docPerson.Website(0) = "" Then Goto FinishFunction
If Trim(docPerson.Website(0)) = "" ist besser.
Titel: Re: Feld auf leeren Inhalt prüfen
Beitrag von: dirk_2909 am 23.02.07 - 11:34:40
Zitat
If Trim(docPerson.Website(0)) = "" ist besser.
Noch besser wäre:
Code
if Trim( docPerson.getItemValue( "Website" )( 0 ) ) = "" Then
Ist performanter 8) ;D
Titel: Re: Feld auf leeren Inhalt prüfen
Beitrag von: klaussal am 23.02.07 - 11:47:41
Zitat
Ist performanter
0,5 msec gespart ?
Titel: Re: Feld auf leeren Inhalt prüfen
Beitrag von: dirk_2909 am 23.02.07 - 11:49:28
Zitat
0,5 msec gespart ?
Ja. ungefähr 8) ;)
Aber bei 100 Feldern ?! ;D
Und ein weiterer Vorteil: Man kann den Feldnamen "berechnen" /dynamisch gestalten etc. ....
Titel: Re: Feld auf leeren Inhalt prüfen
Beitrag von: klaussal am 23.02.07 - 12:01:11
OK, überzeugt ;)
Titel: Re: Feld auf leeren Inhalt prüfen
Beitrag von: Fitz am 23.02.07 - 12:33:45
Danke an alle....
> Der Rückgabewert ist ein Array uind mit der 0 sprichst du das erste (einzige) Element an