sql - 根据 oracle apex 中的条件更改穿梭机的文本颜色

标签 sql oracle plsql oracle-apex apex

我在 oracle apex 中有两个不同的表,第一个是包含 KPI 的文档表,第二个是包含所有 KPI 结果的结果表。

我在页面中创建了一个快捷方式,用于从文档表中选择 KPI,然后将结果插入到结果表中。我需要的是,如果文档表中显示的 KPI 在结果表中没有任何结果,它应该以红色显示。可以这样做吗?? 注意:表间连接的主键和外键是kpicode

这是航天飞机的屏幕截图:

enter image description here

这是穿梭车的 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

现在,航天飞机看起来像这样:

enter image description here

现在,将一个简短的 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 将使红色仅出现在右侧。如果您希望它出现在两侧,您可以简单地省略它。

现在,航天飞机看起来像这样:

enter image description here

关于sql - 根据 oracle apex 中的条件更改穿梭机的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70017295/

相关文章:

oracle - PL/SQL 中 80% 的规则估计值

mysql - 从许多小查询中进行 1 个大查询时出现问题

php - 选择连接 MYSQL

sql - Oracle sql查询查找具有特殊字符作为值的列

SQL:按 "business days"分组

mysql - 合并两个选择查询并在顶部显示第一个查询记录

sql - 按左连接表排序

sql - 在列中显示两个不同日期的数据

sql - Oracle SQL 查询中的方括号是什么意思?

java - Oracle JDBC 池 SocketException : Connection reset on startup