Так что я должен сделать отчет, который будет отображать и подсчитывать CwaProductCode на основе CwaChannel и CwaOrderType.
Вот мой xml:
<OrderEntry-Orders>
<CwaChannel>Customer Portal</CwaChannel>
<CwaOrderType>UT Sales</CwaOrderType>
<ListOfOrderEntry-LineItems>
<OrderEntry-LineItems>
<CwaLineTotalAmount2>1000</CwaLineTotalAmount2>
<CwaProductCode>001</CwaProductCode>
</OrderEntry-LineItems>
<OrderEntry-LineItems>
<CwaLineTotalAmount2>1000</CwaLineTotalAmount2>
<CwaProductCode>005</CwaProductCode>
</OrderEntry-LineItems>
</ListOfOrderEntry-LineItems>
</OrderEntry-Orders>
<OrderEntry-Orders>
<CwaChannel>Customer Portal</CwaChannel>
<CwaOrderType>UT Sales</CwaOrderType>
<ListOfOrderEntry-LineItems>
<OrderEntry-LineItems>
<CwaLineTotalAmount2>1000</CwaLineTotalAmount2>
<CwaProductCode>005</CwaProductCode>
</OrderEntry-LineItems>
</ListOfOrderEntry-LineItems>
</OrderEntry-Orders>
<OrderEntry-Orders>
<CwaChannel>Customer Portal</CwaChannel>
<CwaOrderType>UT Redemption</CwaOrderType>
<ListOfOrderEntry-LineItems>
<OrderEntry-LineItems>
<CwaLineTotalAmount2>1000</CwaLineTotalAmount2>
<CwaProductCode>005</CwaProductCode>
</OrderEntry-LineItems>
</ListOfOrderEntry-LineItems>
</OrderEntry-Orders>
Вот мой BIP-код:
<?for-each-group: OrderEntry-LineItems; CwaProductCode?>
<?if:../../CwaOrderType='UT Sales' and ../../CwaChannel='Customer Portal'?>
<?for-each: current-group()?>
<?CwaProductCode?>
<?xdoxslt:set_variable($_XDOCTX, 'countFund', xdoxslt:get_variable($_XDOCTX, 'countFund')+1)?>
<?xdoxslt:set_variable($_XDOCTX, 'TotalCount', xdoxslt:get_variable($_XDOCTX, 'TotalCount')+1)?>
<?xdoxslt:get_variable($_XDOCTX, 'countFund')?>
<?xdoxslt:set_variable($_XDOCTX, 'countFund', 0)?>
<?end if?>
<?end for-each-group?>
<?xdoxslt:get_variable($_XDOCTX, 'TotalCount')?>
Но результат вышел, как если бы не было условия if. Например, CwaProductCode отобразит правильный результат, но посчитает все вместе, как будто фильтрации вообще не было.
Не уверен, где пошло не так.