Adobe Livecycle ES4: условное связывание дочерних узлов xml с таблицей - PullRequest
0 голосов
/ 17 января 2019

В настоящее время у меня есть набор дочерних узлов xml, которые связаны с таблицей с использованием привязки данных CustomerInvoice.PriceAndTax.PriceComponents [*].

Структура элемента 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 в таблицу в форме, я хочу, чтобы она выводила только те узлы, которые имеют описание Налог на добавленную стоимость (%) .

Есть ли способ сделать это в свойстве Object Palette - Binding - Data Binding?

1 Ответ

0 голосов
/ 31 января 2019

Я решил эту проблему с помощью сценария.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...