簡體   English   中英

相當於FormCalc的[*]的Adobe LiveCycle Designer JavaScript

[英]Adobe LiveCycle Designer JavaScript equivalent to FormCalc's [*]

我正在使用LiveCycle Designer構建一個動態表單,該表單能夠添加和刪除嵌套表的行並計算每行的總數。 該計算使用FormCalc並利用[*]函數處理一行的所有迭代。 (例如, ...someThing.Row1[*]代替...someThing.Row[0]...someThing.Row[1]等)

這可以完美地工作,但我也想使用Javascript來更改按鈕mouseUp上某些文本字段單元格的背景填充。 我可以使它針對特定的單元格工作,但是我不確定要在Javascript中采取什么步驟來解決元素的所有動態迭代。

例如,此JavaScript有效,但僅針對單個單元格:

MainForm.roomTableSubform.roomTable.Row1.Table1.Row1.billWidth.fillColor = "0,0,0";

邏輯上(據我了解),如果使用FormCalc來定位重復的行,則該代碼將僅具有以下效果:

MainForm.roomTableSubform.roomTable.Row1[*].Table1.Row1[*].billWidth.fillColor = "0,0,0";

這顯然不適用於Javascript。 我已經閱讀了關於resolveNode ,這似乎是JavaScript解決方案。 我只是不確定如何在上下文中使用它來針對數量未公開的動態創建的元素。

我已經將整個表達式封裝在resolveNode內,以xfa.resolveNode("...表達式,在resolveNode( resolveNode("Row1[*]") )中使用星號,並將其正確地粘貼在Row( Table1.resolveNode("Row1[*]").blah )和我能想到的所有其他任意組合都無濟於事。

任何關於我要去哪里的見解將不勝感激。 提前致謝。

xfa.resolveNode()返回一個節點。 您需要使用xfa.resolveNodes()通過SOM表達式返回節點的集合。 您可以循環遍歷節點。

var nodes = Table1.resolveNodes("Row1[*]");
var len = nodes.length;
for(var i = 0; i < len; i++){
    nodes.item(i).fillColor = "255,200,200";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM