Autor Thema: Doclink in UIDoc einfügen  (Gelesen 2834 mal)

Offline ArcTan

  • Frischling
  • *
  • Beiträge: 14
Doclink in UIDoc einfügen
« am: 02.08.05 - 10:49:32 »
Hallo,

ich suche nach einer Möglichkeit, über einen Action Button in einer Ansicht ein neues Dokument zu erzeugen, in dessen Body-Feld (ist ein RTF-Feld) ein Doclink auf das Dokument hinterlegt wird, das beim Anklicken des Action-Buttons markiert war. Habe dazu folgenden Scriptcode probiert:

Sub Click(Source As Button)   
   Dim session As New NotesSession
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim rtitem As notesrichtextitem

   Set db = session.CurrentDatabase
   Set collection = db.UnprocessedDocuments
   Set doc = collection.GetFirstDocument()
   
   Set uidoc= workspace.ComposeDocument( "", "", "eintrag" )
   
   Set rtitem = New NotesRichTextItem( uidoc.Document, "body" )
   Call rtitem.AppendDocLink( doc, "Link auf Vorgänger" )   
End Sub

Ein neues Dokument wird angelegt, allerdings (es wäre zu schön gewesen...) erscheint im Feld "body" nicht der Doclink auf "doc".

Gehts das überhaupt, was ich vorhabe? Und wenn ja, wäre dankbar für eine Idee, wie.

Gruß
ArcTan

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Doclink in UIDoc einfügen
« Antwort #1 am: 02.08.05 - 10:55:52 »
Du musst das Dokument erst im Backend anlegen, dort auch das RTI und dort den DocLink generieren - und das Dokument dann speichern. Dann kannst Du es für das FrontEnd öffnen.

Bernhard

Offline ArcTan

  • Frischling
  • *
  • Beiträge: 14
Re: Doclink in UIDoc einfügen
« Antwort #2 am: 02.08.05 - 11:12:15 »
Hi Bernhard,

danke für Deinen Tipp. So funktioniert es.
Nur, sollte sich der User nach dem Klicken des Action-Buttons dazu entscheiden, das Dokument (das ja für ihn wie "neu erstellt" aussieht) doch nicht anlegen zu wollen, so muss es wieder gelöscht werden. Das abzufangen (ohne dass er extra eine Hinweisbox bekommt) dürfte schwierig sein, oder?

Gruß
ArcTan

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Doclink in UIDoc einfügen
« Antwort #3 am: 02.08.05 - 11:30:44 »
Wenn Du Notes 6.x einsetzt und das Dokument neu erstellst, dann brauchst Du es nicht zu speichern.

Wenn das Dokument dann geschlossen wird, ohne das der User etwas geändert hat, dann kommt auch keine Abfrage zum Speichern.
Gruß
Dirk

Offline ArcTan

  • Frischling
  • *
  • Beiträge: 14
Re: Doclink in UIDoc einfügen
« Antwort #4 am: 02.08.05 - 14:25:10 »
Das scheint bei mir nicht zu funktionieren.

Ohne dass ich das Backend-Dokument abspeichere wird unter Notes 6.5.1 der Doclink nicht im neuen Dokument angezeigt.

Ich verwende nun folgenden Code:

Sub Click(Source As Button)
   
   Dim session As New NotesSession
   Dim uidoc As NotesUIDocument
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim rtitem As notesrichtextitem
   Set db = session.CurrentDatabase
   Set collection = db.UnprocessedDocuments
   Set doc = collection.GetFirstDocument()
   
   Set newdoc = New NotesDocument ( db )
   newdoc.form = "eintrag"
      
   Set rtitem = New NotesRichTextItem( newdoc, "followup" )
   Call rtitem.AppendDocLink( doc, "Link auf Vorgänger" )
   
   Call newdoc.Save( True, True )
   
   Dim workspace As New NotesUIWorkspace   
   Call workspace.EditDocument(True, newdoc)
   
End Sub

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: Doclink in UIDoc einfügen
« Antwort #5 am: 02.08.05 - 15:03:26 »
Hi,

versuch's mal so:

...
Set newdoc = New NotesDocument ( db )
newdoc.form = "eintrag"
     
Set rtitem = New NotesRichTextItem( newdoc, "followup" )
Call rtitem.AppendDocLink( doc, "Link auf Vorgänger" )

Call newdoc.Save(True,False)  'Temp. Speichern des Backend-Doc. damit RTF-Feld angezeigt wird.

Dim workspace As New NotesUIWorkspace   
   
Call uidoc = workspace.EditDocument(True, newdoc)  'Dokument im Frontend öffnen
Call uidoc.Refresh(True)
Call newdoc.Remove(True)  'Das Dokument, das im Backend erstellt wurde, löschen
   
Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline ArcTan

  • Frischling
  • *
  • Beiträge: 14
Re: Doclink in UIDoc einfügen
« Antwort #6 am: 03.08.05 - 09:54:08 »
Klasse, funktioniert  :)
Auf die Idee wäre ich ja nicht gekommen...

Mit der kleinen Verbesserung in der Zeile

Call uidoc = workspace.EditDocument(True, newdoc)  'Dokument im Frontend öffnen

aus dem "Call" ein "Set" zu machen, läufts.

Vielen Dank

Gruß
ArcTan

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: Doclink in UIDoc einfügen
« Antwort #7 am: 03.08.05 - 10:18:34 »
Sorry, war ein Tippfehler  :-\

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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz