2011-07-27 17 views
1

動的PDFのフィールドを事前に入力して、ユーザーが編集して返信できるようにする必要があります。動的PDFフォーム(LiveCycle)の読み込み時にXMLをデータセットに読み込む方法は?

私はAdobe ColdFusion CFPDFFORMタグを使用しています。このタグを使用すると、XMLデータをPDFに読み込んで、新しいPDFを作成できます。残念ながらそれもクリア< xfa:データセット>タグ、それはそれを完全に空にする!したがって、データセットにバインドされたすべてのドロップダウンリストは機能しません。これは、それらのいずれかを結合するためのコードです:

<bindItems ref="xfa.datasets.LOVFile.LOV.PreferenceLanguageList.PreferenceLanguage[*]" labelRef="$" valueRef="lic"/> 

私はcfpdfformタグがどのように機能するかに制御することはできませんので、私は回避策を思い付きました。コード作成にLiveCycle Designerを使用して、< xfa:datetets >のデータを変数に格納し、それを:: initializeという形式でデータセットにロードします。

これは、cfpdformがそれらを混乱させる前と同じように、データセットをうまく読み込むようです。 loadXML()コールの後、私はデータセットを読み込み、オリジナルのPDFと同じ結果を得ることができます。データセットにはXMLデータがいっぱいです。

form1::initialize - (JavaScript, client) 
//xfa.host.messageBox("loading xml to datasets"); 
xfa.datasets.nodes.namedItem("LOVFile").loadXML(LOVFile_var.value,0,1); 
Page1.Header.debug.rawValue = xfa.datasets.LOVFile.LOV.PreferenceLanguageList.resolveNode("PreferenceLanguage[2]").value; 

問題はダウンリストがまだ動作しないこと、表示する項目がないことです。どういうわけかそれらのデータセットへのバインディング呼び出しは更新されません。

loadXML()の後に何かすべきことはありますか? bindItemsのためのLiveCycleの参照は、「リスト項目と参照データとの間のリンクがアクティブになっています。データへの変更は、リスト項目に即時更新が発生します。」と言う

右方向に任意のヘルプまたはポイント大変感謝しています。

UPDATE:

アザトースの答えを使用して、私は新たにロードされたデータセット(loadXml()の呼び出し後)からのデータを使用して、ドロップダウンリストに項目を追加することができます。

var oEyeColors = xfa.datasets.LOVFile.LOV.resolveNode("EyeColorList"); 
var numberOfNodes = oEyeColors.nodes.length;  

var thisValue = ""; 

for (var i=0; i < numberOfNodes ; i++){ 
    thisValue = oEyeColors.nodes.item(i).value; 
    if(thisValue == null){ 
     thisValue = ""; 
    } 
    xfa.resolveNode("Page1.eyeColorDropDownList").addItem(thisValue.toString()); 

} 

これは機能しますが、私が探している解決策ではありません。ドロップダウンのbindItemsを設定するJavaScriptの方法が必要です。

答えて

2

私はあなたがこのコードで指定した内容を実行します。

xfa.datasets.loadXML(LOVFile_var.rawValue, false, false); 
xfa.datasets.saveXML();         
var yourXML = xfa.datasets.resolveNode("yourXMLRootNodeName"); 
var numberOfNodes = yourXML.nodes.length;  

for (var i=0; i < numberOfNodes ; i++) 
    yourDropDown.addItem(yourXML.nodes.item(i).nodes.item(1).value); // this can change according to what you retrieve in your xml 

は、それはあなた

+0

Thxをを使用してバックエンドデータソースから動的なPDFフォームにドロップダウンリストを事前に埋めます。しかし、フォームにドロップダウンリストがたくさんあり、ユーザーがフォームに記入したときに変更されるものがあるので、私は最後の手段としてそれを保持したいと思います。私はそれを動作させるためにいくつかの変更を加えなければなりませんでした。私は投稿を更新しました。 – Seeker

+0

私はまだデータセットが更新された後にドロップダウンリストにデータセットをバインドする方法を探しています。 – Seeker

+0

スクリプトオブジェクトを使用すると、任意のドロップダウンリストに特定のデータセットを設定することができます。 'function populateDropDown(dropdown、datasetName)' – azathoth

関連する問題