我正在尝试使用Oracle Apex中的经典报告动态创建360问卷。第一部分使用以下内容很好地工作:
SELECT q.display_text,
apex_item.radiogroup(rownum, 1, a.answer, null, null, null, null) "ineffective",
apex_item.radiogroup(rownum, 2, a.answer, null, null, null, null) "sometimes"
FROM xxpay_360_questions q,
xxpay_360_answers a
where a.question_id (+) = q.question_id
and a.user_name (+) = :APP_USER
order by q.questionnaire_id,
q.display_sequence
这将输出3个报告列。第一个是问题,第二个是用于选择答案1或2的水平单选按钮.360调查问卷还需要部分和子部分以及一些textarea问题。对于那些我想将3个报告列合并为1列(类似于colspan = 1)。我可能需要在上面的select中使用union输出它们,但我不确定如何动态输出colspan和单个报告列值。
请注意,我使用主题20以获得Oracle Applications外观并使用表格布局。
任何人都知道如何为某些行输出单个报告列而不是3,然后colspan = 1呢?更改部分和子部分的字体将是一个奖励。
使用表格布局时,不确定css是否可以执行colspan。
答案 0 :(得分:1)
这样做的另一个好处是,您现在可以使用HTML来执行您最终需要的格式化。
答案 1 :(得分:0)
我做了以下 测试表:
create table tst as
select 1 a, 2 b, 3 c, 4 d, 5 e from dual
union all
select 11, 12, 13, null, null from dual
union all
select 21, 22, 23, 24, 25 from dual;
地区来源:
select a, b,
case when d is null and e is null then
'<td colspan="3">' || c || '</td>'
else '<td>' || c || '</td><td>' || d || '</td><td>' || e || '</td>'
end merged_column
from tst
报告属性:Display as
- Standard Display Column
,列标题merged_column
:
<th>C</th><th>D</th><th>E</th>
结果如下所示:
也许它不是那么酷且有用的例子,但是第二行中的单元看起来是合并的(当然它们真的是合并的)。此外,无法按第4列和第5列排序,您需要手动对齐文本 抱歉,无法提供该页面的链接,apex.oracle.com已升级到5.0版,4.2版现已无法使用。
答案 2 :(得分:0)
我希望我有更多时间来编写一个正确的示例,但您可以使用Oracle的LISTAGG函数将每个问题的答案分组为一行,并为样式添加一些HTML标记。一般来说,我生成这样的东西:
<SPAN TITLE="Some help text">Some question text?</SPAN>
<UL>
<LI>[RADIO group1 value1] radio_label1</LI>
<LI>[RADIO group1 value2] radio_label2</LI>
</UL>
希望您可以将此示例用作编码所需内容的起点。
顺便说一句,我应该指出你想要做的一个潜在问题。您可能已经意识到这一点,但是,通过这种方法,Apex一次只能显示不超过50个问题,因为p_idx的值必须是1到50之间的整数。(来源:Apex documentation你可以在这个限制范围内工作,但从一开始就意识到这个问题要比在中途发现它容易得多。
祝你好运!