Oracle EBS ERP之报表开发—条件筛选按钮和组件开发

当我们进行报表开发的时候,进行条件筛选在业务上是必要的。这不仅可以让用户快速得到自己想要的报表数据,并且进行筛选后,数据查询的速度将会得到不同程度的提升。

这项业务功能关键分为2部分:筛选按钮的开发和筛选条件输入框的开发,各自的实现如下,都是很简单的技术:

一 筛选按钮

假设我例子中,报表开发的过程代码是:cux_ordersum_report_pkg.sales_comp

首先进入FORM中,对于筛选按钮,我们需要对其创建一个触发器:

vbscript 复制代码
WHEN-BUTTON-PRESSED

填入下面的模板内容:

vbscript 复制代码
DECLARE
  v_request_id NUMBER;

BEGIN
	
	if :item.PLAN_DATE_FROM is not null and :item.PLAN_DATE_TO is null then
fnd_message.set_name('FND','请输入日期 ');
    fnd_message.show;
    raise form_trigger_failure;
end if;

if :item.PLAN_DATE_FROM is null and :item.PLAN_DATE_TO is not null then
fnd_message.set_name('FND','请输入日期 ');
    fnd_message.show;
    raise form_trigger_failure;
end if;

  v_request_id := submit_request('CUX'
                                ,'CUX_ORDERSUM_SALES_COMP'
                                ,''
                                ,''
                                ,FALSE
                                ,:item.ou
                                ,:item.ORDER_DATE_FROM
                                ,:item.ORDER_DATE_TO
                                ,:item.PLAN_DATE_FROM
                                ,:item.PLAN_DATE_TO
                                ,:item.order_type
                                ,:item.order_number
                                ,:item.sale_number
                                ,:item.currency
                                ,:item.SALESREP
                                ,:item.CRM_YEJI_DEP
                                ,:item.CUSTOMER1
                                ,:item.CUSTOMER2
                                ,:item.CUSTOMER3
                                ,:item.CUSTOMER4
                                ,:item.CUSTOMER5
                                
                                ,:item.IDELIVERY_ORDER_TYPE
                                ,:item.ACCOUNT_NAME
                                ,:item.ATTRIBUTE19
                                
                                ,chr(0));

  IF v_request_id = 0 THEN
    fnd_message.retrieve;
    fnd_message.error;
  ELSE
    :item.request_id := v_request_id;
    fnd_message.set_name('FND'
                        ,'并发请求ID: ' || v_request_id);
    fnd_message.show;
  END IF;
  COMMIT;
       clear_message;
  fnd_function.execute(function_name => 'FND_FNDRSRUN'
                        ,open_flag     => 'Y'
                        ,session_flag  => 'Y'
                        ,other_params  => 'DODT_REQ_ID="' || v_request_id || '"');
END;

代码功能分析

  1. 输入验证:检查计划日期范围的完整性

  2. 提交并发请求 :使用SUBMIT_REQUEST函数提交一个并发程序。(值得注意的是:在EBS中,CUX_ORDERSUM_SALES_COMP这个位置填入的并发程序的简称(Short Name),而不是存储过程名。)

  3. 处理返回结果:获取请求ID并显示给用户

  4. 打开请求查看器 :使用FND_FUNCTION.EXECUTE自动打开请求查看窗口

二 筛选条件输入框

这就是平平无奇的 普通的 配置的了 不同类型的输入框配置可以参考下面文章:

FORM开发指南-第四弹:参数、List、LOV、字段和记录控制、日历_ebsform 列表的值在哪设置-CSDN博客

相关推荐
尤鸟倦3 天前
OneNote table复制到Excel遇到的各种问题
excel
2501_930707783 天前
使用C#代码使用条件格式为 Excel 隔行设置颜色
c#·excel
leihefeng4 天前
PX04-用 Python 读 Excel 画折线图,还能直接插回 Excel 文件
python·excel
yanlaifan4 天前
Excel中指定单元格不能输入内容的方法
excel
babe小鑫4 天前
信息与计算科学专业应届生面试 怎么证明自己能解决业务问题
学习·r语言·excel
Data-Miner5 天前
商品ABC分类分析怎么用AI做?脚本复用+图表可编辑的一次完整实操
人工智能·数据分析·excel
E-iceblue7 天前
Excel 列转行/行列转换全指南:从 4 种常见解法到 Python 批量自动化
python·excel·python库·spire.xls
Data-Miner7 天前
AI处理数据的脚本复用与逻辑复用有什么区别?哪种方式更能沉淀工作成果
数据分析·excel
福兮说8 天前
在浏览器里写一个“够用就好“的 Excel 公式求值器
前端·javascript·excel·编译原理
慧都小妮子8 天前
标签打印如何减少手工抄数?用Bartender 直连 Excel 批量打印
excel·bartender·条码打印·标签打印软件·数据驱动打印·工业打印机