1、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 中的数据块上) 。具体:2、QUERY-FIND查询时,点击小手电筒时go_block(BLOCK_QUERY);3、CLOSE-WINDOW关闭窗口时exit_form;n
2、ull;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 取消时分秒,赋值给某个项。写程序单元,在这个触发器中调用这个程序单元:SEARCH;PROCE
3、DURE search ISls_where varchar2(2000) :=1=1;BEGINls_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;b、:HYP_RECEIPT_LNIES_ALL_V.AMOUNT :=cux_po_pkg.get_quantity(:HYP_RECEIPT_LNIES_ALL_V.PO
4、_LINE_ID);得到剩余数量:订单数量到货数量function get_quantity(p_po_line_id number) return number islv_po_amount number;lv_rec_amount number;lv_amount number;beginbeginselect line.quantity into lv_po_amount from hyp_po_lines_all line where line.po_line_id=p_po_line_id;exception when others thenlv_po_amount := 0;end
5、 ;beginselect sum(quantity) into lv_rec_amount from hyp_receipt_lnies_all line where line.po_line_id=p_po_line_id;exceptionwhen others thenlv_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 = | :BLOC
6、K_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 = Y,OTHER_PARAMS = RECEIPT_ID= | :HYP_RECEIPTS_ALL_V.RECEIPT_ID);d、2、KEY-LISTVALa、calendar.show;在日期项的 LOV 中加入:ENABLE_LIST_LAMP可以可视化选择日期3、4、