EBS自动行号,行金额自动汇总到头,金额根据币种编号总结
一.自动行号实现
1.方法一:
只需要将“序号”定义成公式,并将公式设置为:get_block_property('block_name',current_record)就可以实现了,或者把这行语句放到“When-Create-Record”触发器中。
缺点:增改删时,行号不能自动刷新。
2.方法二:
①在需要自动行号的Block中,新增一个Item,我这里取名为LINE_NUM(注:这不是数据库中的字段,即属性Database Item为No),放在对应画布上及调整布局;
②在对应Block添加相应Block级别的触发器:ORDER_LINES为我的数据块
KEY-CREREC:
DECLARE
LINE NUMBER;
BEGIN
LINE := :SYSTEM.CURSOR_RECORD;
LOOP
IF :SYSTEM.LAST_RECORD = 'TRUE' THEN
EXIT;
ELSE
NEXT_RECORD;
:ORDER_LINES.LINE_NUM := :SYSTEM.CURSOR_RECORD + 1;
END IF;
END LOOP;
GO_RECORD(LINE);
CREATE_RECORD;
:ORDER_LINES.LINE_NUM := :SYSTEM.CURSOR_RECORD;
END;
KEY-DELREC:
DECLARE
LINE NUMBER;
BEGIN
DELETE_RECORD;
LINE := :SYSTEM.CURSOR_RECORD;
LOOP
:ORDER_LINES.LINE_NUM := :SYSTEM.CURSOR_RECORD;
IF :SYSTEM.LAST_RECORD = 'TRUE' THEN
EXIT;
ELSE
NEXT_RECORD;
END IF;
END LOOP;
GO_RECORD(LINE);
END;
WHEN-CREATE-RECORD:
:ORDER_LINES.LINE_NUM := :SYSTEM.TRIGGER_RECORD;
POST-QUERY:(注:如果这里使用了该触发器,查询会获取不到行号,需要加入以下到该触发器获取行号)
begin
:ORDER_LINES.LINE_NUM:=:SYSTEM.TRIGGER_RECORD;
end;
3.更多方法:https://blog.csdn.net/cai_xingyun/article/details/17922631
二.行金额自动汇总
1.从无到有自己实现:
效果图:包含两个数据块(OEDER_HEADERS和ORDER_LINES),ODRDER_HEADERS.TOTAL是所有总金额,ORDER_LINES.AMOUNT是没一行总金额
步骤:
①创建ORDER_HEADERS.TOTAL,设置其子类属性为:TEXT_ITEM_DISPLAY_ONLY;
在合计显示的数据块中,创建合计项目的汇总临时项目,命名规则为:<合计项目名称>_RTOT_DB,NUMBER(38)/DISPLAY_ITEM,即TOTAL_RTOT_DB/NUMBER(38)/DISPLAY_ITEM;
(注:这两个字段都不是数据库中的字段,故Item的属性Database Item为No,否则会提示该字段无效);
②添加一个包,用于封装app_calculate.running_total()及初始化amount的存储过程,如下:
包头:
PACKAGE TOTAL_LINES IS
procedure amount (event varchar2);
procedure running_total (event varchar2); END TOTAL_LINES;
包体:
procedure running_total (event varchar2) is
begin
app_calculate.running_total(event,'ORDER_LINES.AMOUNT','ORDER_HEADERS.TOTAL');
end running_total;
procedure amount (event varchar2) is
begin
if event = 'INIT' then
copy(name_in('order_lines.price') * name_in('order_lines.quantity'),'order_lines.amount');
end if;
end amount; END TOTAL_LINES;
③ORDER_LINES对应触发器:(ORDER_LINES块级,存放每行总金额的块)
KEY-DELREC:
total_lines.running_total('KEY-DELREC');
--注:这里是删除行号的代码,如果不删除会同时删除两行
--DELETE_RECORD;
DECLARE
LINE NUMBER;
BEGIN
DELETE_RECORD;
LINE := :SYSTEM.CURSOR_RECORD;
LOOP
:ORDER_LINES.LINE_NUM := :SYSTEM.CURSOR_RECORD;
IF :SYSTEM.LAST_RECORD = 'TRUE' THEN
EXIT;
ELSE
NEXT_RECORD;
END IF;
END LOOP;
GO_RECORD(LINE);
END;
KEY-DUPREC:
total_lines.running_total('KEY-DUPREC');
duplicate_record;
KEY-CLRREC:
CLEAR_RECORD;
WHEN-CLEAR-BLOCK:
total_lines.running_total('WHEN-CLEAR-BLOCK');
POST-QUERY:
total_lines.amount('INIT');
total_lines.running_total( 'POST-QUERY');
--注:这是获取行号的
begin
:ORDER_LINES.LINE_NUM:=:SYSTEM.TRIGGER_RECORD;
end;
④在ORDER_HEADERS(放Total总金额的数据块)的数据块级触发器上添加查询初始化所有总金额Total
POST-QUERY:
select nvl(sum(price*quantity),0)
into :order_headers.total
from Cux_Order_Lines_All_25305
where header_id = :order_headers.header_id ;
:order_headers.total_rtot_db:=:order_headers.total;
⑤Item级触发器(Price和Quantity,对应修改触发金额从新初始化)
Price和Quantity下触发器WHEN-VALIDATE-ITEM:
total_lines.amount('INIT');
total_lines.running_total('WHEN-VALIDATE-ITEM');
2.根据属性直接获取:
这是获取总金额的Item,需要单独放在一个Block里面,summrary Function属性中是求和函数SUM,summarized Block中是所求和Item的Block,Summarized Item是所求和的Item
给每一行设置公式获取每一行的总金额
可能会报如图的错,解决方式
EBS自动行号,行金额自动汇总到头,金额根据币种编号总结的更多相关文章
- Ubuntu vim显示行号语法高亮自动缩进
配置文件名为Ubuntu vimrc在Fedora中vim的配置文件存放在/etc目录中,配置文件名为Ubuntu vimrc在终端 输入以下命令来编辑Ubuntu vimrc配置文件:sudo vi ...
- Lua中如何实现类似gdb的断点调试—06断点行号检查与自动修正
前面两篇我们对性能做了一个优化,接下来继续来丰富调试器的特性. 我们前面提到过,函数内并不是所有行都是有效行,空行和注释行就不是有效行.我们之前在添加断点的时候,并没有对行号进行检查,任何行号都能成功 ...
- C# DevExpress_gridControl 行号行样式
#region 行号 /// <summary> /// 行号 /// </summary> /// <param name="sender"> ...
- 设置gridView 行号 行号宽
gridView1.IndicatorWidth=30; //设置行号宽度 //对gridView1的CustomDrawRowIndicator事件进行操作 进行行号显示 private stati ...
- vim简单配置(tab,行号,自动缩进)
进入到个人目录:cd - 打开vimrc文件:vim .vimrc 在文件中添加以下内容:set shiftwidth=4 #按tab键缩进4个空格set softtabstop=4 ...
- ExtJS表格——行号、复选框、选择模型
本篇的内容是为表格添加行号,和复选框,最后谈一下Ext的选择模型.内容比较简单,就直接上代码了.一. 设置行号 行号的设置主要问题在于删除某一行后需要重新计算行号 Ext.onReady(fun ...
- vim显示行号、语法高亮、自动缩进的设置
转载自:http://blog.csdn.net/chuanj1985/article/details/6873830 在UBUNTU中vim的配置文件存放在/etc/vim目录中,配置文件名为v ...
- winedt设置自动显示行号[latex]
options--preferences--appearance 在show line numbers for modes下面的文本框里添加;Tex 这样新建或者打开tex文件的时候就自动显示行号了( ...
- linux vim 配置文件(高亮+自动缩进+行号+折叠+优化)
点评:将一下代码copy到 用户目录下 新建文件为 .vimrc保存即可生效 如果想所有用户生效 请修改 /etc/vimrc (建议先cp一份)"===================== ...
随机推荐
- elasticsearch与kibana安装过程(linux)
elasticsearch与kibana安装 下载 Elasticsearch 官网:https://www.elastic.co/,elastic search应用本质就是一个jvm进程,所以需要J ...
- 【实用软件】GIF屏幕录制软件-ScreenToGif (在GitHub开源)
抛个问题,自问自答 ScreenToGif 经常会遇到一些场景,需要你向别人展示一些操作或是效果——例如告诉别人某某软件的配置步骤啊.刚某个动画效果怎么样啊.某某电影里面的一个镜头多么经典啊.打得大快 ...
- linux系统创建windows启动盘
平时工作中用到linux的操作命令较多,因此为了方便,就给电脑装了双系统,一般工作的时候,都选择进入linux系统.但是今天有件工作之外的事情需要解决下:创建一个windows启动盘.如果按照往常来说 ...
- WebStrom编程小技巧--HTML快速创建指定id或者类名的div
打印div标签快速方法:“先打出#yz,然后Tab键补全即可获得<div id="yz"></div>同理:我们也可以先打出“.tz"然后Tab键 ...
- Hadoop : MapReduce中的Shuffle和Sort分析
地址 MapReduce 是现今一个非常流行的分布式计算框架,它被设计用于并行计算海量数据.第一个提出该技术框架的是Google 公司,而Google 的灵感则来自于函数式编程语言,如LISP,Sch ...
- Linux - 搭建Web项目(Django + nginx + uwsgi)
工作中碰到需要使用Django + nginx + uwsgi 搭建项目环境 1. 搭建基本环境 需要有python环境,不多做说明 需要安装nginx,不多做说明 需要安装uwsgi: yum in ...
- css中的border-collapse属性如何设置表格边框线?(代码示例)
css中的border-collapse属性如何设置表格边框线?本篇文章就给大家介绍css中的border-collapse属性是什么? border-collapse属性设置表格边框线的方法.有一定 ...
- phpfpm和nginx设置开机自动启动
## 添加执行权限 chmod a+x /etc/init.d/nginx chmod a+x /etc/init.d/php-fpm ## 加入服务 chkconfig --add nginx ch ...
- Servlet(4):Session
Session, Cookie及交互 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session. Cookie通过在客户端记录信息确 ...
- PJzhang:python基础入门的7个疗程-four
猫宁!!! 参考链接:易灵微课-21天轻松掌握零基础python入门必修课-售价29元人民币 https://www.liaoxuefeng.com/wiki/1016959663602400 第十天 ...