我在 oracle apex 中有两个不同的表,第一个是包含 KPI 的文档表,第二个是包含所有 KPI 结果的结果表。
我在页面中创建了一个快捷方式,用于从文档表中选择 KPI,然后将结果插入到结果表中。我需要的是,如果文档表中显示的 KPI 在结果表中没有任何结果,它应该以红色显示。可以这样做吗?? 注意:表间连接的主键和外键是kpicode
这是航天飞机的屏幕截图:
这是穿梭车的 SQL 查询,用于从文档表中获取所有 KPI:
select distinct kpi as k1, kpicode as k2
from documentation
where kpi is not null;
最佳答案
shuttle 项目不允许您提供 html 标记来设置 shuttle 中显示的选项的样式。 您可以编写自己的项目,或者可能通过修改模板来实现您的要求,但我想提出一种使用 jQuery 的非常简单的方法。
由于您没有提供示例数据,我正在使用 View user_tables
并将尝试用红色突出显示名称中包含 DEMO
的所有表,一旦他们被移动到穿梭车的右侧。
对于我的示例,穿梭机的来源必须为需要突出显示的元素提供一些标记。如果表名包含 DEMO
,我会在前面添加 [red]
:
select
case when table_name like '%DEMO%' then '[red]' end ||
table_name as d,
table_name as r
from user_tables
order by table_name
现在,航天飞机看起来像这样:
现在,将一个简短的 jQuery 片段添加到页面属性的 Execute when Page Loads
部分:
$('option:contains("[red]")').addClass("red").each(function() {
$(this).html($(this).html().replace("[red]",""));
});
这会将 CSS 类 red
添加到匹配的元素并删除文本 [red]
。
作为最后一步,使用内联 CSS 实际应用样式:
.shuttle_right .red { color: red; font-weight: bold }
过滤器 .shuttle_right
将使红色仅出现在右侧。如果您希望它出现在两侧,您可以简单地省略它。
现在,航天飞机看起来像这样:
关于sql - 根据 oracle apex 中的条件更改穿梭机的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70017295/