【问题标题】:I need to fill the whole cell of region without title with color我需要用颜色填充没有标题的区域的整个单元格
【发布时间】:2012-11-14 12:43:19
【问题描述】:

我需要根据返回的数量填充基于特定计数 sql 的整个单元格。

我尝试过的解决方案:

pl/sql 根据计数给出 background_color 替换字符串。 该字符串在列格式属性中传递,如下代码所示

<table>
  <td WIDTH=30 HEIGHT=30 onclick="window.open('http://page.com" bgcolor=#BG_COLOR# >#COUNT(*)#</td>
</table>

page.com是在同一窗口中显示sql的所有结果(不计数)的页面

问题:

整个单元格没有被颜色填满。可能是单元格可以调整大小或者可以做一些事情

【问题讨论】:

  • @您的代码已损坏。请提供完整的sn-ps代码。此外,使用 css 属性 background-color: #BG_COLOR# 可能会有所帮助。
  • 此单元格是标准报告、交互式报告、您自己生成的标记还是您在标准/交互式报告的 sql 中添加的标记中的单元格?
  • @bPratik 我在哪里添加这个背景颜色:#BG_COLOR# 因为我已经将它添加到列格式属性中。
  • @Tom 这是一份标准报告。我只是在没有标题模板的区域中使用 sql 查询显示计数。我需要根据计数对区域的背景进行着色。

标签: html css oracle-apex


【解决方案1】:

您可以通过使用报告来解决此问题,但它需要一些 javascript/动态操作才能真正改变单元格的背景。即使您生成一些 html 代码,您的单元格也不会被 100% 填充,因为它也会被包装在报告的 html 结构中(即 TD 元素)。
您可以创建一个新的报告模板(共享组件 > 模板),但即便如此,您仍然需要在 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 的影响最小。

【讨论】:

    猜你喜欢
    • 2019-07-26
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 2021-10-25
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多