ユーザーがドキュメントID(メモIDまたはUNIDではなく、一意の番号)を入力するフィールドを持つカスタムコントロールがあります。このデータ・ソースの名前はdocument1です。彼らがフィールドを終了すると、私はルックアップを実行し、extlib Dialogコントロール(データソースbundleDoc)にそのIDまたは新しいドキュメントのいずれかを表示します。 bundleDocが保存されるときに、バンドル文書が追加されたことを示すためにdocument1のログフィールドを更新したいとします。ダイアログコントロールでXPageの2番目のデータソースが表示されない
私はbundleDocを保存してダイアログを閉じる(非表示にできますが)ダイアログのSave &閉じるボタンのコードはdocument1を見ることができません。 document1.getItemValueStringまたはgetComponentを使って参照することはできません。 getItemValueStringは空の文字列を返し、getComponentは戻り値がnullであるためにエラーをスローします。
私は視覚的に役立つ画像を投稿していましたが、まだ十分な評判がありません。 : 何が欠けていますか?同じXPage上にあるため、ダイアログコントロールからドキュメント1にアクセスできないようにしてください。
更新:ダイアログフォームの2つのフィールドには、 document1から値を取得します。少なくとも、ダイアログがロードされるとdocument1が表示されます。また、bundleDocはダイアログコントロールのデータソースとして定義されていません。明示的に違いがあるかどうかを確認します。
UPDATE 2:画像を投稿するにはまだ評判が足りませんが、ここにはいくつかのコードがあります。これはダイアログコントロールを含むカスタムコントロールで、document1はカスタムコントロールのデータソースとして定義され、bundleDocはデータダイアログコントロール内のパネルのソースバンドル文書のフィールドテーブルを取得します。
対話制御でBundleIDフィールドは、これを使用して計算されたデフォルト値を有している:
if (bundleDoc.isNewNote()) {
getComponent("inputBundleID").getValue();
} else {
bundleDoc.getItemValueString("BundleID");
}
StorageLocationIDための式は、コンポーネントがinputStorageTrayIDであることを除いて同様です。
これは保存&閉じる]ボタンのコードです:
bundleDoc.save();
var newArr = new Array(document1.getItemValue("WorkLog"));
newArr.push("Added bundle " + document1.getItemValueString("BundleID") + " - " + session.getCommonUserName());
document1.setValue("WorkLog",newArr);
document1.save();
getComponent("dialog1").hide();
エラーがdocument1.saveライン上で起こるが、それは(私がの値にsessionScopeと変数を設定文書1からBundleIDを得ることはありません。 newArrと 'Added bundle - Anonymous'と表示されました
ドン、あなたがしようとしていることをより明確にするためにあなたのコードをいくつか追加できますか?これはあなたが答えを得るのを助けるでしょう –
ありがとう、Per。今朝コードを追加しました。うまくいけば、これは私の評判を必要に応じてコントロールの画像を投稿するのに十分に高く押し上げるでしょう。ありがとう、マーク。 –