Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: iworks am 27.02.09 - 22:36:46
-
Hallo zusammen,
versuche gerade innerhalb einer Page mit einer embedded View mittels Dialogbox (Action in der View) eine Form aufzurufen die wiederum auch eine embedded View enthält. Die embedded View in der Form hat "show single category" konfiguriert, sodass der Parameter direkt aus der Dialogbox Action übergeben wird und Dialogbox Fenster nur eine bestimmte Kategorie anzeigt. Problem ist nur die Action funktionert nur wenn ich die View direkt öffne, versuche ich jedoch über die Page die Aktion durchzuführen kommt die Meldung ..."dialogbox cannot be used in this context, a Document must be selected".
Frage, lässt sich Dialogbox aus embedded View in Pages oder Forms nicht verwenden oder was kann es sonst sein?
Hier ein Teil des LS Code..
Sub Click(Source As Button)
Dim s As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim view As NotesView
Dim uiview As NotesUIView
Dim coll As NotesDocumentCollection
Dim dc As NotesDocumentCollection
Dim orderid_item As Notesitem
Dim dialog As String
Set db = s.CurrentDatabase
Set coll = db.UnprocessedDocuments
Set doc = coll.GetFirstDocument
Set orderid_item = doc.GetFirstItem ( "nOrderID" )
Set view = db.GetView ( "($nAccountManagementAll)" )
dialog = ws.DialogBox("nDialog",True,True,True,"titel",doc)
..........
-
Deine Parameter für die Dialogbox-Methode sind aber sehr "mutig" gewählt ...
Bernhard
-
Hi,
wie meinst du das jetzt - mutig?
Also die Dialogbox tut was sie tun soll vorausgesetzt ich öffne die View direkt. Stoße ich die Action der View aus der Page heraus, dann kommt die genannte Meldung. Bisher jedoch habe ich nirgens denHinweis gefunden dass die Dialogbox Methode in dieser Konstelation nicht funktionieren sollte!
Hat niemand hier Rat?
Grüße,
Robert.
-
Schau mal, ob es funktioniert, wenn Du alle Parameter für den Prompt angibst ...
-
Hi,
...sorry kann ich nicht ganz folgen, was meinst du mit Parameter für den Prompt?
Mit Prompt kann ich die Form nicht öffnen....oder überseh ich irgendwas?
-
Dialog Box, nicht Prompt. Mein Fehler, sorry.
-
...leider auch nicht.
Das kann nicht so problematisch sein oder?? Ich meinen eine Ansicht in eine Seite einbetten und später die Action der Ansicht ausführen... ??? Die Meldung verstehe ich doch richtig oder, dialogbox cannot be used in this context, a Document must be selected heißt ich muss aus der Ansicht ein Dokument selektiert haben? Irgendwie scheint jedoch die eingebetette Ansicht dies nicht gewährleisten zu können. Obwohl ich das Doc im Debugger deutlich erkenne...!
Naja ich probier mal weiter, vielleicht fällt doch jemandem was dazu sein.
Grüße,
-
Set view = db.GetView ( "($nAccountManagementAll)" )
dialog = ws.DialogBox("nDialog",True,True,True,"titel",doc)
in der Hilfe steht:
flag = notesUIWorkspace.DialogBox( form$ , [autoHorzFit] , [autoVertFit] , [noCancel] , [noNewFields] , [noFieldUpdate] , [readOnly] , [title$] , [notesDocument] , [sizeToTable] , [noOkCancel] , [okCancelAtBottom] )
dein doc steht an der 6. Stelle -
du übergibst doc an den Parameter [noFieldUpdate]
ich glaube, das hat auch schon Bernhard irritiert.
Wenn du einen Parameter zwischendrin nicht angegeben willst, musst du einfach die Kommas angeben, auch wenn es krank aussieht.
edith: z.B so:
Set view = db.GetView ( "($nAccountManagementAll)" )
dialog = ws.DialogBox("nDialog", , ,True,True,True, ,"titel",doc)
ich kopier mir da immer den Hilfeausdruck hin und lösche alle Parameter, die ich nicht haben will, ohne die Kommas raus.
Grüsse Dau-in
-
...arg!! ein Komma zu wenig die ganze Zeit übersehen. Die sind auch so klein im Designer ;)
Vielen Dank noch mal für die Hilfe.
-
Wenn Du nur ein Komma übersehen zu haben meinst, finde ich das noch immer ziemlich mutig. Ich würde alle Parameter berücksichtigen - das kann auch Ärger mit anderen Notes-Versionen minimieren.
Bernhard
-
Hi Bernhard,
nein nein so war das nicht gemeint...
Anfangs ging ich davon aus dass nicht alle Parameter relevant sind, später jedoch nach Korrektur fehlte immer noch ein Parameter. Diesen hatte ich einfach übersehen die ganze Zeit!
Die Regel sollte also lauten immer die Methode samt vollständiger Paramter angeben + ordentlich mit der Lupe kontrollieren :)
Robert
-
a) läuft es jetzt?
b) wenn es läuft, ist das immer noch in einer Page oder hast du auf eine Form umgestellt?
einen wunderschönen Sonntagmorgen wünscht
Dau-in