いいね!数

0

閲覧数
69

クラッシックNotesアプリ(動作環境はNotes 9.0.1Standard)のビューアクションでユーザーからの入力を要求する場面があり、現在はNotesUIWorkspace.Promptが使われているのですが、機能強化のためにカスタムダイアログに置き換えたいと考えています。

カスタムダイアログは通常親フォームとフィールドを共有することで情報をやり取りするのでフォームでの使用が前提かもしれませんが、

NotesUIWorkspace.DialogBox("FormName" , True , True , False , True , True , False , "Title")

のように、noNewFieldsオプションとnoFieldUpdateオプションを有効にしてやれば親フォームとのフィールド共有を切れるのでフォームがいらなくなるかと思いやってみました。アクションの本体のコードはダイアログ用フォームのQueryCloseイベントに記述しました。

私の環境ではちゃんとダイアログボックスが表示され、アクションも動作するのですが、他のユーザーではエラーになってしまいます。

やはり仕様外の使い方をしているので駄目なのかとは思いますが、ビューアクションの情報入力をカスタムダイアログ化するにはどういう方法が考えられるでしょうか?

 

サーバー情報: | クライアント情報:Windows7 , Windows109.0.1Standard | 
カテゴリ:アプリ開発 - Notes アプリ | タグ:
  | 質問日時:Sep 20, 2018, 3:47:47 PM

回答・コメント

いいね!数

0

処理の中で一時文書を作ればエラーは出なくなります。

一時文書を保存しないのであればsaveせずに処理を完了させればOKです。

回答日時:Sep 20, 2018, 6:39:34 PM

いいね!数

0

ありがとうございます。

実は、投稿した直後にご指摘の事に気がつき、自己解決していました。

一時的にNotesDocumentオブジェクトを作るだけならメモリー上の処理でしかなく、情報も受け取れるのですね。

以下のような感じで出来ました。

Set Session = New NotesSession
Set Database = session.CurrentDatabase
Set TempDocument = New NotesDocument(Database)
Set Workspace = New NotesUIWorkspace
Flag = Workspace.DialogBox("FormName" , True , True , False , False , False , False , "Title" , TempDocument)
Value = TempDocument.GetItemValue("FieldName" )(0)

 

回答日時:Sep 21, 2018, 8:32:22 AM