Adobe Livecycle ES4:有条件地将 xml 子节点绑定到 table
Adobe Livecycle ES4: Conditionally bind xml child nodes to a table
我目前有一组 xml 个子节点,它们使用 CustomerInvoice.PriceAndTax.PriceComponents[*].
的数据绑定绑定到 table
PriceComponent 元素结构为:
<PriceComponents>
<Description languageCode="EN">Value Added Tax (%)</Description>
<Rate>
<DecimalValue>13.5</DecimalValue>
<MeasureUnitCode>P1</MeasureUnitCode>
</Rate>
<RateBaseQuantityTypeName languageCode="EN"> </RateBaseQuantityTypeName>
<RateBaseMeasureUnitName languageCode="EN"> </RateBaseMeasureUnitName>
<CalculationBasis>
<BaseCode>1</BaseCode>
<Amount currencyCode="EUR">1500.00</Amount>
</CalculationBasis>
<CalculationBasisBaseName languageCode="EN">Percentage (of one hundred)</CalculationBasisBaseName>
<CalculationBasisQuantityMeasureUnitName languageCode="EN"> </CalculationBasisQuantityMeasureUnitName>
<CalculationBasisQuantityTypeName languageCode="EN"> </CalculationBasisQuantityTypeName>
<CalculatedAmount currencyCode="EUR">202.50</CalculatedAmount>
</PriceComponents>
目前这是将所有 PriceComponent 节点输出到表单中的 table,我希望它只输出描述为 增值税 (%)[= 的节点22=].
在对象选项板 - 绑定 - 数据绑定中有没有办法做到这一点 属性?
我最终使用脚本解决了这个问题。
我向 table 添加了一个子表单,嵌套在重复行中。在这里,我添加了我想要显示的 CustomerInvoice.PriceAndTax.PriceComponents 子节点的字段和 Description 字段以检查其值。
table的结构
-- tblVATAnalysis
-- HeaderRow
--- header fields ---
-- MainRow
-- Row1
-- colRate
-- colSupplies
-- colVATAmount
-- HiddenRow
-- lblDescription
-- decRate
-- decSupplies
-- decVATAmount
然后我添加了以下脚本:
FormInvoiceRequest.bdyMain.frmSummaryData.tblVATAnalysis.MainRow.HiddenRow
::initialize - (FormCalc, client)
var content = "";
if(this.decRate.rawValue <> null & this.decRate.rawValue <> "")
then
if(this.lblDescription.rawValue == "VAT (%)")
then
content = this.decRate.rawValue;
endif
if(this.parent.parent.frmTaxAmount.decTaxAmount == 0)
then
if(this.lblDescription.rawValue == "Total Item Net Value")
then
content = this.decRate.rawValue;
endif
endif
endif
if(content <> "")
then
FormInvoiceRequest.bdyMain.frmSummaryData.tblVATAnalysis.MainRow.Row1
.colRate.rawValue = content;
else
FormInvoiceRequest.bdyMain.frmSummaryData.tblVATAnalysis.MainRow.Row1
.presence = "hidden";
endif
如果该行有增值税 (%) 的描述,这将填充一个名为 content 的变量,然后如果内容没有值,该行将被隐藏。
我目前有一组 xml 个子节点,它们使用 CustomerInvoice.PriceAndTax.PriceComponents[*].
的数据绑定绑定到 tablePriceComponent 元素结构为:
<PriceComponents>
<Description languageCode="EN">Value Added Tax (%)</Description>
<Rate>
<DecimalValue>13.5</DecimalValue>
<MeasureUnitCode>P1</MeasureUnitCode>
</Rate>
<RateBaseQuantityTypeName languageCode="EN"> </RateBaseQuantityTypeName>
<RateBaseMeasureUnitName languageCode="EN"> </RateBaseMeasureUnitName>
<CalculationBasis>
<BaseCode>1</BaseCode>
<Amount currencyCode="EUR">1500.00</Amount>
</CalculationBasis>
<CalculationBasisBaseName languageCode="EN">Percentage (of one hundred)</CalculationBasisBaseName>
<CalculationBasisQuantityMeasureUnitName languageCode="EN"> </CalculationBasisQuantityMeasureUnitName>
<CalculationBasisQuantityTypeName languageCode="EN"> </CalculationBasisQuantityTypeName>
<CalculatedAmount currencyCode="EUR">202.50</CalculatedAmount>
</PriceComponents>
目前这是将所有 PriceComponent 节点输出到表单中的 table,我希望它只输出描述为 增值税 (%)[= 的节点22=].
在对象选项板 - 绑定 - 数据绑定中有没有办法做到这一点 属性?
我最终使用脚本解决了这个问题。
我向 table 添加了一个子表单,嵌套在重复行中。在这里,我添加了我想要显示的 CustomerInvoice.PriceAndTax.PriceComponents 子节点的字段和 Description 字段以检查其值。
table的结构
-- tblVATAnalysis
-- HeaderRow
--- header fields ---
-- MainRow
-- Row1
-- colRate
-- colSupplies
-- colVATAmount
-- HiddenRow
-- lblDescription
-- decRate
-- decSupplies
-- decVATAmount
然后我添加了以下脚本:
FormInvoiceRequest.bdyMain.frmSummaryData.tblVATAnalysis.MainRow.HiddenRow
::initialize - (FormCalc, client)
var content = "";
if(this.decRate.rawValue <> null & this.decRate.rawValue <> "")
then
if(this.lblDescription.rawValue == "VAT (%)")
then
content = this.decRate.rawValue;
endif
if(this.parent.parent.frmTaxAmount.decTaxAmount == 0)
then
if(this.lblDescription.rawValue == "Total Item Net Value")
then
content = this.decRate.rawValue;
endif
endif
endif
if(content <> "")
then
FormInvoiceRequest.bdyMain.frmSummaryData.tblVATAnalysis.MainRow.Row1
.colRate.rawValue = content;
else
FormInvoiceRequest.bdyMain.frmSummaryData.tblVATAnalysis.MainRow.Row1
.presence = "hidden";
endif
如果该行有增值税 (%) 的描述,这将填充一个名为 content 的变量,然后如果内容没有值,该行将被隐藏。