日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle form执行后左上角没出现oracle标记,oracle form学习笔记

發(fā)布時間:2025/3/8 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle form执行后左上角没出现oracle标记,oracle form学习笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

新增form步驟

打開模板TEMPLATE,將其改成自己所要的名稱,刪除Data Blacks中的BLOCKNAME,DETAILBLOCK,刪除Canvases中的BLOCKNAME,刪除Windows中的BLOCKNAME,新增自己的Windows,Canvases,DateBlacks,在form級別的PRE-FORM中將Blockname改成自己新增的window,若區(qū)分ORG,則將FND_ORG.CHOOSE_ORG;加入BLOCK的上一行,在Program_unit中打開APP_CUSTOM,修改其中的為自己的window,在triggers的when_new_item_instance中加入app_window.set_title('',:parameter.org_code),將org加入form的title.

1.在Form的title上加上Org_code

在Form級的WHEN-NEW-FORM-INSTANCE這個trigger中加入app_window.set_title('QUERY_FIND',:parameter.org_code);即可。

2.查看彈性欄位數(shù)據(jù)來源的路徑:system administrator-->application-->flexfield-->descriptive-->segment

3.初始化view

begin

dbms_application_info.set_client_info(188);

end;

對需要user_id才能訪問的view,需要先初始化一個合法的user_id進去

begin

fnd_global.apps_initialize(26872,56536,401);

end;

4.常用代碼

fnd_message.debug('show message'); --show出的提示窗口

raise form_trigger_failure;? --配合show message使用,中斷Form的執(zhí)行

在Form open/close的時候?qū)缑娴脑O定

例:在close_window下寫入,來控制多window的Form在關閉子窗口時切回到那個block上去

if (wnd = 'QUERY_FIND') then???????? --當query_find這個window關閉的時候

app_window.close_first_window;???? --關閉第一個window,即為關閉這個window

elsif (wnd = 'APPROVER_UPDATE') then? --當approve_update這個window關閉時

go_block('QUERY_FIND');???????????? --go_block到query_find這個block上去

end if;

在open_window下寫入以下代碼,來控制新window打開的方式

if (wnd = 'UPDATE_USER') then?? --當window? UPDATE_USER被打開時

APP_WINDOW.SET_WINDOW_POSITION('UPDATE_USER', 'CASCADE', 'APPROVER_UPDATE'); --設定UPDATE_USER這個window在APPROVER_UPDATE這個window的左上角稍偏下點,具體詳見下面的介紹

SET_WINDOW_PROPERTY('UPDATE_USER', VISIBLE, PROPERTY_TRUE);

GO_BLOCK('UPDATE_USER');?? --指定要顯示的block

elsif (wnd = 'ACT') then

APP_WINDOW.SET_WINDOW_POSITION('ACT', 'CASCADE', 'APPROVER_UPDATE');

SET_WINDOW_PROPERTY('ACT', VISIBLE, PROPERTY_TRUE);

GO_BLOCK('ACT');

end if;

app_window.set_window_position詳解

procedure APP_WINDOW.SET_WINDOW_POSITION(

child_window varchar2,

style varchar2,

parent_window varchar2 default NULL);

說明:說明子窗口的顯示位置

參數(shù):child_window? 指定位置的子窗體名稱

style???????? 子窗口的定位類型

parent_window 子窗口的上階窗口名稱

style:CASCADE????? 多個窗口從左上向右下排列

RIGHT,BELOW? 子窗口在父窗口的右邊或者下方,且父窗口不會覆蓋子窗口

OVERLAP????? 子窗口和父窗口重疊,對齊父窗口左邊,但向下位移0.3

CENTER?????? 子窗口在父窗口的中間顯示

FIRST_WINDOW 顯示在toolbar的下方,通常是主窗口

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

方法:在顯示記錄的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;? --執(zhí)行查詢命令

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 欄位。

設置欄位屬性值

app_item_property.set_property('ACT.NEW_ACT',Required,PROPERTY_TRUE);

ACT.NEW_ACT?? block的欄位

Required????? 屬性名稱

PROPERTY_TRUE 屬性值

調(diào)用block的trigger

APP_RECORD.FOR_ALL_RECORDS('ACT_LIST','SELECT_COUNT');

ACT_LIST?????? block名稱

SELECT_COUNT?? trigger名稱

5.當一個window上有多個canvas的時候,往往會造成某個canvas不顯示,解決此方法可用

show_view('canvas')命令,其中canvas為需要顯示的canvas名稱。

注意:當使用show_view來顯示canvas時,焦點會回到之前的canvas上,這樣在show? canvas_stacked的時候就不會有問題,但在show新打開的window的時候就會造成要顯示的window閃一下就跑到之前的window的后面去,解決此問題可以調(diào)用

app_custom.open_window('ACT_LIST'); 來show你要的window,其中ACT_LIST為block名稱。

6.彈出yes or no的詢問對話框

FND_MESSAGE.SET_STRING('此核流程中已有核人T,是否⑵h除再}u?');

v_ques_no := FND_MESSAGE.QUESTION('YES','NO',NULL);

if v_ques_no=1 then

del_lines(p_head_id);

add_lines(p_head_id,p_organization_id);

else

null;

end if;

7.單擊按鈕使得下一個要彈出的界面值清空

go_block('');

clear_block(no_validate);

8.FND_STANDARD.SET_WHO;? 插入建立者,建立日期,最后更新者,最后更新日前,最后登陸人等信息

9.清空block中資料

app_find.clear;清除當前block的值,不可用go_block('');的方式清除其他的block

app_find.clear_detail('');清除指定block的值

總結(jié)

以上是生活随笔為你收集整理的oracle form执行后左上角没出现oracle标记,oracle form学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。