【问题标题】:Change the text color of a shuttle based on a condition in oracle apex根据 oracle apex 中的条件更改航天飞机的文本颜色
【发布时间】:2021-12-29 04:36:52
【问题描述】:

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

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

这是穿梭机的截图:

这里是航天飞机的 SQL 查询,用于从文档表中获取所有 KPI:

select distinct kpi as k1, kpicode as k2
from documentation
where kpi is not null;

【问题讨论】:

    标签: sql oracle plsql oracle-apex apex


    【解决方案1】:

    穿梭项目不允许您提供 html 标记来设置穿梭中显示的选项的样式。 您可以编写自己的项目,或者通过修改模板来满足您的要求,但我想提出一种使用 jQuery 的非常简单的方法。

    由于您没有提供示例数据,我正在使用视图 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
    

    现在,穿梭机将如下所示:

    现在,在页面属性的Execute when Page Loads 部分添加一个简短的 jQuery sn-p:

    $('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 将使红色仅出现在右侧。如果你想让它出现在两边,你可以简单地省略它。

    现在,穿梭机将如下所示:

    【讨论】:

    • 谢谢你,你帮了我很多。
    猜你喜欢
    • 2021-01-09
    • 2014-10-22
    • 2022-07-21
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 2012-02-03
    相关资源
    最近更新 更多