Oracle APEX 4.2实现左右联动查询

Mr_Czg

发布于 2018.02.26 17:18 阅读 3545 评论 1

Oracle APEX 4.2实现左右联动查询

 

*总结主要包括*

实现目的—>实现所需要的储备—>主要界面展示—>法一(item       法二(全局变量)

 

实现该功能目的:

      在实际的后台管理系统中,有很多需要实现点击一个项目或者设备名称,然后显示该项目或者设备对应的一些进度和运营状况。方便一些非开发人员快速了解。

 

实现功能所需储备:

      1.Oracle APEX是基于Oracle数据库的应用,所有的信息存储于数据库,所以工具就是表表表!还有你的数据库三大范式的理解。因为这个功能吧对于表之间的关系连接,id主键的应用还是需要熟悉。

      2.对于cookiesession有基础了解;

 

实际系统主要界面展示:

 

     

 

功能实现方法暂时两种:

 

开始使用Oracle数据库的原始EMPDEPTNO表进行举例:

表结构如下:

 

 

 

 

 

法一:(使用item项方法来实现)

 

Item项的介绍:

     

 

 

      页面项(items)属于某一个区域,是构成区域的组件。页面项可以是隐藏的,一般用于存储数据,相当于在页面上定义了一个变量。页面项大多是可见的,显示在页面上其所属的区域内,显示形式根据用户选择可以有很多种,比如文本输入框、下拉列表、复选框、带日历的时间输入文本框等。可见的页面项主要作用是输入和输出:用户可以通过页面项输入数据,或作出选择,也可通过页面项查看程序的输出结果

 

      项有两个级别:页面项(page items)和应用程序项(application items)。页面项放置在某个页面上,有相关的用户界面显示属性,如显示为(Display As)、标签(Label)和标签模板(Label Template)。页面项的例子包括复选框(check box)、文本框(display as text,)、文件选择器(file browse field)、弹出式列表(popup list of values)等。 应用程序项并不属于某个特定页面,也没有显示属性。应用程序项可用作全局变量。从上图可以看出,区域Test 有个页面项:P1_DEPTNO,页面项是隐藏的,因此在页面上看不到它的存在。页面项的名字一般是根据你输入的项标签自动生成的,当然你可以修改,但一般是以“P页码_”开头,比如P1_QUOTA代表一个页面1的项。最好遵循这一命名规范以保持代码的易读性。

      当用户通过页面项输入数据后,你可在应用程序中通过合适的语法来引用项的值,获取用户的输入(一种介质)。当应用程序将计算结果赋值给某个项时,新的结果将在页面刷新时自动显示出来。

 

 

法一实现步骤:

第一步————创建一个空白页

 

 

第二步————创建一个报表

增加报表之前根据页面布局,设置一下页面模板

之后在区域位置模板2上创建一个空白页,然后在这个区域上创建一个item(隐藏显示均可)——因为这个就是上面介绍的中间介质;

空白区域最后结果:

 

 

第三步————创建item项:

 

 

 

 

 

第四步————返回到编辑页,点击增加一个报表区域--

 

     

注释:这里的select查询语句:是一个动态匹配的语句;后续直接点击创建即可;

 

 

第五步————创建一个值列表;

注释:这个地方:使用示例2的绑定变量方法:粘贴复制过去进行更改

 

这个地方涉及到目标链接的代码:

这个列表显示得是工作部门,所以是DNAME

下一行代码表示:APP_ID是你的当前页码,APP_Session是这个页面会话session

P7_TEST就是刚才创建的item项,DEPTNO  target 是目标指向这个部门;

举例:当我点击这个部门,浏览器下面就会出现目标URL

 

 

点击下一步:

 

 

 

第六步————创建一个列表引用刚才的列表

 

 

 

 

第七步————点击运行此页——完成

 

 

 

 

法二实现步骤:

 

实现思路:将法一的item转变为全局变量:

怎么创建全局变量?在apex里面怎么运行的?

 

      全局变量就是Application items 的意思,所以就是和item的存储传输变量的功能是一样的;它在App登录后就行初始化,在登录后的session中存活,等待一个接收的URL页面;

     

解释:

      创建:点击共享组件:

 

其他思路与法一相同;