触发器总结.doc_第1页
触发器总结.doc_第2页
触发器总结.doc_第3页
触发器总结.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 form级别1、 WHEN-NEW-FORM-INSTANCE当新form的时候a、go_block(BLOCK_QUERY);b、app_window.set_window_position(QUERY,CENTER,POHEADERSALL);c、search;(主form传过来的PO_ID参数,打开这个form时,有缺省的where语句,然后执行查询,最后go_block到这个form中的数据块上)。具体:写程序单元,在这个触发器中调用这个程序单元:SEARCH;PROCEDURE search ISls_where varchar2(2000) :=1=1;BEGIN ls_where :=ls_where | and po_id=| :parameter.PO_ID; set_block_property(HYP_PO_HEADERS_ALL_V,default_where,ls_where); go_block(HYP_PO_HEADERS_ALL_V); execute_Query;END;2、 QUERY-FIND查询时,点击小手电筒时go_block(BLOCK_QUERY);3、 CLOSE-WINDOW关闭窗口时exit_form;null;2、 数据块级别1、 CLOSE-WINDOWa、 go_block(HYP_PO_HEADERS_ALL_V);一个form中有两个数据块,一个查询,一个显示查询结果,当关掉这个数据块时,go到显示结果的数据块。2、 PRE-INSERTa、:HYP_PO_HEADERS_ALL_V.PO_NUMBER :=cux_po_pkg.get_po_number(trunc(sysdate);预插入:调用cux_po_pkg包中的get_po_number函数,传入当前系统时间,trunc取消时分秒,赋值给某个项。b、:HYP_RECEIPT_LNIES_ALL_V.AMOUNT :=cux_po_pkg.get_quantity(:HYP_RECEIPT_LNIES_ALL_V.PO_LINE_ID);得到剩余数量:订单数量到货数量function get_quantity(p_po_line_id number) return number is lv_po_amount number; lv_rec_amount number; lv_amount number;begin begin select line.quantity into lv_po_amount from hyp_po_lines_all line where line.po_line_id=p_po_line_id; exception when others then lv_po_amount := 0; end ; begin select sum(quantity) into lv_rec_amount from hyp_receipt_lnies_all line where line.po_line_id=p_po_line_id; exception when others then lv_rec_amount := 0; end; lv_amount := lv_po_amount-lv_rec_amount; return nvl(lv_amount,0);end;3、 WHEN-NEW-RECORD-INSTANCEif :HYP_PO_HEADERS_ALL_V.PO_STATUS N thenset_block_property(HYP_PO_HEADERS_ALL_V,DELETE_ALLOWED,PROPERTY_FALSE);set_block_property(HYP_PO_HEADERS_ALL_V,UPDATE_ALLOWED,PROPERTY_FALSE);else set_block_property(HYP_PO_HEADERS_ALL_V,DELETE_ALLOWED,PROPERTY_TRUE);set_block_property(HYP_PO_HEADERS_ALL_V,UPDATE_ALLOWED,PROPERTY_TRUE);end if;当某个项不为N(新建)时,(其他状态为更改中,和完成)不可以改变这个数据块本条记录的其他项,4、 POST-QUERY:HYP_PO_HEADERS_ALL_V.AMOUNT:=cux_po_pkg.get_po_amount(:HYP_PO_HEADERS_ALL_V.PO_ID);每个订单的总额,是调用包中的函数function get_po_amount(p_po_id number) return number is lv_amount number;begin select sum(hv.amount) into lv_amount from hyp_po_lines_all_v hv where hv.po_id=p_po_id; return lv_amount;end;3、 项级别的触发器1、 WHEN-BUTTON-PRESSEDa、 go_block(HYP_PO_HEADERS_ALL_V);按某个按钮(取消)时跳转到某个数据块b、 查询,在查询块,按所输入条件查询。DECLARElv_where varchar2(2000) := 1=1;BEGINif :BLOCK_QUERY.PONUMBERSTART is not null thenlv_where := lv_where | and po_number= | :BLOCK_QUERY.PONUMBERSTART | ;end if;if :BLOCK_QUERY.PONUMBEREND is not null thenlv_where :=lv_where | and po_number=to_date(| to_char(:BLOCK_QUERY.PODATESTART,yyyymmdd) | ,yyyymmdd);end if;if :BLOCK_QUERY.PODATEEND is not null thenlv_where :=lv_where | and po_dateHYPRECLINESALLV, OPEN_FLAG = Y, SESSION_FLAG

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论