處理查詢時候,如果查詢介面字段不下條件,就表示這個欄位為空值
方法:在顯示記錄的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 ...