oracle form學習筆記

2021-08-31 08:09:23 字數 1627 閱讀 7604

處理查詢時候,如果查詢介面字段不下條件,就表示這個欄位為空值

方法:在顯示記錄的block下的key-exeqry這個trigger下做判斷,然後將最終的where條件賦值給這個block的default_where裡面去。**如下

declare

v_default_where varchar2(400);  --定義變數用來存放這個block的初始where條件

v_where varchar2(2000);         --定義變數用來存放新的where條件

begin

v_default_where:=get_block_property(:system.cursor_block,default_where);--獲取此block初始的where條件

v_where:=v_default_where;   --將初始的where條件賦值給v_where這個變數中

if v_default_where is null then   --當初始條件為空時,並條件的時候不需要加'where','and'之類

if :query_find.emp_class_code is null then     --如果查詢介面的那個欄位為空

v_where:=v_where || ' emp_class_code is null';  --將查詢條件並上此字段is null

else

v_where:=v_where || ' emp_class_code='||:query_find.emp_class_code;--查詢介面的字段有值就用字段等於的sql查詢語句

end if;

else       --當初始條件不為空,並查詢條件時需要加'and'

if :query_find.emp_class_code is null then

v_where:=v_where || ' and emp_class_code is null';

else

v_where:=v_where || ' and emp_class_code='||:query_find.emp_class_code;

end if;

end if;

set_block_property(:system.cursor_block,default_where,v_where); --將新的查詢條件賦值給這個block的default_where進行查詢 

clear_record; /*清空,否則form下次查詢的時候會把前一次的條件帶入*/

execute_query;  --執行查詢命令

set_block_property(:system.cursor_block,default_where,v_default_where);  --將原預設的default_where值重新恢復回去

end;

取消lov的驗證

set_record_property(:system.trigger_record,:system.trigger_block, status,query_status);

常用於介面上的字段值**於select ....into...而此字段又有繫結lov的情況下,防止以查詢方式進入介面,沒做任何操作就需要儲存;或者介面上字段在table中只記錄id,用name查詢時,直接用select name into 字段。

Oracle Form 開發筆記

1 設定item屬性 資料型別 date 值列表 enable list lamp 從列表中驗證 否 2 編寫item的key listval觸發器 calendar.show 在form觸發器 when window resized 增加以下 1 if system.event window in...

Oracle Form 觸發器執行順序

oracle form 觸發器執行順序 觸發器執行順序 1 當開啟form時 1 pre form 2 pre block block級 3 when new form instance 4 when new block instance 5 when new record instance 6 w...

Oracle Form在工具欄增加按鈕

1.這個是在event裡頭的code if event name when new form instance then 普通選單 special30 商歷史採購cust null,true special30 property on begin add by guozhenbin 2009 11 ...