いいね!数

0

閲覧数
326

XPagesのアプリで任意にカスタマイズしたダイアログ画面からXPagesの編集ボックスにNotesIDの値を返すボタンを作る必要があり
行いたい動きがXPages Extension Libraryの名前ピッカーでは不可能なため、別の方法を捜していた所。
海外のブログでDominoアプリのNamePickerのサンプルコードを見つけました。

ブログ
http://www.browniesblog.com/A55CBC/blog.nsf/dx/07122009183645MBRAXK.htm?opendocument&comments

サンプルコード(nsfファイル)
http://www.browniesblog.com/A55CBC/blog.nsf/dx/nabpickerjson_nsf.zip/$file/nabpickerjson_nsf.zip

これをXPagesのアプリに組み込んで戻って来たNotesIDの値をXPagesの編集ボックス側に反映させたいのですが値がうまく繋がりません。

見つけたサンプルでは

呼び出す側のフォームのフィールド名:PersonName

をなっていてボタンは

getSingleNameJSON("PersonName", "");

JS Headerに
function getSingleNameJSON(returnField, specialParameters) {
  setTimeout("window.open('NABPickerSingleJSON?open&returnfield=" + returnField + specialParameters +
 "', 'popupWindow', 'toolbar=no,directories=no,status=yes,scrollbars=auto,resizable=yes,resize=yes,menubar=no,height=580,width=550')", 1);
}

と書かれています。

これを呼び出される側のダイアログ画面の環境をXPagesのアプリに移植してXpages動かそうとしています。

      <xp:inputText id="returnNotesID">
      </xp:inputText>
      <xp:button value="選択ボタン" id="buttonXXXX">
       <xp:eventHandler event="onclick" submit="false">
        <xp:this.script><![CDATA[
         var returnField="returnNotesID"
         var specialParameters="";
         var Rtn=window.open('mNABpicker?open&returnfield="+returnField+specialParameters+"', 'popupWindow', 'toolbar=no,directories=no,status=yes,scrollbars=auto,resizable=yes,resize=yes,menubar=no,height=580,width=550')

           (これ以降のreturnfieldに戻って来たNotesIDの値をXPagesの編集ボックスに戻すJava scriptの書き方がわからない)

         ]]></xp:this.script>
       </xp:eventHandler>
      </xp:button>

いろいろ調べましたがXPagesだとwindow.openで開くだけの事例はありますが戻って来た値を使う事例がなく
また近い事例でも1画面のXPagaesでDojoで行っている場合がほとんどです。

値を反映させる方法がわかる方おられましたらどうかよろしくお願いいたします。

サーバー情報: | クライアント情報: | 
カテゴリ:アプリ開発 - XPages | タグ:
  | 質問日時:2018/03/16 13:52:37

回答・コメント

いいね!数

1

以下のページで紹介してる方法はどうでしょう。

http://www.tech-notes.dyndns.org/domino/xpages_dialog.html

ダイアログ内に表示するデータソースをnames.nsfのビューから作れば良さそう。

/Yac

回答日時:2018/03/16 23:10:43

いいね!数

0

yac4423さん返答ありがとうございます。でもこの手法はどちらもXPagesでDojoダイアログ使っていて、カスタムコントロールでダイアログの方の設計を呼び出すボタンがある方のXPages内に入れ込む形でデータが繋がるようにしています。
私の行おうとしている事例はダイアログの方の設計がXPagesでなくDominoのWebアプリなので困っている次第です。
このDominoのWebアプリをXPagesに書き換えようともしましたがJavaScriptの動かし方が特殊でXPagesに書き換えると全くAjaxの箇所が動かなくなり、どうやってもエラーメッセージを解決出来なかったのでXPages化は断念しました。

質問の後に、私と同じ内容の問題にぶつかっった内容の質問を海外の掲示板で見つけました。

http://www-10.lotus.com/ldd/xpagesforum.nsf/xpTopicThread.xsp?documentId=821280E0F355D015852579AA0021E137

1個はyac4423さんと同じ手法の話で、もう1個が私がぶつかった件と同じ話です。

回答日時:2018/03/19 16:18:51

いいね!数

0

自己解決。
アドレスを記入したい呼び出し元のXPagesで指定した記入先のidがブラウザ上のHTML上では別のidに変換されてしまいます。

例えばXPages上のidを

NameTextBox1

とした場合
ブラウザ上ではid名が

view:_id11:NameTextBox1

という感じで変換されています。

この変換後のidをブラウザ付属の開発ツールでを捜し出しこれをパラメータ(=最初の質問のPersonNameに相当する)として指定すれば動きます。

回答日時:2018/03/20 8:11:03