1. 普通组件
对于Apex各种组件(page, region, item, button等) 可以很简单地在某种条件下设置为只读。它们的设置很类似,下面也region只读作为个例子。
在组件视图(Component View)
1. 点击某一个Region
2. 点击只读(Read only)标签
3.选择条件类型,有很多选择。简单的可以是一个表达式不为NULL或者两个表达式(不)相等。笔者常用的是PL/SQL Expression 或者PL/SQL Function body returning a boolean,因为它们可以支持更复杂的自定义逻辑。
4.确定并Apply change,就可以有效了。
2. 报表列组件
笔者在开发过程中发现,报表本身可以按上述方式整体被设为某个条件下的只读。但如果需求是只有某几列只读,就需要稍微复杂些的设置了。步骤如下:
1) 在Apex 建立一个hidden item,比如P1_Condition;
2) 在数据库建立一个PL/SQL function返回一个值(可以是数值,字符串值或者boolean值);
3)在Apex 建立一个Before Header process,调用该function并赋值给之前建立的hidden item;
4) 在Apex 建立一个on page load的dynamic action, 执行javascript 脚本,大致过程的伪代码如下:
//1. 得到hidden item 的值
var cond = $v('P1_Condition'); //$v函数用来获得某个item的值
//2. 比较条件
if( cond = 'abcd'){
// 3. 得到报表各个列
var col1Array = $('input[name="f02"]'); //利用jquery selector得到报表某一列
//col2, col3为希望只读的列
var col2IdPrefix="f03_";
var col3IdPrefix = "f04_";
$.each(col1Array , function(index,obj1) {
//计算各列对应的cell的id
var tmpId= (index+1);
var idStr = "0000"+ tmpId;
var idStrLen = idStr.length;
var idSubStr = idStr.substring(idStrLen-4,idStrLen);
var col2CompId = '#'+col2IdPrefix +idSubStr;
var col2Comp = $(col2CompId );
var col3CompId = '#'+col2IdPrefix +idSubStr;
var col3Comp = $(col2CompId );
//赋予各个cell为只读
col2Comp.attr("readonly","readonly");
col3Comp.attr("readonly","readonly");
});
} |
分享到:
相关推荐
[Packt Publishing] Oracle APEX 4.2 报表开发 (英文版) [Packt Publishing] Oracle APEX 4.2 Reporting (E-Book) ☆ 图书概要:☆ Learn how to build complex reporting solutions using Oracle APEX Overview...
Oracle尹达手写笔记(2021-08-03)
Oracle-11g-OCP-051培训笔记Oracle-11g-OCP-051培训笔记Oracle-11g-OCP-051培训笔记Oracle-11g-OCP-051培训笔记Oracle-11g-OCP-051培训笔记
《李兴华ORACLE笔记[2014-8-11]》是一份珍贵的学习资料,由知名数据库专家李兴华在2014年8月11日分享,旨在帮助ORACLE爱好者和专业人士提升技能,跟进行业最新动态。这份笔记涵盖的内容可能包括Oracle数据库系统的...
Oracle Application Express (APEX): Build Powerful Data-Centric Web Apps with APEX features step-by-step application development techniques, real-world coding examples, and best practices. You will ...
compat-oracle-rhel4-1.0-5.i386.rpm
将所有文件从本地目录或单个文件上载到Oracle APEX。 目的地可以是: 应用程序静态文件 工作区静态文件 主题文件 插件文件 要求 安装 npm install apex-publish-static-files 用法 var publisher = require ( ...
大数据组件,官方版本:CDH5.9.0 操作系统:CentOS7/RHEL7 完整系列: oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
oracle-instantclient-basic-11.1.0.1-1.x86_64.rpm
oracleasm-support-2.1.8-1.el6.x86_64.rpm
oracleasm-support-2.1.4-1.el5.x86_64.rpm 适用于内核为2.6.18-164.el5环境使用
包括内容有:oracle apex20.1,jdk-13.0.2_windows-x64_bin,apache-tomcat-9.0.34.exe,ords-19.4.0.352.1226,基本上都是最新版本,省去到处下载的麻烦。 Oracle Application Express (APEX) 是低代码开发平台。借助该...
3. **Oracle Listener配置**:Oracle Protocol Server(监听器)是连接数据库的关键组件。`APEX installation via the Oracle Protocol Server (listener) » blog_gralike_com.htm`这个文件可能包含关于如何配置...
Oracle APEX 4.0作为该系列的一个版本,提供了强大的功能集来支持企业级应用的快速开发与部署。本文档旨在详细介绍如何在Oracle Database 11g环境下成功安装并配置Oracle APEX 4.0。 #### 准备工作 在开始安装之前...
Oracle Instant Client包含了一系列必要的组件,如oci.dll、sqlplus.exe等,这些组件使得用户可以执行SQL查询、调用存储过程以及进行其他数据库操作。"basic"标签意味着这个压缩包包含了基础的连接和查询功能,例如...
oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
这个特定的版本,“oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm”,是针对64位Linux系统的,版本号为12.1.0.2.0,它包含了一些基本的组件,以支持客户端应用程序连接到Oracle数据库服务器。 Oracle ...