本處[速查]的意思是,在某一欄位(如“客戶編號“)上,通過點速查按鈕(IFS應用程序里有此按鈕,F8:List of Values..),就會出現一新窗口,裡面就有所有的客戶資料;
例如:要客戶化一張出口統計表
大致欄位如下:
手冊號,..訂單號,報關單號,...廠區(Contract),銷售料號(CatalogNo).........
其中:廠區(Contract)來源於Site表里的Contract(Site表的主鍵是Contract);
而銷售料號(CatalogNo)來源於SalesPart表里的CatalogNo(SalesPart表的主鍵是CatalogNo+Contract);
==>廠區的速查實現起來很簡單.重點描述銷售料號的速查是如何實現的;
1)rose建模,模型如下:
相應包及others里的模型
包EMCIE里的模型
記得存檔成EMCIE.mdl ; EMCIE.cat; Others.cat
2)IFS's Design
新增EMCIE.prj,關聯剛才生成的EMCIE.mdl;
Others里只修改Model Properties里的各來源表的相應Fields的屬性;如下:
再來依次修改EMCIE里的Model Properties,Storage(Oracle),Business Logic(PL/SQL);
相應操作過程此處從略;
記得及時存檔,會產生EMCIE.cre,ExportsDetail.api,ExportsDetail.apy腳本文件;
3)腳本文件的后期修改;
關於.cre文件,只要把storage(&normal)刪除就可,估計那個地方有設定,不生成這語句,我沒有找到;
打開ExportsDetail.apy腳本文件;
找到此語句:
COMMENT ON COLUMN &VIEW..contract
IS 'FLAGS=KMIU-^DATATYPE=STRING(5)^PROMPT=Contract^REF=Site^';
=>“=“后面的'K'表示是主鍵值,RER=Site就是客化后就可以速查廠區的內容,在Site表里找資料;
因為Site表的主鍵就是Contract一個,所以本處沒有什麼可修改的;再看另外的一個語句:
COMMENT ON COLUMN &VIEW..catalog_no
IS 'FLAGS=A-IU-^DATATYPE=STRING(25)^PROMPT=Catalog No^REF=SalesPart^';
請注意此處和上面一樣,但是SalesPart表的主鍵是CatalogNo+Contract;所以要修改==>:
COMMENT ON COLUMN &VIEW..catalog_no
IS 'FLAGS=A-IU-^DATATYPE=STRING(25)^PROMPT=Catalog No^REF=SalesPart(Contract)^';
再查找apy文件中所有的Catalog_No,會找到下面這個(應該有兩處):
ELSIF (name_ = 'CATALOG_NO') THEN
newrec_.catalog_no := value_;
IF (value_ IS NOT NULL) THEN
Sales_Part_API.Exist(newrec_.catalog_no); ==>(newrec_.catalog_no,newrec_.contract)
END IF
>>通常你不修改的話,在導入腳本的地方也過不去,具體參數如何傳,你可以參看包里的過程是如何寫的;
例如上面的,你就可以參看Sales_Part_API.Exist;
4)開始導入腳本:CRE,API,APY;一定要依次順序才可以;
5)開始客戶化apl,app,apt;
run results1:
run result2; http://blog.csdn.net/images/blog_csdn_net/foreveryday007/26389/o_2004082705.jpg