带有 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 表达式(根据您的需要调整):&lt;i style="display:#SHOW_CURRENT_SESSIONS#;"&gt;&lt;/i&gt; 链接文字属性: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_ 前缀。当你的应用变得更复杂时,你会开始意识到这一点:) 是的,您对页码的看法是正确的。我将用我的页码更改我的页面项目名称。我的图块有 css 源文件。就是我上面写的css 所以只是为了确认 - 源区域 不是 查询,它是静态正确的吗?我已经更新了我的答案

以上是关于带有 IF ELSE 语句的 ORACLE APEX 引导 CSS的主要内容,如果未能解决你的问题,请参考以下文章

带有if和else语句的foreach循环在if语句为假时不执行else语句

在oracle sql语句里有没有if...else...的用法,请各位大侠给个例子看看,灰常感谢!!

在 C# 中使用带有多个 if 语句的 else

多个 if-else 测试的更简单方法

带有嵌套 if/else 语句的 While 循环

ORACLE If Then Else 语句与计数器和选择查询