Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: iworks am 27.02.09 - 22:36:46

Titel: dialogbox macht Ärger - cannot be used in this context
Beitrag 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)
   
..........
   
Titel: Re: dialogbox macht Ärger - cannot be used in this context
Beitrag von: koehlerbv am 28.02.09 - 00:40:14
Deine Parameter für die Dialogbox-Methode sind aber sehr "mutig" gewählt ...

Bernhard
Titel: Re: dialogbox macht Ärger - cannot be used in this context
Beitrag von: iworks am 28.02.09 - 15:24:56
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.
Titel: Re: dialogbox macht Ärger - cannot be used in this context
Beitrag von: m3 am 28.02.09 - 16:11:36
Schau mal, ob es funktioniert, wenn Du alle Parameter für den Prompt angibst ...
Titel: Re: dialogbox macht Ärger - cannot be used in this context
Beitrag von: iworks am 28.02.09 - 17:51:04
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?

Titel: Re: dialogbox macht Ärger - cannot be used in this context
Beitrag von: m3 am 28.02.09 - 18:23:38
Dialog Box, nicht Prompt. Mein Fehler, sorry.
Titel: Re: dialogbox macht Ärger - cannot be used in this context
Beitrag von: iworks am 28.02.09 - 19:45:58
...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,
Titel: Re: dialogbox macht Ärger - cannot be used in this context
Beitrag von: DAU-in am 28.02.09 - 20:56:06
   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

Titel: Re: dialogbox macht Ärger - cannot be used in this context
Beitrag von: iworks am 28.02.09 - 23:25:29
...arg!! ein Komma zu wenig die ganze Zeit übersehen. Die sind auch so klein im Designer  ;)
Vielen Dank noch mal für die Hilfe.
Titel: Re: dialogbox macht Ärger - cannot be used in this context
Beitrag von: koehlerbv am 01.03.09 - 00:53:45
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
Titel: Re: dialogbox macht Ärger - cannot be used in this context
Beitrag von: iworks am 01.03.09 - 02:10:19
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
Titel: Re: dialogbox macht Ärger - cannot be used in this context
Beitrag von: DAU-in am 01.03.09 - 10:03:15
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