Autor Thema: Doc-link aus einer Dialogliste erzeugen  (Gelesen 1780 mal)

feel_x

  • Gast
Doc-link aus einer Dialogliste erzeugen
« am: 23.04.03 - 13:58:10 »
Hallo, ich bastle immer noch an einer Dialogbox, mit deren Hilfe User einen Dokumentlink direkt aus einer Liste von Dokumenten erzeugen können.

Jetzt habe ich ein Skript bei eknori.de in der Schatzkiste gefunden, das hakelt aber irgendwo..
Und zwar bekomme ich im Kombi-Feld "Pick" keine Werte angezeigt; das Feld "List" zeigt aber Werte an. "Pick" will also nicht übernehmen.
Und beim speichern bekomme ich die Fehlermeldung "object variable not set"..


:)

Hat jemand einen Tipp?
felix



hier das skript:



The set up:
You will need a dialog box form for displaying the drop down list in LotusScript since LotusScript does not provide a drop down list control.
Create the form, I will call it (dlgDocPick). On the form create a multi-valued text box named List with the following Default value:

list := @DbColumn( "" : "NoCache" ; "" ; "Projects" ; 1 );

Where Projects represents a sorted view of all Project document titles.

This field will contain the actual values displayed in our drop down list. Also create a layout region with a combo box named
Pick on the dialog form. For the Default value of the combo box use ?List?, the multi-valued text list we created outside the layout region.

On the Issue form create an Action button called Reassign Project.
Set the button properties to Hide when the document is in edit mode since we do not need to ?edit?
the document to reassign the Doclink via LotusScript. Likewise, preventing the use of this function from a document in edit mode prevents the confusing ?Save?
messages Notes will generate from the backend script. This button will contain the script for presenting the new Project documents list dialog box and
assigning the newly selected document Doclink to the current document.
The form also contains a RTF named Link which will hold the DocLink. The LotusScript for the Action button appears below.
Sub Click(Source As Button)

Dim session As New notessession
Dim db As NotesDatabase
Set db = session.CurrentDatabase

' We need to have a workspace in order to present
' the drop-down list via the dialog form
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument 'get the frontend doc

Dim backendDoc As NotesDocument
Set backendDoc = uidoc.Document 'get the backend doc

' the doclink field on our current document
Dim rtDocLink As NotesRichTextItem

' this doc will be our dialog box. Note that it is
' only used for display. It does not gets saved.
Dim docPick As New NotesDocument( db )

' Present the dialog box and continue with the Doclink
' update if the user selects a value from the list.
If ws.dialogbox( "(dlgDocPick)", True, True, False, False, False, False, "Bitte Dokument auswählent", docPick ) Then
'Msgbox docPick.Pick(0) 'DEBUG: verify we have the right value

' Fetch this Project and replace it in the
' doc link on this form
Dim newProjectDoc As NotesDocument
Dim view As NotesView
Set view = db.GetView( "(Default View)" )
Set newProjectDoc = view.GetDocumentByKey( docPick.Pick(0), True )

' Remove the old link
backendDoc.RemoveItem( "Link" )

' Put in the new link
backendDoc.CreateRichTextItem( "Link" )
Set rtDocLink = backendDoc.GetFirstItem( "Link" )
Call rtDocLink.AppendDocLink( newProjectDoc, "DocLink" )

Call backendDoc.Save( True, False )

' Close the UIdoc so the user can reopen it to see
' the new link. This is LotusScript limitation!
uidoc.Close

End If
End Sub

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Doc-link aus einer Dialogliste erzeugen
« Antwort #1 am: 23.04.03 - 14:54:59 »
... welches Objekt wird denn nicht initialisiert? Hast du es schon debuggt?

ata
Grüßle Toni :)

feel_x

  • Gast
Re:Doc-link aus einer Dialogliste erzeugen
« Antwort #2 am: 23.04.03 - 15:04:37 »
 ???

der Debugger sagt mir, er debugge nicht, soloange Dialogboxen geöffnet sind.
Hm. Wie gehe ich denn da vor..?

aha, doch.
also: Er stoppt bei "Set newProjectDoc..":

Set view = db.GetView( "(Default View)" )
Set newProjectDoc = view.GetDocumentByKey( docPick.Pick(0), True )


..muss ich die "(DefaultView)" noch ändern?
 ;)
felix

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Doc-link aus einer Dialogliste erzeugen
« Antwort #3 am: 23.04.03 - 15:10:28 »
... wenn du keine Ansicht mit dem Namen verwendest, dann liegt es wohl daran...

ata
Grüßle Toni :)

feel_x

  • Gast
Re:Doc-link aus einer Dialogliste erzeugen
« Antwort #4 am: 23.04.03 - 15:16:47 »
argh..
war ja klar. Ich wieder.

Ja, es war die Ansicht "Projects", die ich oben schonmal verwendet habe.
Drübergelesen.

Juhuu!
dafür geht's aber tatsächlich!

Vielen Dank!

;)

Felix S.

feel_x

  • Gast
Re:Doc-link aus einer Dialogliste erzeugen
« Antwort #5 am: 05.05.03 - 13:55:42 »
Nochmal eine Frage zu dem oben geposteten skript:


"
if ws.dialogbox( "(dlgDocPick)", True, True, False, False, False, False, "Bitte Dokument auswählent", docPick ) Then
'Msgbox docPick.Pick(0) 'DEBUG: verify we have the right value
      
' Fetch this Project and replace it in the
' doc link on this form
      Dim newProjectDoc As NotesDocument
      Dim view As NotesView
      Set view = db.GetView( "Tagungsorte" )
      Set newProjectDoc = view.GetDocumentByKey( docPick.Pick(0), True )
      
' Remove the old link
      backendDoc.RemoveItem( "OrtsLink" )
      
' Put in the new link"

usw.


jetzt meine Frage: Ich wähle in einem Feld vorher sowieso einen "Ortslink" aus, d.h., ich gucke per DBLookup in eine Ansicht in der DB.
Ich versuche, das Skript so umzuschreiben, dass es aus dem Feld den Wert nimmt und automatisch beim speichern einen Link zum gewählten Dokument einfügt,
also ohne diese blöde Teilmaske mit Dialogbox, die zur Auswahl (die ich eh nicht brauche, weil der Ort bereits feststeht) benutzt wird.

nur will mein umgeschriebenenes Skript nicht mehr..
Ich habe das im moment im Queryclose.  :-\

wer kann mir helfen?


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz