Я решил эту проблему с помощью сценария.
Я добавил в таблицу форму, вложенную в повторяющуюся строку. Здесь я добавил поля из дочерних узлов CustomerInvoice.PriceAndTax.PriceComponents, которые я хотел отобразить, и поле Description, чтобы проверить значение.
Структура стола
-- 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, если в строке есть описание VAT (%), а если в контенте нет значения, строка скрыта.