我有一个应在其中显示凭证详细信息的代码。如果没有凭证,则什么也不会显示。 我们使用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>
答案 0 :(得分:0)
您可以通过以下方式解决此问题:先将值分配给变量,然后再引用该临时变量。尝试更改代码以执行以下操作:
SET @rowcount = RowCount(@voucherRows)
IF @rowcount >= 1 THEN
这应该可以解决问题。如果没有,您可以直接使用ISNULL
函数。
答案 1 :(得分:0)
这可以写为
IF NOT EMPTY (@voucherRows) THEN
// No of statements
ELSE
// statements
ENDIF
谢谢