用 VBA 開啟 Office 檔案的方式 (我大多用在 Excel VBA 中, 去開啟另一個 Excel 檔或是 Word 檔)

Scenario 1 : Excel VBA 開啟另一個 Excel 檔案

第一種 :

1. 設定一 Workbook 變數 (ex: Dim tempBook As Workbook)

2. 利用 Workbooks.Open 開啟檔案 (ex: Set tempBook = Workbooks.Open(file))

第二種 :

1. 設定一 Excel.Application 變數 (ex: Dim tempExcel As Excel.Application) 與 Workbook 變數 (ex: Dim tempBook As Workbook)

2. Set tempExcel = New Excel.Application

3. Set tempBook = tempExcel .Workbooks.Open(file)

第二種雖然稍微麻煩點, 但是它可以控制開啟的檔案是否可見

 

Scenario 2 : Excel VBA 開啟一個 Word 檔案

就直接使用第二種方式吧 :)

Posted by Aloz at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

在列印文件到點陣式印表機時, 如果點陣式的紙張為標準大小 (Letter : 21.59mm x 27.94mm), 要正確的把每一頁印在一頁的範圍之內, 這樣連續列印時位置才不會跑掉, 就必須在選擇 [列印], 再調整 [配合紙張調整大小] 選項為 [Letter]. (不可以選擇 [快速列印])

但是每一份文件都要調一次, 那真的會瘋掉, 那就來個 VBA 吧 :)

Posted by Aloz at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

看到對岸論壇有人在問, Customer 主檔的 Business Purpose 中的 Location 欄位可不可以自動給值?

雄雄想到, 我們家的系統一直以來都是自動給值的 (序號), 所以這應該是有一個設定可以調整, 很快的就找到了 :

OM Superuser > Setup > Customers > System Options > Trans and Customers > Automatic Site Numbering

當這個設定有勾選, Location 欄位就會反灰, 在存檔後自動給予一編號, 反之, 則開放給使用者自行給予, 且為必填

 

但是有一點比較怪, 網路上有些資料或畫面會顯示出, Location 欄位會預設抓 Address 1 欄位值, 我就不確定是不是標準功能, 亦或是客製了

Posted by Aloz at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

雖然以下 PL/SQL Code 可以取得, 可是在 3-Tier 架構下, 取到的都是 AP 的 IP 與 Host Name, 不是最終用戶端的資料

DECLARE
   IP_ADDRESS   VARCHAR2(50);
   HOSTNAME     VARCHAR2(50);
BEGIN
   IP_ADDRESS :=   UTL_INADDR.GET_HOST_ADDRESS(); --得到ip
   HOSTNAME :=     UTL_INADDR.GET_HOST_NAME(); --得到機器名
   DBMS_OUTPUT.PUT_LINE(IP_ADDRESS);
   DBMS_OUTPUT.PUT_LINE(HOSTNAME);
END;

不過 Oracle Metalink 上有一篇文章 "How to Get the Physical IP Address of the Client Machine [ID 853971.1]", 我沒試過, 有需要的人可以參考參考

Posted by Aloz at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

不論是客製程式或標準功能, 很常使用到 Lookup Code 的設定, 如果我們要限定某些權限下, 只能看某些 Lookup Code 時, 我們可以從 Function Parameters 下手 :

- 限定某些 Application

VIEW_APPLICATION="XXXX"

APPL_SHORT_NAME="XXXX"

- 限定某些 Lookup Type

LOOKUP_TYPE="OOOOO"

 

如果需要同時限定到 Application 與 Lookup Type, 直接在 Parameter 中輸入兩段, 中間用空白間隔即可

Posted by Aloz at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

如果需要大量的資料匯入, 可以選擇用 SQL Loader, 但是我不會用 (汗)

Oracle 還是很貼心的, 給我們一個 API : FND_GFM, 提供比較直覺的方式, 用 tsv / csv 檔的方式把資料上傳到 Form 上

Posted by Aloz at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

想要找看看, 在 11i 的版本中, 是不是 API 給 Blanket Sales Agreement (BSA) 使用, 結果很遺憾的沒有, 只有 R12 限定 (囧)

Posted by Aloz at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

如何查詢 DB Object 的使用情況, 也就是 Dependency

1. 進入 SQL*PLUS

2. 先設定 Server Out 為 ON : SET SERVEROUT ON

3. 再輸入

BEGIN

DBMS_UTILITY.GET_DEPENDENCY('TABLE', USER, 'EMP');

END;

/

就可以看到該 DB Object 被哪些其他的 DB Object 所使用

第一個參數為該 DB Object 的類型, 例 : TABLE, VIEW, PROCEDURE

第二個參數為該 DB Object 的 Schema

第三個參數為該 DB Object 的名稱

Posted by Aloz at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

之前有寫過一篇 Defaulting Rule 與 Package (http://aloz0101.pixnet.net/blog/post/17066963), 不過裡面沒有提到 Defaulting Rule 的設定方式, 就用這篇來說吧

畫面路徑 : OM > Setup > Rules > Defaulting

範例功能 : 如何設定自動給 Subinventory

步驟 :

Posted by Aloz at 痞客邦 PIXNET 留言(3) 引用(0) 人氣()

有時, 我們會需要在 PL/SQL 寫一些訊息或長字串, 但是如果用到特殊字元, 就必須要做處理 (前面加上 Escape), 如果訊息長, 特殊字元又多, 那就真的很麻煩了, 這時候就可以使用 Quote Operator 了

範例 : SELECT q'#Oracle's quote operator#' FROM DUAL

q 就表示是 Quote Operator

' 就是字串範圍囉....

特別的是 ' 之後接了一個字元, 不見得要使用 #, 使用任一字元都可以, 寫成 SELECT q'COracle's quote operatorC' FROM DUAL 或 SELECT q'!Oracle's quote operator!' FROM DUAL 得到的結果都一樣

Posted by Aloz at 痞客邦 PIXNET 留言(2) 引用(0) 人氣()