按照标题排序mysql_Oracle EBS Form中实现点击列标题进行排序

在做EBS表单开发时,虽然使用folder功能提供了排序功能,对多行数据块可以对前三列进行指定排序,也可以单击前三列的列标题进行排

27.1 问题描述

在做EBS表单开发时,虽然使用folder功能提供了排序功能,对多行数据块可以对前三列进行指定排序,也可以单击前三列的列标题进行排序,但是不能对更多的列进行排序,如果要对更多的列进行排序,需要将要排序的列拖动到前三列才可以进行,限制较大。我们在MRPII系统中一般可以对任何列进行点击列标题进行排序,如何在保证文件夹功能的前提下实现点击列标题自动排序呢?

27.2解决方案

经过测试,我认为文件夹功能进行排序是通过更改对应的数据块的ORDER BY属性,然后执行查询而实现的,并非在客户端进行排序,而是通过数据库服务器实现排序的,明白这个原理以后就好操作了。我这个点击列标题进行排序功能需要大家使用文件夹功能,具体是指对应数据块需要有个这个数据块名加上_PROMPT的数据块对应,且这个块的项目的Name属性要为对应的列的数据源字段名,如果大家按照规范使用文件夹功能,这个前提已经满足了。情景:有个多行数据块名为BILL_LINES,实现了文件夹功能,其对应的列标题数据块是BILL_LINES_PROMPT,以下是实现部分:

步骤1:新建参数,Name属性为SORT_RULE,Parameter Data Type属性为Char,Maximum Length属性为150,Parameter Initial Value为NO_RULE,也就是做如下图所示设置:

步骤2:创建包BLOCK_SORT,包说明使用的代码如下:

PACKAGE BLOCK_SORT IS

PROCEDURE GET_SORT(block_item IN VARCHAR2);

PROCEDURE CALL_SORT(sort_rule IN VARCHAR2);

END;

包主体使用的代码如下:

PACKAGE BODY BLOCK_SORT IS

procedure GET_SORT(block_item IN VARCHAR2) IS

block_name varchar2(80);

item_name varchar2(80);

order_by1 varchar2(80);

i number;

BEGIN

i := INSTR(block_item,'_PROMPT');

IF i>1 THEN

item_name := SUBSTR(block_item,i+8);

block_name := SUBSTR(block_item,1,i-1);

order_by1 :=GET_BLOCK_PROPERTY(block_name,ORDER_BY);

IF INSTR(order_by1,item_name)>=1 THEN

IF INSTR(UPPER(order_by1),'DESC')>=1 then

:PARAMETER.SORT_RULE :='Y' || block_name || '|' || item_name;

ELSE

:PARAMETER.SORT_RULE :='Y' || block_name || '|' || item_name || ' DESC';

END IF;

ELSE

:PARAMETER.SORT_RULE :='Y' || block_name || '|' || item_name;

END IF;

Do_Key('Execute_Query');

:PARAMETER.SORT_RULE :='N' || SUBSTR(:PARAMETER.SORT_RULE,2);

END IF;

END GET_SORT;

PROCEDURE CALL_SORT(sort_rule IN VARCHAR2) IS

block_name varchar2(80);

sort_rule_new varchar2(80);

i number;

BEGIN

i := INSTR(sort_rule,'|');

IF i>1 THEN

block_name := SUBSTR(sort_rule,2,i-2);

sort_rule_new := SUBSTR(sort_rule,i+1);

SET_BLOCK_PROPERTY(block_name,ORDER_BY,sort_rule_new);

END IF;

END CALL_SORT;

END;

步骤三:在要执行点击列标题进行排序的列标题,比如在BILL_LINES_PROMPT数据块的OSALE_PRICE项目的WHEN-MOUSE-UP触发器中的代码app_folder.event('WHEN-MOUSE-UP'); 后面增加如下代码

BLOCK_SORT.GET_SORT(:SYSTEM.TRIGGER_ITEM);

如果要对多列进行点击列标题进行排序,多次重复此步骤增加一行代码。

步骤四:在要执行查询的数据块,这里是BILL_LINES的PRE-QUERY事件的app_folder.event('PRE-QUERY'); 代码后增加如下代码即可。:

IF SUBSTR(:PARAMETER.SORT_RULE,1,1) = 'Y' THEN

BLOCK_SORT.CALL_SORT(:PARAMETER.SORT_RULE);

END IF;

本例说到的功能完成以上几个步骤后已经实现了,当然可以再扩展,,更加方便使用的。

logo.gif

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507833.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vscode导入本地jar包_go导入本地包踩坑(已解决!)

当我想要仿照C语言的大程序结构,来写go语言的程序,出现下面的报错(ps:系统是windows,文本编辑器(或称IDE)是vscode)然后vscode还会时不时地在右下角出现这样地提示信息对于go语言新手…

java super用法_Java基础面试题汇总

blog.csdn.net/ThinkWon/article/details/104390612Java概述何为编程编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、和手段通过计算…

java string返回_Java的String字符串内容总结

String--字符串获取字符串的长度使用Sring类的length()方法可获取字符串对象的长度,例:str.length();str代表指定的字符串对象;返回值为返回指定字符串的长度。例:获取字符串中指定字符的索引位置String类提供了indexOf()和lastIndexOf()方法…

汉诺塔java程序_Java编写一个汉诺塔的过程

[java]代码库/** 需求:用Java编写一个汉诺塔的过程* 汉若塔问题,就是把A柱子上面从大到小一次叠放的盘子借助B柱移到C柱上去,规则是一次只能移动一个盘子,大盘子不能放到小盘子之上** 思想:采用递归的方法来接* 1. 先将…

ajax 同步_第3部分-0:同步和异步,还有回调需要了解一下

同步是什么异步是什么 异步场景: (1)定时任务 (2)网络请求:Ajax 、图片加载 全面分析前端的网络请求方式 (3)事件绑定 异步产生知识点: 进程和线程 单线程 记一次 Vue 移…

音频重采样有什么用_最佳音频接口基本购买指南

音频接口是计算机实现录音功能的媒介设备,用于将乐器和麦克风发出的声音转换为数字信息,以便计算机可以理解并存储在硬盘上。在播放音频时,接口将数字音频文件重新转换为模拟信号,然后用监听音箱或耳机播放出来。简而言之&#xf…

java 正则 最后一个字符_正则表达式怎么匹配字符串中最后一串数字?

展开全部importretempDwellTime:666mre.search(r\d*,temp)printrepr(m.group()),m.start(),m.end()mre.search(r\d,temp)printrepr(m.group()),m.start(),m.end()printre.findall(r\d*,temp)输出:006661114[,,,,,,,,,,,666,]扩展资料正则表达式,校验数字…

lombok原理_听说学会用 Lombok 就可以让你早点下班?(你还不看)

听说隔壁用 Lombok 的六点就下班了,我也想六点下班!好的,那么这篇文章就介绍下什么是 Lombok,Lombok 做了什么以及 Lombok 是怎么做的?在介绍之前,先通过是否使用 Lombok 的效果来看下对比,首先…

idea jar包导入_IDEA 实用功能Auto Import:自动优化导包(自动删除、导入包)

下面介绍一下IDEA的一个能显著提升写代码效率的非常好用的功能设置—— Auto ImportAuto Import的功能是可以帮助我们自动删除无用的包Import(未被引用),以及自动Import填充尚未导入的包。完全智能化地帮助我们在开发程序时,省略了导包的操作&#xff0c…

@value 数组_为什么不推荐用for...in遍历数组

(一)for...in引发的一个报错两年前写的一个文章目录生成插件vue-outline,一直用着没出啥问题(本站的文章目录也是用该插件生成的)。但是最近一个网友在使用的时候却出现了异常报错,异常代码使用了一个for..…

mysql存储函数 cursor_MySQL的存储过程写法和“Cursor”的使用

MySQL的存储过程写法和“Cursor”的使用2008-03-11eNet&Ciweek本文中介绍了一个MySQL的存储过程,其中涉及Cursor的使用,示例如下:CREATE PROCEDURE justifyGroupNum()NOT DETERMINISTICSQL SECURITY DEFINERCOMMENT BEGIN/*how to run:ca…

mysql数据库字段变形_详解如何利用amoeba(变形虫)实现mysql数据库读写分离

摘要:这篇MySQL栏目下的“详解如何利用amoeba(变形虫)实现mysql数据库读写分离”,介绍的技术点是“MySQL数据库、数据库读写分离、amoeba、MySQL、读写分离、数据库”,希望对大家开发技术学习和问题解决有帮助。关于mysql的读写分离架构有很多…

bind blz mysql_MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典...

MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典本资源由JAD资源网收集整理丨www.jiuandun.com资源简介MySQ DBAL重点剖析课程,课程的重点在于企业级MySQL系统安全实战,和MySQL DBA运维的日常事务管理,也就…

怎样解决外键约束_《设计心理学》|找寻“设计师”所遇的真正问题与解决之道...

《设计心理学1》作者[美] 唐纳德A诺曼 。此书始终强调以人为本的设计哲学,将认知心理学和行为学等多学科的方法导入到设计之中。不仅着重于反思设计过程中出现的问题给用户带来的困扰,更着重于解决问题,用这些基本原则帮助设计师找到真正的问…

java dumpheap_java程序性能分析之thread dump和heap dump

一.dump基本概念在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题。这些文件记录了JVM运行期间的内存占用、线程执行等情况,这就是我们常说的dump文件。常用的有heap dump和thread dump(也叫javacore&#xf…

json string 格式_GO小知识之如何做JSON美化

经常有些小知识想分享出来,但又构不成体系,一直觉得文章形式发出不太合适。准备以 "知乎想法" 分享出来,但发现代码展示不太友好。还是发文章吧,该类分享将以 "小知识" 为前缀。后端http接口测试常需要打印 J…

java 对象引用 弱引用吗_谈谈Java对象的强引用,软引用,弱引用,虚引用分别是什么...

整体结构java提供了4中引用类型,在垃圾回收的时候,都有自己的各自特点。为什么要区分这么多引用呢,其实这和Java的GC有密切关系。强引用(默认支持模式)把一个对象赋给一个引用变量,这个引用变量就是一个强引用。强引用是我们最常见…

python图像几何变换_Python 图像处理 OpenCV (5):图像的几何变换

前文传送门: 图像缩放 图像缩放只是调整图像的大小,为此, OpenCV 为我们提供了一个函数 cv.resize() ,原函数如下: resize(src, dsize, dstNone, fxNone, fyNone, interpolationNone) src 表示的是输入图像&#xff0c…

linux中python编辑器_Linux下9款最好的Markdown编辑器

首先, Markdown是使用Perl编写的,简单、轻量级的工具,允许用户编写纯文本格式和高效的html或者XHTML。它实际上是一个易于阅读,易于编写纯文本的语言和文本到HTML的转换的软件工具。 希望你有一点了解,Mrakdown是什么&…

java监听数据库操作_第十六篇——JDBC操作数据库之监听器

JavaWeb应用中,很多的地方都和session有关。因此session相关的事件监听器,在日常工作中非常有用。有时候我们需要统计当前在线的人数和访问人数总数,此时就可以使用监听器技术来很简单的实现这种功能。注意:session并不是浏览器关…