Autor Thema: Dokumentverknüpfung in ein Dokument einfügen  (Gelesen 7194 mal)

Offline diwi

  • Frischling
  • *
  • Beiträge: 14
Dokumentverknüpfung in ein Dokument einfügen
« am: 22.11.10 - 10:03:06 »
Hallo zusammen,

ich möchte ein Link auf ein Dokument aus einer anderen DB in das gerade geöffnete einfügen.

Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim ws As New NotesUIWorkspace   
   Dim db1 As NotesDatabase
   Dim rtitem As NotesRichTextItem
   Dim doc As NotesDocument
   Dim currDoc As NotesDocument
   Dim test As String
   
   Set db = session.CurrentDatabase
   Set db1 = New NotesDatabase(db.Server, "testrun.nsf")   
   Set currDoc = ws.CurrentDocument.Document
   Set rtitem = New NotesRichTextItem( currDoc, "verknuepfung" )
   
   Forall x In currDoc.GetItemValue("Ref")
      Set doc = db1.GetDocumentByUNID(x)
      Call rtitem.AppendText(doc.No(0))
      Call rtitem.AppendText("-")
      Call rtitem.AppendText(Cstr(doc.Version(0)))
      Call rtitem.AppendDocLink( doc, doc.No(0))
      Call rtitem.AddNewline(1)
   End Forall
   
   Call currDoc.Save(False, False)
End Sub 


Nun, nach dem Code funktioniert das auch, aber nur unter bestimmten Bedingungen. Und zwar das geöffnete Dokument muss erst geschlossen und neu geöffnet werden, zusätzlich darf es beim Schliessen nicht gespeichert werden(sonst wird das RichTextItem gebügelt), damit der Link angezeigt wird.  :(

Gibt es da irgend eine andere Möglichkeit so etwas umzusetzen? Oder mache ich was falsch?

Bin dankbar für jeden Hinweiss!

Gruß

Dimitri

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Dokumentverknüpfung in ein Dokument einfügen
« Antwort #1 am: 22.11.10 - 10:11:39 »
Genau so wirds gemacht.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline diwi

  • Frischling
  • *
  • Beiträge: 14
Re: Dokumentverknüpfung in ein Dokument einfügen
« Antwort #2 am: 22.11.10 - 10:19:46 »
Der Weg ist aber ... na ich sage mal Suboptimal, da der Link halt nicht sofort im geöffnetem Dokument angezeigt wird. Da werden meine User meckern.   ;)

Deswegen wäre eine Lösung mit der man den Link im gerade bearbeiteten Dokument direkt anzeigen kann schon toll!  ;D

Gruß

Dimitri

Glombi

  • Gast
Re: Dokumentverknüpfung in ein Dokument einfügen
« Antwort #3 am: 22.11.10 - 10:28:01 »
Dann gehts nur mit Formelsprache.

Die relevanten Befehle sind @Command( [EditMakeDocLink] )  und @Command( [EditPaste] )

Andreas

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Dokumentverknüpfung in ein Dokument einfügen
« Antwort #4 am: 22.11.10 - 10:28:17 »
Such mal hier im Forum. Bernhard (koehlerbv) hat hier mal was geschrieben, wie man einen Dateianhang mittels Profildokument sofort sichtbar einfügen kann, gleiches wird auch mit Links funktionieren

Offline diwi

  • Frischling
  • *
  • Beiträge: 14
Re: Dokumentverknüpfung in ein Dokument einfügen
« Antwort #5 am: 23.11.10 - 10:30:37 »

Dann gehts nur mit Formelsprache.

Die relevanten Befehle sind @Command( [EditMakeDocLink] )  und @Command( [EditPaste] )

Andreas

Habe das das wie folgt versucht:
@Command([FileOpenDatabase];@ServerName:"testrun.nsf";"ALLStatus";@Text(TestRunNo);"0";"1");
@Command([EditMakeDocLink]);
@Command([FileCloseWindow]);
@Command([EditGotoField];"verknuepfung");
@Command([EditPaste]);
Das funktioniert aber leider nich ganz ... da er das @Command([EditGotoField];"verknuepfung") in der View der anderen DB auszuführen versucht und dem entsprechend einen Fehler bringt.  ???

Such mal hier im Forum. Bernhard (koehlerbv) hat hier mal was geschrieben, wie man einen Dateianhang mittels Profildokument sofort sichtbar einfügen kann, gleiches wird auch mit Links funktionieren

Hmm ... finde den Beitrag leider nicht.  :-:
Kannst du mir da bitte noch auf die Sprünge helfen?


Danke

Gruß

Dimitri

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Dokumentverknüpfung in ein Dokument einfügen
« Antwort #6 am: 23.11.10 - 22:01:31 »
Hier ist das Thema mal angerissen. Falls Du damit nicht klar kommst, nochmal nachfragen

http://atnotes.de/index.php/topic,50061.msg321682.html#msg321682

Offline diwi

  • Frischling
  • *
  • Beiträge: 14
Re: Dokumentverknüpfung in ein Dokument einfügen
« Antwort #7 am: 25.11.10 - 09:52:21 »
Sooo...

ich habe das jetzt so gelöst:

@For(n:=1; n<=@Elements(TestRunNo); n:=n+1;
@PostedCommand([FileOpenDatabase];@ServerName:"testrun.nsf";"ALLStatus";@Text(TestRunNo);"0";"1");
@PostedCommand([EditMakeDocLink]);
@PostedCommand([FileCloseWindow]);
@PostedCommand([EditGotoField];"verknuepfung");
@PostedCommand([EditInsertText]; @Text(TestRunNo[n]));
@PostedCommand([EditPaste]);
@PostedCommand([EditInsertText]; @NewLine))

Das scheint auch ganz gut zu funktionieren, bis auf eine Kleinigkeit und zwar:
Das @PostedCommand([EditInsertText]; @NewLine) wird scheinbar vor dem @PostedCommand([EditPaste]); ausgeführt. Zumindest kommt nach dem eingefügten Text zuerst ein Zeilenumbruch und dann erst die Verknüpfung.

Kann man das noch irgendwie unterbinden bzw. steuern?

Gruß

Dimitri

Offline diwi

  • Frischling
  • *
  • Beiträge: 14
Re: Dokumentverknüpfung in ein Dokument einfügen
« Antwort #8 am: 29.11.10 - 14:36:18 »
Sooo...

ich habe das jetzt so gelöst:

@For(n:=1; n<=@Elements(TestRunNo); n:=n+1;
@PostedCommand([FileOpenDatabase];@ServerName:"testrun.nsf";"ALLStatus";@Text(TestRunNo);"0";"1");
@PostedCommand([EditMakeDocLink]);
@PostedCommand([FileCloseWindow]);
@PostedCommand([EditGotoField];"verknuepfung");
@PostedCommand([EditInsertText]; @Text(TestRunNo[n]));
@PostedCommand([EditPaste]);
@PostedCommand([EditInsertText]; @NewLine))

Das scheint auch ganz gut zu funktionieren, bis auf eine Kleinigkeit und zwar:
Das @PostedCommand([EditInsertText]; @NewLine) wird scheinbar vor dem @PostedCommand([EditPaste]); ausgeführt. Zumindest kommt nach dem eingefügten Text zuerst ein Zeilenumbruch und dann erst die Verknüpfung.

Kann man das noch irgendwie unterbinden bzw. steuern?

Gruß

Dimitri


Da darauf bis jetzt niemand geantwortet hat gehe ich davon aus dass man das leider nicht beeinflussen kann. :(

Dann noch mal auf Script zurück ... habe das oben aufgeführte Script etwas abgeändert, was so aussieht:

Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim ws As New NotesUIWorkspace   
   Dim db1 As NotesDatabase
   Dim rtitem As NotesRichTextItem
   Dim doc As NotesDocument
   Dim currDoc As NotesDocument
   
   Set db = session.CurrentDatabase
   Set db1 = New NotesDatabase(db.Server, "testrun.nsf")   
   Set currDoc = ws.CurrentDocument.Document
   Set rtitem = New NotesRichTextItem( currDoc, "verknuepfung" )
   
   Forall x In currDoc.GetItemValue("Ref")
      Set doc = db1.GetDocumentByUNID(x)
      Call rtitem.AppendText(doc.No(0))
      Call rtitem.AppendText("-")
      Call rtitem.AppendText(Cstr(doc.Version(0)))
      Call rtitem.AppendDocLink( doc, doc.No(0))
      Call rtitem.AddNewline(1)
   End Forall
   
   Call currDoc.Save(True, True)
   Call ws.CurrentDocument.Close(True)
   Call ws.EditDocument(True, currDoc, False)
End Sub


So weit so gut, nur gibt es da auch noch einen kleinen Malus. Und zwar kommt der Speichern Dialog wenn ich das Dokument schließe.  :(

Kann man den irgendwie unterdrücken oder ohne Useraktion mit "Nein" beantworten?

Gruß

Dimitri

klaussal

  • Gast
Re: Dokumentverknüpfung in ein Dokument einfügen
« Antwort #9 am: 29.11.10 - 14:42:59 »
Code
Kann man das noch irgendwie unterbinden bzw. steuern?

Du möchtest Dich mit dem Thema "Feld SaveOptions" bzw. mit "Tabelle der Felder zum Steuern von Mailoptionen" befassen.

Offline diwi

  • Frischling
  • *
  • Beiträge: 14
Re: Dokumentverknüpfung in ein Dokument einfügen
« Antwort #10 am: 14.12.10 - 08:50:58 »
Sooo...

wollte nur mal eben nochmal Rückmeldung geben.

Vielen Dank für die Hilfe bzw. den einen oder anderen Denkanstoss! Kaum weiss man wo man suchen muss, schon wird alles ganz einfach ;D

Hab an das Script noch die folgenden Paar Zeilen drangehängt:

Call currDoc.Save(True, True)
Call ws.CurrentDocument.FieldSetText("SaveOptions", "0")
Call ws.CurrentDocument.Close(True)
Call ws.EditDocument(True, currDoc, False)
Call ws.CurrentDocument.FieldSetText("SaveOptions", "1")


Gruß

Dimitri

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz