2

我在 BI Publisher 中有一个如下所示的 XML-

<ROW1>
  <TOTAL_RETAIL>10.95</TOTAL_RETAIL>
  <TOTAL_TAX> 1.8</TOTAL_TAX>
  <TOTAL_SHIPPING>7.95</TOTAL_SHIPPING>
</ROW1>

<ROW1>不重复。现在,据我所知,SUM我可以使用 XPath 函数sum(),如<?sum(.//TOTAL_RETAIL)?>. 这将TOTAL_RETAIL仅对节点的值求和,我想要 、 和TOTAL_RETAILTOTAL_TAX总和TOTAL_SHIPPING。有没有办法我可以编写sum函数来实现这一点。

注意 - 它不能以编程方式处理,即使用变量等,因为它在报告模板中并且必须定义,因为<?sum(...)?>此值将映射到 Excel 报告模板中的特定单元格。

4

3 回答 3

8

尝试

<?sum(.//TOTAL_RETAIL | .//TOTAL_TAX | .//TOTAL_SHIPPING)?>

|是联合运算符,因此您传递给的参数sum()是三个子表达式的联合。

于 2012-08-30T15:28:30.660 回答
4
sum(.//TOTAL_RETAIL | .//TOTAL_TAX | .//TOTAL_SHIPPING)
于 2012-08-30T15:30:11.630 回答
3

您也可以尝试在每个节点上拆分总和,它的工作原理如下:

<?sum(.//TOTAL_RETAIL) + sum(.//TOTAL_TAX) + sum(.//TOTAL_SHIPPING)?>

如果您有 NULL 值或空节点,请使用此过滤器确保 sum 函数始终有效:sum(.//TOTAL_RETAIL[.!='']) + ...etc

于 2013-05-01T06:02:37.930 回答