我有一个项目列表的主要数据集,其中包含“项目 ID”列,以及多个子集,用于每个项目的不同信息,其中包含“项目 ID”和“值”列。数据集通过项目 ID 列连接。 我的双出版商数据模型看起来像这样
我的目标是创建下表。
当我使用 BI Publisher 的报告编辑器并应用以下步骤时;
它工作得非常好,并且匹配每个值的项目 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 并尝试重新创建示例数据。
我正在尝试创建一个像这样的表 我要创建的表
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)也可以。
希望对以后遇到问题的人有帮助。
oğuzhan-Öztürk
我正在努力实现与您完全相同的目标。 我可以完全理解您的元数据表 - 我无法开始工作的是在电子表格本身中创建组。
您有 4 个查询/组(PROJECT、SET1、SET2、SET3)
您正在使用项目组中的名称列 您正在使用其他 3 组中的 TASK_COUNT 列。
您仅在 Excel 工作表中定义项目组?
有一个步骤是在 Excel 中突出显示列,然后单击 Publisher->Repeating Group yes? 您能解释一下您在这里做了什么吗? 例如,您是否突出显示了所有 4 列并将它们设为项目组?
非常感谢