ORACLE APEX bootstrap CSS 与 IF ELSE 语句

ORACLE APEX bootstrap CSS with IF ELSE Statement

我知道 css 不支持 if else 语句。 如果我的值 > 0,我想在我的 bootstrap 中显示一张卡片。

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;

顶部:20px;

字体大小:32px;

显示:块;

}

.card-counter.count-detail{

位置:绝对;

右:35px;

顶部:50px;

字体样式:斜体;

文本转换:大写;

不透明度:0.5;

显示:块;

字体大小:18px;

}

.card-counter .count-name{

位置:绝对;

右:35px;

顶部:65px;

字体样式:斜体;

文本转换:大写;

不透明度: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_sessionsql代码:

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')

您可以通过查询而不是通过 css 以其他几种方式完成此操作。它可能会更容易。

方法一: 在查询中使用 CURRENT_SESSIONS 项,这样您就只会获得需要为 CURRENT_SESSIONS 的当前值显示的行。你没有提供你的数据所以很难给你举个例子。如果您需要帮助了解如何执行此操作,请告诉我。

方法 2:将此列添加到您的报告查询中

       CASE
        WHEN :CURRENT_SESSIONS != 0
        THEN 'block'
        ELSE 'none'
       END  show_current_sessions,

您的报告中现在有一列,当卡片需要显示时带有字符串 'block',当卡片需要隐藏时带有字符串 'none'。 在 html 表达式或报告列的 link 文本属性中使用此值 html 表达式(根据需要调整):<i style="display:#SHOW_CURRENT_SESSIONS#;"></i> link 文字属性: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);
}
  • 如果 CURRENT_SESSIONS 为 0 且 'block',则在 P1_SHOW_CURRENT_SESSIONS 到 return 'none' 之前添加 header 计算当它 > 0.

  • 在磁贴上,添加 css class showhide.