hm... liegt halt an dem Programm ist ne Webanwendung mit XPages... mithilfe von Formularen können die Werte als Items eines NotesDocument gespeichert werden. Warum / Wieso das an dieser Stelle so gelöst wurde kann ich nicht sagen...
Beiträge von Sulley
-
-
funktioniert das auch mit Strings?
Ich kriege das Datum ja aus dem Item, was in "sValue" gespeichert wirdCode... sValue = nd.GetItemValue( lString )(0)' Wenn das Item ein Datumswert enthält, ist es wie folgt abgespeichert: "dd.mm.yyyy HH:MM:SS"...
direkt danach prüfe ich zZ ob der Wert diesem bestimmten Muster entspricht und schneide einfach die Uhrzeit ab...
-
Danke für die Hilfe! Ich habe jetzt einen funktionierenden Code,...
Code
Alles anzeigenPublic Sub PWDPerformAutoTask(...) Dim nd As NotesDocument Dim ndMail As NotesDocument Dim ndTemplate As NotesDocument Dim rtItem As NotesRichTextItem Dim nv As NotesView Dim SourceBody As Variant Dim SourceString As String Dim i As Integer Dim rString As String, lString As String Dim sValue As String Set nd = pwd.Document If nd.wfAlias(0) = "InfoGenehmigung" Then Set nv = nd.Parentdatabase.Getview("(va_MailTemplates)") Set ndTemplate = nv.Getdocumentbykey("Neuer Urlaubsantrag",True) If Not (ndTemplate Is Nothing) Then Set rtItem = ndTemplate.Getfirstitem("Body") Set ndMail = nd.Parentdatabase.Createdocument() ndMail.subject = "Urlaub genehmigt" ndMail.SendTo = "Alexander Stein" ndMail.form = "Memo" SourceBody = rtItem.getUnformattedText While InStr(SourceBody, "<<" ) > 0 rString = RightBack( CStr(SourceBody), "<<" ) lString = LeftBack( rString, ">>" ) sValue = nd.GetItemValue( lString )(0) SourceBody = ReplaceSubstring( SourceBody, "<<" + lString + ">>", sValue ) Wend Call ndMail.Replaceitemvalue("Body",SourceBody) Call ndMail.send(True) End If blnComplete = True End If
Ronka: die E-Mailvorlage erstelle ich ja in Notes. Dort stehen mir dann die einzelnen Variablen des ausgewählten Formulars meines Programms zur Verfügung. Dh ich kann sicher sein, dass das ausgeschnittene Wort sicher eine Property von nd. ist.
Im nächsten Schritt muss ich mal schauen, ob ich Datumswerte von der Uhrzeit befreien kann
-
-
richtig .. .darüber bin ich auch schon gestolpert, aber noch nicht schlau draus geworden...
Alles was ich mit Replace und Substring gelesen habe schien nach meiner Überlegung nicht zu funktionieren...Durchsuche den Text - Schreibe alles raus, was mit "<<" anfängt und hör bei ">>" auf...
Das was rausgeschrieben wurde an nd. anhängen...edit--------
Ok... Findreplace war dann am Ende mit einer eigenen Function gelöst...
CodeFunction Findreplace(ByVal wholestring As Variant, find As String, ireplace As String) As String Dim checkstring As String Dim saveleft As String Dim n As Variant Dim leftstring As String Dim rightstring As String checkstring=wholestring saveleft="" While InStr(1, checkstring, find)<>0 n=InStr(1, checkstring, find) leftstring = Left(checkstring, n-1) rightstring=Right(checkstring, Len(checkstring)-n-Len(find)+1) saveleft=saveleft+leftstring+ireplace checkstring=rightstring Wend FindReplace= saveleft+checkstringEnd Function
Code... If Not (ndTemplate Is Nothing) Then Set rtItem = ndTemplate.Getfirstitem("Body") Set ndMail = nd.Parentdatabase.Createdocument() ndMail.subject = "Urlaub genehmigt" ndMail.SendTo = "Alexander Stein" ndMail.form = "Memo" SourceBody = rtItem.getUnformattedText SourceBody = Findreplace(SourceBody, "<<", "nd.") SourceBody = Findreplace(SourceBody, ">>", "(0)") Call ndMail.Replaceitemvalue("Body",SourceBody) Call ndMail.send(True)
Jetzt habe ich in der E-Mail nur das Problem, dass es als String gesetzt wird und nicht den entsprechenden Wert aus dem Dokument zurückliefert. Ist es Möglich genau diesen Teil eben nicht als String auszugeben?!
-
Hallo an alle!
Ich beschäftige mich erst seit wenigen Tagen mit LotusScript und suche einen Weg, wie ich bestimmte Ausdrücke in einem String ersetzen kann.In Notes habe ich für meine Applikation eine E-Mailvorlage erstellt. Der Body sieht so aus:
Code"Hallo <<wfantragssteller>>,Dein Urlaub vom <<ersterTag>> bis zum <<letzterTag>> wurde genehmigt."
Mein Problem
Das Versenden der E-Mail ist ein automatischer Prozess, welcher bisher 1A funktioniert.
Jetzt brauche ich eine Möglichkeit wie ich den String (siehe oben) durchsuchen kann "<<" und ">>" sollen als Marker funktionieren und der Ausdruck dazwischen soll als Eigenschaft rausgelesen werden.Sprich, aus "Hallo <<wfantragssteller>>" wird --> "Hallo" & nd.wfantragssteller
Diese Bearbeitung müsste mE nach "SourceBody = rtItem.getUnformattedText" stattfinden?!
Code
Alles anzeigenDim nd As NotesDocument Dim ndMail As NotesDocument Dim ndTemplate As NotesDocument Dim rtItem As NotesRichTextItem Dim nv As NotesView Dim SourceBody As Variant Dim SourceString As String Dim i As Integer Set nd = pwd.Document If nd.wfAlias(0) = "InfoGenehmigung" Then Set nv = nd.Parentdatabase.Getview("(va_MailTemplates)") Set ndTemplate = nv.Getdocumentbykey("Neuer Urlaubsantrag",True) If Not (ndTemplate Is Nothing) Then Set rtItem = ndTemplate.Getfirstitem("Body") Set ndMail = nd.Parentdatabase.Createdocument() ndMail.subject = "Urlaub genehmigt" ndMail.SendTo = "USER XY" ndMail.form = "Memo" SourceBody = rtItem.getUnformattedText Call ndMail.Replaceitemvalue("Body",SourceBody) Call ndMail.send(True) End If blnComplete = True End If
ich hoffe Ihr versteht mich
Vielen Dank