使用RTF模板动态生成列

问题描述 投票:0回答:1

我有一个查询给出这样的输出...

EMPLOYEE_NUMBER、姓名、问题、答案。

我需要在这样的报告中显示这些信息

员工人数 |姓名 |问题 01 |问题 02 |问题 03 ...

在这些问题栏中,应显示员工针对该特定问题给出的答案。

这些问题列应该动态生成,因为问题数量可能会不时更改。我在查询中使用 PIVOT/ UNPIVOT 来处理这个问题,除了 rtf 模板之外,一切都很好。

我使用 Oracle 报告生成器来创建报告,并使用 RTF 模板进行格式化。最后这些.rdf文件和.rtf文件被上传到oracle应用程序。在oracle应用程序中,rtf输出设置为Excel。这样用户应该能够将报告下载为 Excel 文件。

所以我试图通过使用 RTF 模板来实现这一点,如下所示......

在第一列 EMPLOYEE_NUMBER 的第一个单元格中:

<?for-each-group@section:G_EMPLOYEE_NUMBER;./ EMPLOYEE_NUMBER?>  <?variable@incontext:IND;EMPLOYEE_NUMBER?>

在“问题”列(最后一列是动态的)标题中:

<?for-each-group@column: G_EMPLOYEE_NUMBER;QUESTION?>

在“问题”列的第一个单元格中:

<?for-each-group@cell://G_EMPLOYEE_NUMBER;QUESTION?>
<?current-group()[EMPLOYEE_NUMBER=$IND]/ANSWER?>

但这并没有给出所需的输出。 .rtf 模板中似乎出现了问题,甚至 Excel 中也没有输出。它只是在浏览中打开,并且列未正确显示。有什么想法吗?你发现上面的代码有什么错误吗?

注:

G_EMPLOYEE_NUMBER
是报告中的分组名称。 我对这些技术很陌生。

xml 中一行的示例数据:

<Row>
<Employee_Number>5001419</Employee_Number>
<Name>David Fernando</Name>
<Question>I'm able to use internal systems to find information on policies/people/projects</Question>
<Answer>b. Agree</Answer>          
</Row>
oracle plsql pivot rtf oraclereports
1个回答
0
投票

sample RTF 示例数据:

<DATA_DS><P_LDG></P_LDG><P_UDT>ANNUAL_PERFORMANCE_GRID</P_UDT><G_1><BASE_USER_TABLE_NAME>ANNUAL_PERFORMANCE_GRID</BASE_USER_TABLE_NAME<BASE_USER_COLUMN_NAME>LE_MIN</BASE_USER_COLUMN_NAME><ROW_LOW_RANGE_OR_NAME>INR.ALL.9581.ALL.ALL.ALL.ALL.1.1.ALL.ALL</ROW_LOW_RANGE_OR_NAME><VALUE>0.00</VALUE><LDG>IN Legislative Data Group</LDG><VALUE_ORIG>0.00</VALUE_ORIG><ROWNAME>IN Legislative Data Group|INR.ALL.9581.ALL.ALL.ALL.ALL.1.1.ALL.ALL</ROWNAME></G_1><G_1><BASE_USER_TABLE_NAME>ANNUAL_PERFORMANCE_GRID</BASE_USER_TABLE_NAME><BASE_USER_COLUMN_NAME>TARGET_TYPE</BASE_USER_COLUMN_NAME><ROW_LOW_RANGE_OR_NAME>INR.ALL.9581.ALL.ALL.ALL.ALL.1.1.ALL.ALL</ROW_LOW_RANGE_OR_NAME><VALUE>1</VALUE><LDG>IN Legislative Data Group</LDG><VALUE_ORIG>Percentage Base</VALUE_ORIG><ROWNAME>IN Legislative Data Group|INR.ALL.9581.ALL.ALL.ALL.ALL.1.1.ALL.ALL</ROWNAME></G_1><G_1><BASE_USER_TABLE_NAME>ANNUAL_PERFORMANCE_GRID</BASE_USER_TABLE_NAME><BASE_USER_COLUMN_NAME>PT_DEDUCTION</BASE_USER_COLUMN_NAME><ROW_LOW_RANGE_OR_NAME>INR.ALL.9581.ALL.ALL.ALL.ALL.1.1.ALL.ALL</ROW_LOW_RANGE_OR_NAME><VALUE>1</VALUE><LDG>IN Legislative Data Group</LDG><VALUE_ORIG>Y</VALUE_ORIG><ROWNAME>IN Legislative Data Group|INR.ALL.9581.ALL.ALL.ALL.ALL.1.1.ALL.ALL</ROWNAME></G_1></DATA_DS>

© www.soinside.com 2019 - 2024. All rights reserved.