带有 IF ELSE 语句的 ORACLE APEX 引导 CSS

问题描述

我知道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;

顶部: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 那么我想显示这个磁贴,否则我想隐藏它。

enter image description here

enter image description here

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

解决方法

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

方法 1: 在您的查询中使用项目 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 上添加一个 before 标头计算以在 CURRENT_SESSIONS 为 0 时返回“none”,当它 > 0 时返回“block”。

  • 在磁贴上,添加 css 类 showhide