Domino 9 und frühere Versionen > Entwicklung
@IsNewDoc simulieren
TMC:
Ich habe hier mitten in einem Script ein Backend-Dokument (docMail).
Anhand des Backend-Docs setze ich ein Frontend-Doc wie folgt:
Set uidocMail = uiws.EditDocument(True, docMail)
Danach verwerfe ich das (zuvor gespeicherte) Backend-Doc:
Call docMail.Remove(True) 'Backend löschen
Soweit so gut. Das ganze mache ich weil ich im Backend-Doc mit CreateRichTextItem arbeite - und da muss ich dann das Backend speichern bevor ich das ins Frontend bringe.
Einzigstes Problem:
Hidewhen-Formeln des Frontend-Docs reagieren nicht mehr auf @IsNewDoc. Klar, ich "erzeuge" ja das UIDoc via uiws.EditDocument.
Gibt es einen Trick, ein UIDoc als "NewDocument" zu deklarieren, damit @IsNewDoc ein "True" wiedergibt?
Aktuell gehts mir um diesen Forward-Button im Mailfile, der eben erscheint, wenn Doc nicht neu ist lt. @IsNewDoc:
*Edit*
Was natürlich gehen würde ist eine Anpassung der HideWhen-Formel. Aber das gilt es hier zu vermeiden.
TMC:
Ich hol mal den Thread nach oben und werde auch mal im LDD-Forum fragen, vielleicht gibt's ja doch einen Trick ;)
*Edit*
Hier noch das LDD-Posting:
LDD 4/5 Forum: NotesUIDocument.IsNewDoc = True
elajen:
Hallo,
schreib doch deine Hide-When-Formel um.
Ich habe ähnliche Probleme auch gehabt, und habe mir in der notes.ini ein Flag gesetzt. Wurde das "neue" Dok dann geöffnet, habe ich beim schließen das Flag wieder entfernt.
Ist zwar nicht schön, funktioniert aber.
Gruß von Ekki
TMC:
Hi Ekki,
genau das wollte ich aber vermeiden:
--- Zitat von: TMC am 16.07.04 - 21:01:50 ---Was natürlich gehen würde ist eine Anpassung der HideWhen-Formel. Aber das gilt es hier zu vermeiden.
--- Ende Zitat ---
da es sich um das Mailfile handelt.
TMC:
Hier übrigens der aktuelle Stand vom LDD-Forum, Andrew wollte wissen, welchen Code ich einsetze, also wo ich das brauche:
--- Zitat ---Please find below my code-example, Andrew.
I've thrown out some not relevant parts, but this sub should work.
What does it do: If you have selected a document (in a view or it is an open document), it creates a new mail and adds a doc-link to the Body. You can use this sub either in a view button or in a form button.
I think, for helping you should take a look at my last 3 main code lines (commented by "Save backend, open frontend, remove backend").
Thanks,
Matthias
Public Sub NewLinkMemo(strSubject As String)
On Error Goto ERRORHANDLER
Dim uiws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim docSource As NotesDocument
Dim dbMail As NotesDatabase
Dim docMail As NotesDocument
Dim uidocMail As NotesUIDocument
Dim docMailProfile As NotesDocument
Dim rtiMail As NotesRichTextItem
Set db = session.CurrentDatabase
'------------------------------------------------------------------------------
'Set doc depending on the source (view / form - button)
'------------------------------------------------------------------------------
If Not uiws.CurrentDocument Is Nothing Then
'agent was called via form-button
Set docSource = uiws.CurrentDocument.Document
Elseif Not session.DocumentContext Is Nothing Then
'agent was called via view-button
Set docSource = session.DocumentContext
End If
'------------------------------------------------------------------------------
'Check if Mail-DB exists
'------------------------------------------------------------------------------
Set dbMail = New NotesDatabase("","")
Call dbMail.OpenMail
If Not dbMail.IsOpen Then Error 1001, "Could not open user's mailfile"
'------------------------------------------------------------------------------
'Create email
'------------------------------------------------------------------------------
Set docMailProfile = dbMail.GetProfileDocument("CalendarProfile")
Set docMail = New NotesDocument(dbMail)
docMail.Form = "Memo"
docMail.Logo = docMailProfile.DefaultLogo(0) 'get default mail letterhead
docMail.Principal = docMailProfile.Owner(0)
'------------------------------------------------------------------------------
'Fill mail items
'------------------------------------------------------------------------------
docMail.Subject = strSubject
Set rtiMail = docMail.CreateRichTextItem("Body" )
Call rtiMail.AddNewLine(3)
Call rtiMail.AppendText("DocLink: " & " >")
Call rtiMail.AppendDocLink(docSource, "") 'Insert doc-link
Call rtiMail.AppendText("<")
Call rtiMail.AddNewLine(1)
'------------------------------------------------------------------------------
'Save backend, open frontend, remove backend
'------------------------------------------------------------------------------
Call docMail.Save(True,False) 'save backend
Set uidocMail = uiws.EditDocument(True, docMail) 'instantiate and open uidocMail
Call docMail.Remove(True) 'remove backend
EXITSCRIPT:
Exit Sub
ERRORHANDLER:
Select Case Err
Case 1001:
Msgbox Error$ & Chr(10) & "Operation was canceled.", 48, db.title
Case 4419
Msgbox "No document selected.", 48, db.title
Resume EXITSCRIPT
Case Else
Call ErrorMessage("NewLinkMemo")
Resume EXITSCRIPT
End Select
End Sub
--- Ende Zitat ---
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln