如何根据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
希望得到有关如何解决上述一些援助。
我会建议你做下面的方式报告:
比方说你有一个查询与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
现在我们可以加入此查询与存储二进制掩码来显示表。可以说,初始查询有列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
:
而且,标志着M1
,M2
,... M6
列为隐藏。
不知道你正在努力达到什么。但是你想要的行为更像是一个UI部分。所以我会建议以Javascript的方式,这将更容易切换CSS类。 –