带有 IF ELSE 语句的 ORACLE APEX 引导 CSS
Posted
技术标签:
【中文标题】带有 IF ELSE 语句的 ORACLE APEX 引导 CSS【英文标题】:ORACLE APEX bootstrap CSS with IF ELSE Statement 【发布时间】:2021-08-17 17:08:04 【问题描述】:我知道 css 不支持 if else 语句。 如果我的值 > 0,我想在我的引导程序中显示一张卡片。
css代码:
.card-counter
盒子阴影:2px 2px 10px #DADADA;
边距:5px;
内边距:20px 10px;
背景颜色:#fff;
高度:100px;
边框半径:5px;
过渡:.3s 线性全部;
.card-counter:hover
盒子阴影:4px 4px 20px #DADADA;
过渡:.3s 线性全部;
.card-counter.success
背景颜色:#66bb6a;
颜色:#FFF;
.card-counter i
字体大小:5em;
不透明度:0.2;
.card-counter .count-numbers
位置:绝对;
右:35px;
顶部:20 像素;
字体大小:32px;
显示:块;
.card-counter .count-detail
位置:绝对;
右:35px;
顶部:50 像素;
字体样式:斜体;
文本转换:大写;
不透明度:0.5;
显示:块;
字体大小:18px;
.card-counter .count-name
位置:绝对;
右:35px;
顶部:65 像素;
字体样式:斜体;
文本转换:大写;
不透明度:0.5;
显示:块;
字体大小:17px;
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" />
<div class="container">
<div class="row">
<div class="col-md-3">
<div class="card-counter success">
<i class="fa fa-calendar fa-3x fam-clock fam-is-info fa-lg"></i>
<span class="count-numbers"><a href="f?p=&APP_ID.:3008:&APP_SESSION." style="color: white">&CURRENT_SESSIONS. -
&CONFIRMED_AMOUNTS.€</a></span>
<span class="count-detail">Weekly</span>
<span class="count-name"><a href="f?p=&APP_ID.:3008:&APP_SESSION." style="color: white">Open<p>Sessions</a></span>
</div>
</div>
&CURRENT_SESSIONS。是我的应用项目,如果这个项目 > 0 那么我想显示这个图块,否则我想隐藏它。
current_session sql 代码:
select count(CLIENTS.ID) as QTY
from SESSIONS SESSIONS,
CLIENTS CLIENTS
where SESSIONS.CLIENTS_ID=CLIENTS.ID
and SESSIONS.STATUS =1
and to_char(SESSIONS.SESSION_DATE, 'MM-DD-YYYY') between to_char(trunc(CURRENT_TIMESTAMP, 'iw'), 'MM-DD-YYYY')
and to_char(trunc(CURRENT_TIMESTAMP, 'iw')+6, 'MM-DD-YYYY')
【问题讨论】:
【参考方案1】:您可以通过查询而不是通过 css 以其他几种方式完成此操作。这可能会更容易。
方法一:
在您的查询中使用项目CURRENT_SESSIONS
,这样您就只获得需要为CURRENT_SESSIONS
的当前值显示的行。你没有提供你的数据,所以很难给你一个例子。如果您需要帮助确定如何执行此操作,请告诉我。
方法 2:将此列添加到您的报告查询中
CASE
WHEN :CURRENT_SESSIONS != 0
THEN 'block'
ELSE 'none'
END show_current_sessions,
现在,您的报告中有一个列,当卡片需要显示时,字符串为“block”,当卡片需要隐藏时,字符串为“none”。
在 html 表达式或报告列的链接文本属性中使用此值
html 表达式(根据您的需要调整):<i style="display:#SHOW_CURRENT_SESSIONS#;"></i>
链接文字属性:style="display:#DISPLAY_PARENT_LINK#;"
这种方法的缺点是卡片将在 DOM 中,因此还需要确保没有呈现有效的 url。
但是,如果您不使用查询作为区域源,则上述方法不适用。在这种情况下,您可以使用 css 变量。
创建一个页面项目P1_SHOW_CURRENT_SESSIONS
(更改页码以方便您)。在您的页面属性上,在 css > inline 下添加以下 css:
:root
--display: &P1_SHOW_CURRENT_SESSIONS.;
.showhide
display:var(--display);
在P1_SHOW_CURRENT_SESSIONS
上添加一个前标头计算,以在 CURRENT_SESSIONS 为 0 时返回 'none' 并在 > 0 时返回 'block'。
在磁贴上,添加 css 类 showhide
。
【讨论】:
您好 Koen Lostrie,非常感谢您的帮助。我添加了 current_session 项目编译的代码和我的 APEX 主页面中包含这些图块的照片。 您的瓷砖区域的来源是什么?我假设这是一个 SQL 查询。 作为旁注,最好在页面项目前加上 P以上是关于带有 IF ELSE 语句的 ORACLE APEX 引导 CSS的主要内容,如果未能解决你的问题,请参考以下文章
带有if和else语句的foreach循环在if语句为假时不执行else语句