我需要填充基于特定计数sql的整个单元格,颜色取决于返回的数量。
我试过的解决方案:
pl / sql根据count给出background_color替换字符串。 此字符串以列格式化属性传递,如下面的代码
<table>
<td WIDTH=30 HEIGHT=30 onclick="window.open('http://page.com" bgcolor=#BG_COLOR# >#COUNT(*)#</td>
</table>
page.com是显示同一窗口中sql的所有结果(不计数)的页面
问题:
整个细胞没有充满颜色。可能是细胞可以调整大小或者可以做一些事情
答案 0 :(得分:0)
您可以通过使用报告来解决此问题,但需要一些javascript /动态操作来实际更改单元格的背景。即使你生成一些HTML代码,你的单元格也不会被100%填充,因为它也将被包装在报告的html结构中(即TD元素)。
您可以创建一个新的报告模板(共享组件&gt;模板),但即便如此,您仍然需要在您的SQL中生成一些HTML代码。
如果你只有1个记录和1个单元格并且最终需要在其中生成一些html,那么我实际上不会使用报告区域。使用PLSQL区域并在其中生成一些HTML。例如:
DECLARE
lCount NUMBER;
lColour VARCHAR2(50);
BEGIN
SELECT count(*)
INTO lCount
FROM emp;
IF lCount < 10 THEN
lColour := 'blue';
ELSIF lCount > 10 THEN
lColour := 'red';
END IF;
htp.p('div style="background-color: '||lColour||'; width: 30px; height: 30px;">'||lCount||'</div>');
END;
您可能需要更改区域模板,以完全满足您的需求。您可以随时复制一个并对其进行更改,以使其对您生成的html影响最小。