0

Adobe Live Cycleで大量の単純な表示/非表示スクリプトを使用して、いくつかのフォームを1つに結合しようとしています。テキスト入力フィールドを重ねて、すべて非表示として開始します(Live Cycleの非表示設定を使用)。これらのオブジェクトの表示/非表示は、ドロップダウンリストを使用して制御されます。

基本的なタスクは次のとおりです。

-Click an item from  a dropdown list.
-Initiate a show of relative invisible elements on the page based on the 
 raw value of the item selected.
-If user changes dropdown value, hide previously displayed data and show new
 corresponding data.

これはすべて、ドロップダウンリスト自体の内部から実行できますか?私は前の開発者からこのプロジェクトを継承しているので、彼のコードのいくつかをまとめて、タスクを実行するために実際に何をする必要があるかを把握しようとしています。これは、showhide構造がどのように見えるかの例です。

xfa.resolveNode("form1.#subform.indPaymentOptions").selectedIndex = 0;
xfa.resolveNode("form1.#subform.VendPaymentOptions").selectedIndex = 0;
xfa.resolveNode("form1.#subform.Display_Field_Pay_Types").rawValue = 
    "Please select an option from the 'Select type' drop-down menu above.";
taxReportable.rawValue = "";
AccountCodesDynamic.rawValue = "";

if (xfa.resolveNode("form1.#subform.payeeType").rawValue == 2) {
    xfa.resolveNode("form1.#subform.indPaymentOptions").presence = "visible";
    xfa.resolveNode("form1.#subform.VendPaymentOptions").presence = "hidden";
}

else if (xfa.resolveNode("form1.#subform.payeeType").rawValue == 3) {
    xfa.resolveNode("form1.#subform.indPaymentOptions").presence = "hidden";
    xfa.resolveNode("form1.#subform.VendPaymentOptions").presence = "visible";
}
else if (xfa.resolveNode("form1.#subform.payeeType").rawValue == 1) {
    xfa.resolveNode("form1.#subform.indPaymentOptions").presence = "hidden";
    xfa.resolveNode("form1.#subform.VendPaymentOptions").presence = "hidden";

}

上記のすべてのコードは非常に単純に見えますが、ドキュメントの初期化セクションにもいくつかのコードがあります。

    if (xfa.resolveNode("#subform.RadioButtonList[2].ind").rawValue == 1)
    indPaymentOptions.presence = "visible";

else if (xfa.resolveNode("#subform.RadioButtonList[2].vend").rawValue == 2)
    vendPaymentOptions.presence = "visible";

このようなことが必要かどうか知りたいです。もしそうなら、誰かがそのようなコードがドキュメントの初期化セクションでどの程度必要かを説明できますか?

必要がない場合は、この投稿の上部に貼り付けた表示/非表示のコーディングは、私が達成しようとしていることに対して十分ですか?

アドビのライブサイクルドキュメントをざっと見てみましたが、必要なものの概要を見つけるのが難しいため、それを利用するのに苦労しています。どんな助けでも大歓迎です。不足しているリソースがある場合は、これを行う方法を自分自身に教えたいと思います。また、これは私の最初の投稿です。FAQの提出ガイドラインに従うように最善を尽くしましたが、提出ガイドラインに違反した場合は事前にお詫び申し上げます。ありがとう。

4

1 に答える 1

0

ドロップダウンのコードはかなり単純明快で、問題ないはずです (ただし、しばらく LiveCyle を使用すると、論理コードを使用した単純なタスクでさえ機能しないことに気付くでしょう)。

初期化イベントのコードは、実際にはドロップダウンではなくラジオボタン グループ用であるため、表示されるフォームの機能が実際にはドロップダウン以上のものによって駆動される可能性があります。

LC で最終的に発生する傾向があるのは、フォームが開いたときに正しく表示/処理されるように、初期化イベントで繰り返される変更または検証イベントのコードです。これはもちろん、オブジェクトの他のイベントイベントからのコードでイベントを呼び出すことによって回避できます。例えば。ドロップダウン初期化イベントでは、ドロップダウン コードを保持し、ドロップダウンの変更イベントでは、変更イベントがトリガーされたときにコードを呼び出す this.execEvent("initialize") を使用します。

フォームを見ずに特定のケースで何が起こっているかを把握するのは少し難しいですが、不明な点や他に何かお手伝いできることがあればお知らせください。

于 2013-03-12T13:19:57.087 に答える