2014-12-03 35 views
0

我在ADD按钮中有一个代码,用于显示CONTROL块 上存储的数据(在表格中)下面的代码工作正常,但我没有得到serial_no on块如何在oracle表格中显示项目显示自动化数据

COMMIT_FORM; 

Declare 
    Cursor Cur_BILL_DETAILS 
    Is Select code , item_name , qty , amount 
     From APPS.XXC_BILL_DETAILS 
     Where Bill_no = :bill_no; 
Begin 
    Go_Block('CONTROL');     
    Open Cur_BILL_DETAILS; 
    Loop 
    Fetch Cur_BILL_DETAILS Into :CONTROL.CODE , 
           :CONTROL.item_name , 
           :CONTROL.qty , 
           :CONTROL.amount; 
    Exit When Cur_BILL_DETAILS %Notfound; 
    Next_Record; 
    End Loop; 
    Close Cur_BILL_DETAILS; 
First_Record; 
End; 

而我创建的控制块(非数据库),如下所述预插入件,用于显示作为Serial_no

declare 
    v_no number; 
Begin 
select xxc_sno.nextval into v_no from dual; 
:CONTROL.SNO:=v_no; 
end; 

假设,

我插入代码,item_name,数量,金额和提交记录,上面的ADD按钮代码工作正常。

的前插入的代码没有生成和显示没有的1,2,3 ..

例:

Code item qty Amount 
    ---- ---- --- ----- 
    A  AA  1 10 
    B  BB  1 20 

,并单击添加按钮,它被保存在插入2项纪录并进入下面的(下,控制块),在显示控制块

 Sno  Code item qty Amount 
    ---- ---- ---- --- ----- 
     1   A  AA  1 10 
     2   B  BB  1 20 

但插入预触发的存储的记录部未产生序列号的作为1,2,3等。(未实现)

你能帮我吗?

由于

回答

1

形式数据的发布基表块期间PRE-INSERT触发火。控制块没有基表,因此PRE-INSERT将永远不会触发。我不确定(我的表格知识是生锈的),但您可能需要考虑使用WHEN-NEW-RECORD-INSTANCE触发器。

+0

感谢您的回复Tony,您的意思是控制Sno的WHEN-NEW-RECORD-INSTANCE? – Rajesh123 2014-12-04 11:00:20

+0

是的,我做过 - 当控制块记录被创建时,这应该填充SNO。 – 2014-12-04 11:16:12