Oracle BI Publisher Excel模板连接父节点和子节点



我有一个项目列表的主数据集,它包含"项目ID";columb和用于每个项目的不同信息的多个子集;项目ID";以及";值";列。数据集通过"项目ID"列连接。我的双发布者数据模型看起来像这个

我的目标是创建下表。

我需要的桌子

当我使用BI Publisher的报告编辑器并应用以下步骤时;

  1. 插入表格
  2. 将项目ID添加为"中的第一列;主";数据集
  3. 添加子数据集中的值列

它工作得非常好,并且匹配了每个值的项目id和主数据集的项目id。

但我需要使用excel模板,但我不能得到相同的表格使用excel模板。我尝试了几个重复的部分组合,但都不起作用。

如何将每行的子节点连接到父节点?

由于保密原因,我不能分享截图,也没有任何模板副本。

提前谢谢。

不确定如何设置数据结构/XML。或者为什么你不能更新数据集上的SQL来组合那里的数据,但这些可能会有所帮助:

选项1

<?for-each:PROJECT?>
<?xdoxslt:set_variable($_XDOCTX, 'v_PROJECT', PROJECT_ID)?>
<?for-each:DATASET_1/RECORD?> 
<?if:xdoxslt:get_variable($_XDOCTX,'v_PROJECT')=PROJECT_ID?>
<?VALUE?>
<?end if?>
<?end for-each?>
<?end for-each?>

选项2

<?for-each:PROJECT?>
<?xdoxslt:set_variable($_XDOCTX, 'v_PROJECT', PROJECT_ID)?>
<?for-each:DATASET_1/RECORD[PROJECT_ID = xdoxslt:get_variable($_XDOCTX,'v_PROJECT')]?> 
<?VALUE?>
<?end for-each?>
<?end for-each?>

感谢您的帮助,我以前无法共享任何屏幕截图或代码,因为我的电脑中没有。但我在电脑上安装了BI Publisher,并尝试重新创建示例数据。

我的数据集

我正在尝试创建一个这样的表表I要创建

这就是我的xdo_metadata表的样子。

XDO_?XDOFIELD2?   <?NAME?>
XDO_?XDOFIELD2?   <?TASK_COUNT?>
XDO_?XDOFIELD3?   <?TASK_COUNT?>
XDO_?XDOFIELD4?   <?TASK_COUNT?>
XDO_GROUP_?XDOG1? <xsl:for-each select=".//PROJECT">

但它并没有像我预期的那样起作用。它创建了如下表格首次尝试时输出

我发现了为什么它不起作用,因为我对所有的值列都使用了相同的别名。

后来,我尝试在字段名之前更改xdo_metadata的父节点,效果非常好;

XDO_?XDOFIELD2?   <?NAME?>
XDO_?XDOFIELD2?   <?./SET1/TASK_COUNT?>
XDO_?XDOFIELD3?   <?./SET2/TASK_COUNT?>
XDO_?XDOFIELD4?   <?./SET3/TASK_COUNT?>
XDO_GROUP_?XDOG1? <xsl:for-each select=".//PROJECT">

我想在每个查询中使用唯一的别名,如TASK_COUNT1、TASK_COUNT2和TASK_COUNT3也可以。

我希望它能帮助那些将来有问题的人。

最新更新