PIXNET Logo登入

oracle園地

跳到主文

這裡是到處搜括來的ORACLE技術及文章,也有自己發表的文章,希望大家可以互相討論! PS-若有侵權,請告知哦.

部落格全站分類:職場甘苦

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 5月 17 週六 200813:51
  • 可根據金額判斷借貸

       decode(sign(rgd.acctd_amount),1,rgd.acctd_amount,null) dr
       ,decode(sign(rgd.acctd_amount),-1,rgd.acctd_amount*-1,null) cr
(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(194)

  • 個人分類:Oracle SQL
▲top
  • 5月 13 週二 200810:48
  • Oracle Form (使用注意事項-轉)

 一、處理錯誤
 
1.當錯誤出現在Oracle Form PL/SQL中時,處理的方法如下: 
 IF (err_condition) THEN  
    Fnd_message.set_name(appl_short_name,message_name); 
    Fnd_message.error;  
 RAISE form_trigger_failure; 
 END IF; 
 
2.當錯誤出現在Stored Procedure中時,處理的方法如下: 
 IF (err_condition) THEN 
     Fnd_message.set_name(appl_short_name,message_name); 
     App_exception.raise_exception; 
 END IF;
 
 
3.當我們在測試FORM_SUCCESS,FORM_FAILURE和FORM_FATAL的時候,
  可能觸發了目地的子程序而導至它們的值發生改變,例如下面這個例子:
 
  GO_ITEM(‘emp.empno’);
 
 IF FROM_FAILURE THEN 
 RAISE FORM_TRIGGER_FAILURE;  
 END IF; 
 
 GO_ITEM引起其它的觸發器觸發,比如WHEN-NEW-ITEM-INSTANCE,儘管GO_ITEM可能執行失敗,
 但是後面的Trigger有可能執行成功,這就意味著FROM_FAILURE是失效的,
 為了避免這種情況發生,可以改為下面這樣:
 
 GO_ITEM(‘emp.empno’); 
 IF :SYSTEM.CURSOR_ITEM != ‘EMP.EMPNO’ THEN  
    RAISE FORM_TRIGGER_FAILURE;  
 END IF;
 
 4.避免使用RAISE_APPLICATION_ERROR,因為它與我們使用的進程服務的設置有衝突 
 
 5.不要使用CALL_FORM,你可以使用FND_FUNCTION.EXECUTE來代替CALL_FORM或是OPEN_FORM
 
 
 二、在Oracle Application中使用PL/SQL中需要注意的地方
 
 1.使用select … from dual來代替select … from sys.dual ;
 
 2.只返回一條行的Select查詢要處理NO_DATA_FOUND例外, INSERT 、 UPDATE 、 DELETE
   不會產生這個例外,要使用SQL%NOTFOUND來檢查是否有數據  
 
 三、 Triggers in Forms 
 1.所有的BLOCK或是FIELD的TRIGGER的執行類型都是Override或是Before,一般情況下,
   使用的是Before類型,因為通常相同的Trigger在FORM層級同樣也會觸發.
   這個例外是如果彈性域調用了From層次的POST-QUERY ,但是你在BLOCK的POST-QUERY中重置了
   這個塊的查詢狀態,像這種情況, BLOCK層的POST-QUERY必須將執行類型設置為After 
 
 四、使用APPCORE來代替Oracle Forms Built-In, APPCORE包含了一些等同於Oracle Forms built-ins的功能
 
 EXIT_FORM不要直接使用EXIT_FROM,應該始終使用do_key(‘EXIT_FORM’),
 如果需要退出整個Oracle applications suite,應該首先調用copy(‘Y’,’GLOBAL.APPCORE_EXIT_FLAG’);
 然後再調用Do_key(‘EXIT_FORM’); 
 
 SET_ITEM_PROPERTY使用APP_ITEM_PROPERTY.SET_PROPERTY和APP_ITEM_PROPERTY.SET_VISUAL_ATTRIBUTE來代替 
 GET_ITEM_PROPERTY使用APP_ITEM_PROPERTY.GET_PROPERTY來代替 
 OPEN_FORM使用FND_FUNCTION.EXECUTE來代替 
 CLEAR_FORM使用do_key(‘CLEAR_FORM’)來代替
 
 COMMIT使用do_key(‘COMMIT_FORM’)來代替
 
 EDIT_FIELD使用do_key(‘EDIT_FIELD’)來代替,這個程序噹噹前的ITEM是DATE的時彈出Calendar
 
 VALIDATE使用APP_STANDARD.APP_VALIDATE來代替 
 
 五、 Coding Table handlers (參考Oracle Application Developer ’ s Guide)
 
 
 六、設置物件的屬性 
 1. Canvas的大小最大隻能設置到高5 inch 、寬7.8 inch ,目的是為了更好的適應客戶端的環境 
 2.使用APP_CUSTOM.OPEN_WINDOW和APP_CUSTOM.CLOSE_WINDOW來打開和關閉window,
   不過使用go_block也可以達到打開window的功能
 
 3. APP_SPECIAL用來控制菜單項是否可用 
 
 七、設置ITEM的一些屬性
 
1.Text Items
 
 一般情況下,大多數的Text items使用TEXT_ITEM這個屬性類,而需顯示多行的使用TEXT_ITEM_MULTILINE屬性類,
 如果是field是date類型使用TEXT_ITEM_DATE 
 設置它的查詢長度為255個字符
 
 
 2.Date Fields 
 可以使用$$DBDATE$$或是$$DBDATETIME$$來設置作為它的預設日期
 
 
 3.使LOV在ENTER-QUERY模式下應用於一個ITEM ,創建一個ITEM層級的KEY-LISTVAL觸發器,如下: 
 IF (:SYSTEM.MODE != ‘ENTER-QUERY’) THEN 
    LIST_VALUES;  
 ELSE
   SHOW_LOV(‘query lov’); 
 END IF;
 
 
4. Flexfields  
   鍵彈性域使用的是’ENABLE_LIST_LAMP’這個LOV ,並且將驗證設為No ,描述性彈性域不會使用到LOV
 
 
 八、控制Window 、 BLOCK
 
1. 控制運行時期的window
 
 例如在採購訂單窗口包含了一個標籤叫做’Lines’的按鈕,點擊它去到另一個窗口LINES這個塊,需要的步驟如下:
 
 
 第一步:修改以下的Trigger
 
 Trigger : PRE-FORM 
 App_window.set_window_position(‘HEADER’,’FIRST_WINDOW’);
 
 
 Trigger: WHEN-BUTTION-PRESSED 
 app_custom.open_window(‘LINES’); 
 第二步:修改APP_CUSTOM.OPEN_WINDOW
 
 If wnd = ‘LINES’ then 
    App_window.set_window_position(‘LINES’,’CASCADE’,’HEADER’);  
 Go_block(‘lines’); 
 End if;
 
 可用的類型有以下幾種: 
 ◆ CASCADE此類型當子窗口打開的時候,會顯示在父窗口的上面並距離父窗口的右邊0.3,通常使用於明細窗口  
 ◆ RIGHT, BELOW略 
 ◆ OVERLAP略 
 ◆ CENTER略  
 ◆ FIRST_WINDOW通常用於主窗口
 
 
 2.關閉窗口 
 一個FORM具有三個窗口分別是’Header’,’Lines’和’Shipments’,Shipments是Lines的明細窗口,
 而Lines是Header的明細窗口,從邏輯上講關閉窗口如下: 
 Procedure close_window(wnd varchar20 is
 
 If wnd = ‘HEADER’ then
 
App_window.close_first_window;
 
 Elsif wnd = ‘lines’ then
 
App_custom.close_window(‘shipments’);
 
 If (wnd = get_view_property(get_item_property(:system.cursor_item,item_canvas), 
 window_name) then
 
 go_block(‘header’); 
 end if; 
 elsif wnd = ‘shipments’ then
 
 If (wnd = get_view_property(get_item_property(:system.cursor_item,item_canvas),
 
 window_name) then
 
 go_block(‘lines’); 
 end if; 
 end if; 
hide_window(wnd);
 
end;
 
 
3.在執行過程中使用查詢 
 如果你想在打開FORM之前調用一個ROW-LOV或是查詢窗口,在WHEN-NEW-FORM-INSTANCE後面加上:
 
 EXECUTE_TRIGGER(‘QUERY_FIND’); 
(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(2,727)

  • 個人分類:Oracle Form
▲top
  • 5月 11 週日 200810:51
  • Forms裡如何改變鼠標的光標圖形

PACKAGE BODY F_CURSOR IS   --當鼠標指針改變為插入光標位于文本項時的正常形狀
  PROCEDURE CUR_DEFAULT IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');    
  END CUR_DEFAULT;    
  --對過程的等待
  PROCEDURE CUR_BUSY IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'BUSY');    
  END CUR_BUSY;   
  --帶箭頭的幫助標記
  PROCEDURE CUR_HELP IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'HELP');    
  END CUR_HELP;
  --鼠標放在文本項上
  PROCEDURE CUR_INSERTION IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'INSERTION');    
  END CUR_INSERTION;
  --特殊的指針
  PROCEDURE CUR_CROSSHAIR IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'CROSSHAIR');    
  END CUR_CROSSHAIR;
  --鼠標指針位于文本項的箭頭形狀
  PROCEDURE CUR_ARROW IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'ARROW');    
  END CUR_ARROW; 
  --拖曳或復制
  PROCEDURE CUR_COPY IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'COPY');
  END CUR_COPY; 
  --表示對選擇項拖拉有效
  PROCEDURE CUR_DRAGGABLE IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DRAGGABLE');
  END CUR_DRAGGABLE; 
  --手的形狀
  PROCEDURE CUR_HAND IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'HAND');
  END CUR_HAND; 
  --拖拉一個鏈或者快捷鍵
  PROCEDURE CUR_LINK IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'LINK');
  END CUR_LINK;
  --用于縮放的放大鏡 
  PROCEDURE CUR_MAGNIFY IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'MAGNIFY');
  END CUR_MAGNIFY; 
  --拖拉形狀
  PROCEDURE CUR_MOVE IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'MOVE');
  END CUR_MOVE;
  --拖拉無效的項
  PROCEDURE CUR_NODROP IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'NODROP');
  END CUR_NODROP;
  --調整水平大小
  PROCEDURE CUR_RESIZEH IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'RESIZEH');
  END CUR_RESIZEH;
  --調整垂直大小
  PROCEDURE CUR_RESIZEV IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'RESIZEV');
  END CUR_RESIZEV;
  --調整左上角或右下角  
  PROCEDURE CUR_RESIZEUL IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'RESIZEUL');
  END CUR_RESIZEUL;
  --調整右上角或左下角 
  PROCEDURE CUR_RESIZEUP IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'RESIZEUP');
  END CUR_RESIZEUP;
  --調整列 
  PROCEDURE CUR_SIZECOL IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'SIZECOL');
  END CUR_SIZECOL; 
  --調整行
  PROCEDURE CUR_SIZEROW IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'SIZEROW');
  END CUR_SIZEROW; 
  --水平拆分
  PROCEDURE CUR_SPLITH IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'SPLITH');
  END CUR_SPLITH; 
  --垂直拆分
  PROCEDURE CUR_SPLITV IS
  BEGIN       
    SET_APPLICATION_PROPERTY(CURSOR_STYLE,'SPLITV');
  END CUR_SPLITV; 
  --返回當前光標的形狀
  FUNCTION SHAPE RETURN VARCHAR2 IS 
    CUR_SHAPE VARCHAR2(100);
  BEGIN
    CUR_SHAPE:=GET_APPLICATION_PROPERTY(CURSOR_STYLE);  
    RETURN  CUR_SHAPE; 
  END;
  
END F_CURSOR;
(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(568)

  • 個人分類:Oracle Form
▲top
  • 5月 09 週五 200811:32
  • 序號建立

序號
1 增加用戶參數p_row_no,初始值為0 2 增加一個公式列CF_NO,在公式列的PL/SQL程序中這樣寫:
function CF_NOFormula return Number is
begin
  :p_row_no := :p_row_no+1;
  return(:p_row_no);
end;
(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(458)

  • 個人分類:Oracle PL/SQL
▲top
  • 4月 24 週四 200809:51
  • FORM的一般流程

FORM的一般流程
1.用FTP將/home/oracle/vis/visappl/au/11.5.0/中的forms AND resource下傳至本機。

2 在HKEY_LOCAL_MACHINE
SOFTWARE
ORACLE
FORMS60_PATH 中設置路徑。

3:復制forms中的TEMPLATE,重命名,修改。

4:用FTP將/home/oracle/vis/visappl/cux/1.0.0/forms/ZHS/

5: 編譯FORMS

cmd

telnet

open 192.168.01.**

source .app

cd $AU_TOP/forms/ZHS

f60gen $CUX_TOP/forms/ZHS/CUXORDLQ.fmb apps/apps output_file=$CUX_TOP/forms/ZHS/CUXORDLQ.fmx

5: 在EBS中建立表單

6:在EBS中建立功能

7: 分配到菜單

8:分配到責任

9:分配到用戶
(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(627)

  • 個人分類:Oracle Form
▲top
  • 4月 17 週四 200811:30
  • OVER()用法

用over()解決如內容所示的所示
日期 收入 支出 
2000/3/1 50 30 
2000/3/2 45 60 
2000/3/5 60 10 
2000/3/5 60 10 
結果為: 
日期 收入 支出 餘額 
2000/3/1 50 30 20 
2000/3/2 45 60 5 
2000/3/5 120 20 105 
----------------------------------------------
(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(3,171)

  • 個人分類:Oracle PL/SQL
▲top
  • 4月 12 週六 200811:28
  • 在pl-sql可以建像job一樣每日執行

在pl-sql可以建像job一樣每日執行
它會幫你創建一個job,每天都會執行的。就像windows的排定工作 DECLARE 
  V_JOB NUMBER; 
BEGIN 
  DBMS_JOB.SUBMIT(V_JOB,'要執行的過程名','下一次執行時間','間隔'); 
  COMMIT; 
END; 
(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(1,466)

  • 個人分類:Oracle PL/SQL
▲top
  • 3月 11 週二 200811:18
  • Developer/2000中各鍵盤觸發子所對應的“按鍵”

Developer/2000中各鍵盤觸發子所對應的“按鍵”

封裝過程

鍵觸發子

含義

對應按鍵

ABORT_QUERYKey-EXIT[退出/取消] BLOCK_MENUKey-MENU[塊菜單]F5CLEAR_BLOCK[清空塊]Shift+F5 Key-CLRBLKKey-CLRFRM[清空FORM]Shift+F7CLEAR_FORMKey-CLRREC[清空記錄]Shift+F4CLEAR_RECORDKey-COMMIT[提交/存盤]F10COMMIT_FORMKey-CQUERY[計算查詢記錄總數]Shift+F2COUNT_QUERYKey-CREREC[插入新記錄]F6CREATE_RECORDKey-DELREC[刪除記錄]Shift+F6DELETE_RECORDKey-DOWN[下滾記錄]Ctrl+l、下箭頭DOWNKey-DUP-ITEM[復制域/項]F3DUPLICATE_ITEM[復制記錄]F4 DUPLICATE_RECORDKey-DUPRECKey-EDIT[打開編輯器]Ctrl+EEDIT_TEXTITEMKey-ENTER[Enter] ENTERKey-ENTQRY[輸入查詢條件]F7ENTER_QUERYKey-EXEQRY[執行查詢]F8EXECUTE_QUERYKey-EXIT[退出/取消查詢]Ctrl+QEXIT_FORMKey-HELP[幫助]F1HELPKey-LISTVAL[顯示值列表LOV]F9LIST_VALUESKey-UPDREC[LockRecord]LOCK_RECORDKey-NXTBLK[下一塊]Ctrl+Page DownNEXT_BLOCKKey-NEXT-ITEM[下一域/項]Ctrl+Tab、Tab、EnterNEXT_ITEMKey-NXTKEY[定位到下一個主鍵項]Shift+F3NEXT_KEYKey-NXTREC[下一條記錄]Shift+DownNEXT_RECORDKey-NXTSET[下一個記錄集]Ctrl+>NEXT_SETKey-PRVBLK[前一塊]Ctrl+Page UpPREVIOUS_BLOCKKey-PREV-ITEM[前一域/項]Shift+Tab、Shift+Ctrl+TabPREVIOUS_ITEMKey-PRVREC[前一條記錄]Shift+UpPREVIOUS_RECORDKey-PRINT[打印當前屏幕]Shift+F8PRINTKey-SCRDOWN[下翻屏]Page DownSCROLL_DOWNKey-SCRUP[上翻屏]Page UpSCROLL_UPKey-UP[上滾記錄]Ctrl+p、上箭頭UP取消  Esc向後刪除  Backspace清除域/項  Ctrl+U顯示有效的功能鍵列表  Ctrl+F1發生錯誤時,顯示錯誤窗口  Shift+F1   
(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(1) 人氣(2,456)

  • 個人分類:Oracle Trigger
▲top
«1...89

部落格文章搜尋

近期文章

  • oracle table 查表sql
  • 提交處理事務處理介面請求
  • ORALCE開發集
  • 採購到入庫的全過程表
  • JAVA SCRIPT
  • DBA SQL
  • DBA 維護
  • JDeveloper 安裝教學(轉)
  • PO與收料 SQL
  • 其他常用表

最新迴響

  • [20/04/14] 訪客 於文章「SQL 優化語法 (1) ...」留言:
    大大感謝...
  • [20/04/14] 訪客 於文章「SQL 三種JOIN語法的差異 ...」留言:
    讚...
  • [19/07/29] helloworld~ 於文章「PL/SQL 常用轉換函數 (轉)...」留言:
    POWER(m,n) n次方 POWER(2,3) = 23...
  • [19/02/04] Cheng Andy 於文章「PL/SQL 常用轉換函數 (轉)...」發表了一則私密留言
  • [18/06/03] e181979 於文章「oracle table 查表sql...」留言:
    u6tY9Iw奢侈品仿牌,,保固說到做到,,誠信經營,,,年...
  • [14/10/03] 訪客 於文章「SQL 三種JOIN語法的差異 ...」留言:
    幫到我了 感謝...
  • [14/09/17] 訪客 於文章「會計期具有一下五種狀態(轉)...」留言:
    版大你好 小弟是出社會一年的菜鳥 做QA的工作 最近打算轉...
  • [14/07/17] 訪客 於文章「JAVA SCRIPT...」留言:
    非常感谢,非常实用的整理!...
  • [13/03/27] francis namo 於文章「JAVA SCRIPT...」留言:
    HELLO EVERYONE, UNIVERSITY OF ...
  • [13/02/27] YT 於文章「SQL 日期的應用 (轉)...」留言:
    這是個很實用的分享,謝謝您將其整理出來!!...

文章彙整

文章分類

toggle Oracle Tools (3)
  • Oracle 工具安裝 (2)
  • Oracle Trigger (5)
  • Oracle Form (18)
toggle Oracle SQL (3)
  • ORACLE DBA 指令 (3)
  • Oracle PL/SQL (15)
  • Oracle SQL (15)
toggle ORACLE ERP (8)
  • 採購模組 (2)
  • 其它常用表結構 (1)
  • 工具下載 (1)
  • 財務模組 (1)
  • 製造模組 (2)
  • 庫存模組 (2)
  • 業務模組 (2)
  • 專業知識 (2)
toggle 教學影音檔 (1)
  • 教學影音檔 (12)
  • 其它應用 (1)
  • ORACLE INV (1)
  • 未分類文章 (1)

誰來我家

參觀人氣

  • 本日人氣:
  • 累積人氣:

姓名學