1、 設(shè)置堆疊畫(huà)布窗口跟隨主窗口變化
form級(jí)觸發(fā)器:WHEN-WINDOW_RESIZED觸發(fā)器中修改in中的窗口名
2、啟用標(biāo)準(zhǔn)菜單中的導(dǎo)出功能
操作路徑=>文件=>導(dǎo)出Oracle Form中經(jīng)常會(huì)發(fā)現(xiàn)系統(tǒng)導(dǎo)出菜單失效来吩,利用上段代碼可強(qiáng)行激活。set_menu_item_property('FILE.EXPORT', ENABLED, PROPERTY_TRUE);
3匀们、 Oracle form poplist下拉框去掉其中的空值
ctrl+shift+<
4娜扇、 代碼控制ITEM屬性
如果是控制單行記錄或者多行記錄中的全部記錄:SET_ITEM_PROPERTY
如果是控制多行記錄中的單一行記錄:SET_ITEM_INSTANCE_PROPERTY
5越妈、(shift+f6)復(fù)制上條記錄
在數(shù)據(jù)塊的KEY-DUPREC觸發(fā)器中加入
begin
????duplicate_record;
end;
6季俩、 app_query設(shè)置塊的查詢(xún)條件
1)app_query.reset('塊名'): 第一次設(shè)置查詢(xún)條件為 default_where
2)app_query.append ('塊名',user_where_clause): 在form中,給數(shù)據(jù)塊查詢(xún)添加新的where語(yǔ)句
例子:在查詢(xún)窗口中添加查詢(xún)條件
如果直接在塊的where clause中設(shè)置查詢(xún)條件時(shí)梅掠,會(huì)總是將org_id為空的記錄查詢(xún)出來(lái)酌住,而通過(guò)如下設(shè)置則只會(huì)輸出選擇條件的記錄
IF :parameter.g_query_find = 'TRUE' THEN
????app_query.reset('MAIN');
????app_query.append('MAIN', '(org_id IS NULL OR org_id = fnd_global.org_id)');
????copy(name_in('QUERY_FIND.DOC_TYPE_CODE'), 'MAIN.PRINT_DOC_TYPE');
????copy(name_in('QUERY_FIND.TMP_CODE'), 'MAIN.TEMPLATE_CODE');
????copy(name_in('QUERY_FIND.PACK_NAME'), 'MAIN.PACKING_NAME');
????:parameter.g_query_find := 'FALSE';
END IF;
parameter.g_query_find的作用是決定查詢(xún)范圍的一個(gè)開(kāi)關(guān)。在PRE-QUERY觸發(fā)器中阎抒,通過(guò)判斷此值酪我,來(lái)判斷此次查詢(xún)是否來(lái)源于手電筒操作,從而決定是否要套用手電筒中的查詢(xún)條件且叁。?
COPY (<find Window field>, <results field>);這個(gè)觸發(fā)器會(huì)在查詢(xún)之前將查詢(xún)塊中的數(shù)值先賦給目標(biāo)塊都哭,當(dāng)執(zhí)行app_find.find(‘TEST_BLOCK’)時(shí)就能查到數(shù)據(jù)了。
tips:
當(dāng)查詢(xún)的是一個(gè)范圍逞带,比如數(shù)據(jù)塊上只有一個(gè)日期字段欺矫,
那么用app_find.query_range(low_value, high_value, db_item_name)
或者app_find.query_date_range(low_value, high_value, db_item_name)
其中l(wèi)ow_value和high_value的類(lèi)型可以是varchar2/date/number
7、 查詢(xún)界面的查詢(xún)窗口在前展氓,主窗口在后
設(shè)置:
1)所有地方的first window還是主窗口名
2)在when-new-form-instance觸發(fā)器中初始化完folder定義后添加query_find窗口調(diào)用定義代碼如下:
app_find.query_find('CUX_INV_TXN_V', 'QUERY_FIND', 'QUERY_FIND');
8穆趴、設(shè)置窗口title名
app_window.set_title('QUERY_FIND', :parameter.org_name);
9、rowid
row_id 的subclass information設(shè)置成row_id
重新加載數(shù)據(jù)塊時(shí)注意row_id的長(zhǎng)度至少18
否則插入數(shù)據(jù)時(shí)報(bào)on-insert觸發(fā)器遇到了不能解決的問(wèn)題
10遇汞、顯示歷史記錄
在PRE-INSERT, PRE-UPDATE觸發(fā)器中添加fnd_standard.set_who未妹,
同時(shí)form基于的表或試圖必須帶有5個(gè)who字段簿废,否則將出現(xiàn)查詢(xún)以后歷史記錄不可用
11、日期的item顯示時(shí)分秒
將item的data type屬性設(shè)置成datetime络它,只要數(shù)據(jù)庫(kù)中的數(shù)據(jù)是帶時(shí)分秒的就能顯示出來(lái)