Существует ли функция подсчета для подсчета строк, которая работает с функцией ELSE? - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть код, где должны отображаться детали ваучера.Там нет ваучера, ничего не должно отображаться.Мы используем RowCount> 0, но RowCount, похоже, не возвращает 0, если в расширении данных ничего нет.

Как изменить оператор If или оператор ELSE.


%%[
SET   @voucherXML = AttributeValue("Vouchers")    
// build a rowset from the XML
SET @voucherRows        = BUILDROWSETFROMXML(@voucherXML, "//voucher", 1)
SET @voucherNames       = BUILDROWSETFROMXML(@voucherXML, "//voucher//name", 1)
SET @voucherAmounts      = BUILDROWSETFROMXML(@voucherXML, "//voucher//amount", 1)      
]%%


%%[If RowCount(@voucherRows) > 0 Then
FOR @index = 1 TO RowCount(@voucherRows) DO
// retrieve the items form the rowset from 1 to the count of rows   
]%%



      <p class="bdetails__bill__title" style="font-family: sans-serif; font-weight: 400; letter-spacing: 0.07em; line-height: 1.8em; Margin: 0; font-size: 11px;">
        %%=FIELD(ROW(@voucherNames,@index),
          "Value")=%%
        </p>


      <p class="bdetails__bill__value" style="font-family: sans-serif; font-size: 13px; font-weight: 400; letter-spacing: 0.07em; line-height: 1.8em; Margin: 0; text-align: right;">
        -%%=FIELD(ROW(@voucherAmounts,@index),
          "Value")=%%
       </p>


  <!--
%%[
NEXT @index
]%% -->
 <!--%%[ELSE]%%-->

<h2 class="bdetails__title" style="color: #0b0b0b; font-family: sans-serif; font-weight: 600; line-height: 1.385em; Margin: 0; font-size: 24px; text-transform: uppercase; width: 100%; min-width: 100%; text-align: center;">
        Bestelldetails
      </h2>
 <!--%%[ENDIF]%%
--> </p> 

1 Ответ

0 голосов
/ 02 мая 2019

Вы можете исправить это, сначала присвоив значение переменной, а затем сославшись на эту временную переменную.Попробуйте изменить код, чтобы сделать следующее:

SET @rowcount = RowCount(@voucherRows)
IF @rowcount >= 1 THEN

Это должно решить проблему.Если нет, вы можете просто использовать вместо этого функцию ISNULL.

...