如何根据CSS类和二进制数字打开/关闭位置来突出显示特定列值

问题描述:

使用Oracle APEX v5.1.2。如何根据CSS类和二进制数字打开/关闭位置来突出显示特定列值

不确定如何解决以下,但我有一个名为flag_defs与下面的示例中的数据表,:

ID  NAME 
------- ------ 
1  A 
2  B 
3  C 
4  D 
5  E 
6  F 

基于上面的表,我需要一个报表区域来显示所有这些名字但不是在单独的行上,而是以下面的方式:

A B C D 
E F 

我只在其中显示4个名字。

现在基于以下二进制惯例,说以下内容:

010010 

其中第一0排队ID = 1并且在该序列中最后的0行到ID = 6

基于这个二进制序列,它将存储在另一个表的数据库字段中,我需要应用一个名为“flag-red”的类,我将其定义为color:red; font-weight:bold;到ID位置设置为“1”的名称。

因此,在上面的示例二进制序列中,“B”和“E”只会接收“flag-red”类,并且在报告区域内将为红色/粗体。其他人不会。

如果将该数字“1”重置为“0”,则删除该类同样适用于该ID。

我需要遍历此字段中的每个数字,以在我的报告中设置正确的类。

我假设我会首先创建一个报告并为每个名称分配一个span类,但不确定这是否是正确的方法。

此外,将JavaScript的是更好的选择还是坚持SQL

希望得到有关如何解决上述一些援助。

+0

不知道你正在努力达到什么。但是你想要的行为更像是一个UI部分。所以我会建议以Javascript的方式,这将更容易切换CSS类。 –

我会建议你做下面的方式报告:

比方说你有一个查询与rownum列返回一些行。添加一个支点来此查询,我们可以把它分为以下几个:

select * 
    from (select r, mod(rownum, 6) group_no, floor((rownum - 1)/6) row_id 
      from (select rownum r 
      from dual connect by level <= 30) t) 
pivot(max(r) for group_no in (1, 2, 3, 4, 5, 0)) 
order by 1 

enter image description here

现在我们可以加入此查询与存储二进制掩码来显示表。可以说,初始查询有列C1,C2,... C6与数据,并加入表与掩码数据有列M1,M2,... M6。(如果它是一列带着面具,我们可以生产使用计算表达式6列)您可以在这些列计算CSS类的名字,像

select ... 
     case when <expression1> then 'flag-red' else 'flad-green' end M1, 
     ... 

下一步就是去报告属性,选择在列列表列C1,去Column formatting部分,把#M1#CSS Classes field

enter image description here

而且,标志着M1M2,... M6列为隐藏。