资源描述
TIPTOP教材----絕對經典
TIPTOP MRP SYSTEM
INFORMIX-4GL
INFORMIX-SQL
l 目錄:
n TIPTOP總體架構圖
n TIPTOP系統目錄架構
n 各模組TABLE關聯架構圖
n 幾個簡單的UNIX指令
n 幾個重點系統檔z?_file的說明
n INFORMIX-SQL基本語句
n 新增程式執行前的參數設定
n 系統程式cl_***及s_***及q_***.4gl功效
n 程式撰寫范例
4gl程式 :Informix 4gl主程式
per程式 :Informix 4gl屏幕窗口代碼程式
za程式 :Informix 4gl報表表關程式
link程式 :infromix 4gl編譯連接文件
n 結束語
一:TIPTOP系統總體架構圖
TIPTOP是基於UNIX平台,以INFORMIX作數據庫后台,用第四代語言INFORMIX-4GL編寫的一套完整的MRP系統.下圖為TIPTOP整體架購圖.
二:系統目錄架構:
l TIPTOP系統包含的模組
1. 料件基本資料管理系統 2. 產品結構(BOM)管理系統 3. 庫存管理系統 4. 採購管理系統
5. 生產管理系統 6. 成本會計系統 7. 應付結報系統 8. 應收帳款系統 9. 工時收集系統
10. 銷售管理系統 11. MRP
l 各事業單位的開發環境目錄:
1. fcp 竟爭事實群 2. fio 昆山廠 3. fbm2 富弘 4. fbm1 富准
5. fcn 中央 6. fit 資訊系統 7. ftm 熱傳事業處,I/O車件
8. fox 富金廠 fdt1 DT1事業單位
l 模組對應的系統目錄:
1. aim 製造管理系統-庫存管理 2.apm 製造管理系統-採購管理 3.asf 製造管理系統-生產管理 4. axc 製造管理系統-成本會計 5. axm 銷售管理系統 6. axr 應收帳款系統
7. axp 應付帳款系統 8. abm 產品結構管理系統9. axd 工時收集管理系統
l 每個模組都包括以下一些子目錄:
1. 4gl 存入INFORMIX 4GL源程序 2. 4gi41 存放連接后的可執行文件 3. 4go41 存放編譯后的目標文件 4. per 存放用VI編輯的螢幕文件 5. frm 存放編譯后的螢幕文件 6. sql 存放本模組要用的TABLE的CREATE,INDEX語句 7. dc2 存放說明性的文件 8. hlp 存放幫助文件
9. link 存放連接文件 10. za 存放報表表頭文件
l 公用程式目錄
1. sub 存放公用副程式s_*的組合程式 2. lib 存放公用主程式cl_*的組合程式 3. qry 存放公用查存程式q_*的組合程式
三: 各模組TABLE關聯架構圖
見附頁
四: 幾個簡單的UNIX的指令
掌握幾個簡單的常用的 UNIX 操作指令及VI編輯器
文件,目錄操作命令 VI文本編輯器pwd 顯示工作目錄 ESC 命令模式cd 切換目錄 i,a,I,A ,O,o 進入輸入模式Ls 查看目錄 i,h,j,k 光標移動cat 顯示(合併)文件 dd,dw,D,x 行,單詞,字符刪除mkdir 新建目錄 :x 保存並退出rm 刪除文件 :q! 不存盤強制退出cp 拷貝文件 :wY 編輯文件寫回磁盤pr 顯示文件 U 撤銷一次改變passwd 更新用戶口令 . 重複動作rmdir 刪除目錄 Y 拉出行
mv 文件移動 P,p 粘貼行exit 結束登錄
五: 幾個重點系統檔z?_file的說明
1: za_file 報表標題檔
4gl程式調用za_file時抓取load-za后的.za文件
create table za_file(
za01 char(10), 程式代號
za02 smallint, 序號
za03 char(1), 語言別(0/1/2) 0:中文1:英文
za04 char(10), 備註
za05 char(40) ); 標題內容
create unique index za_01 on za_file (za01,za02,za03);
2: zx_file 部門user帳號使用者檔
4gl程式抓取下列欄位,check權限及是否為多工廠管理者
create table zx_file(
zx01 char(10), {使用者代號,(Login user name) }
zx02 char(10), {使用者名稱 }
zx03 char(6), {部門代號 }
zx04 char(10), {權限類別 }
zx05 char(10), {自定目錄編號 }
zx06 char(1), {使用語言別(0.中文/1.英文) }
zx07 char(1), {是否為多工廠使用者(Y/N) }
zx08 char(10), {預設工廠編號 }
zx09 char(10), {目前使用工廠編號 }
zxuser char(10), {OWNER }
zxgrup char(06), {GROUP }
zxmodu char(10), {MODIFY USER }
zxdate date ); {MODIFY DATE }
create unique index zx_1 on zx_file (zx01);
3: zz_file 程式資料檔
create table zz_file(
zz01 char(10), {程式代號, (program code) }
{ Ex:pka0203 , pkb }
zz02 char(36), {程式名稱 }
zz02e char(36), {程式英文名稱 }
zz03 char(1), {程式類別 }
{ M:目錄程式類(Menu) }
{ F:建檔程式類(Form) }
{ T:異動程式類(Transaction) }
{ P:處理程式類(Process )
{ R:報表程式類(Report) }
zz04 char(30), {基本提供執行功能 }
{本程式所提供之基本執行功能 }
{Ex:AQURCOB }
{A:輸入,Q:QBE-查詢,U:更改,R:取消,C:複製, }
{O:QBE-印表,B:單身處理 }
zz05 char(1), {列印選擇條件否 }
{本欄位僅對報表有效, 若設為 'Y', 則於報表}
{結束時列印QBE選擇條件 }
zz06 char(1), {報表檔附加檔名(1).out(2)變動 }
{變動為列印次數 }
zz07 smallint, {延後列印次數 }
{本欄位將於報表延後列印時賦予為系統執行檔}
{附加檔名,並自動更新之. }
zz08 char(40), {UNIX 系統執行指令 }
{ 例:fglgo $SYS/4gi/progcode }
zz09 date, {設計日期 }
zz10 char(4), {程式類別-1 }
zz11 char(4), {程式類別-2 }
zz12 char(4), {程式類別-3 }
zz13 char(1), {可否於建檔作業更改索引欄位資料(KEY) }
{(Y/N), 本欄位僅對建檔作業有效. }
zz14 char(1), {是否於建檔作業查詢資料時顯示合乎條件筆數}
{(Y/N), 本欄位僅對建檔作業有效. }
zz15 char(1), {是否傳遞帳別(Y/N) (For agl system) }
zz16 smallint, {目前報表列印次數 }
{本欄位將於報表列印時賦予為報表檔附加檔名}
{並自動更新之. }
{Ex:若本欄位為43,則產生報表檔:sssrnnn.43r}
zz17 smallint, {報表寬度 (79/132) }
zz18 char(1), {基本使用者資料權限 }
{設定使用者對非自己資料之(查詢/更改/取消)}
{處理權限, 說明如下: }
{ 查詢 更改 取消 }
{處理權限, 說明如下: }
{ 查詢 更改 取消 }
{ 0: Y Y Y }
{ 1: Y Y N }
{ 2: Y N Y }
{ 3: Y N N }
{ 4: N N N }
zz21 char(40), {固定列印條件 }
zz22 char(1), {固定列印方式 }
zz23 char(1), {ISOLATION Mode }
{1.Dirty read 2.Committed read }
zz24 char(1), {Default Wait seconds (0-9) }
zz25 char(1), {Set explain on (Y/N) }
zzuser char(10), {OWNER }
zzgrup char(06), {GROUP }
zzmodu char(10), {MODIFY USER }
zzdate date {MODIFY DATE });
create unique index zz_01 on zz_file (zz01);
4: zt_file 檔案名稱檔
create table zt_file(
zt01 char(10), {檔案編號, (Table name) }
{ Ex:ima_file, zz_file }
zt02 char(36), {檔案名稱 }
zt02e char(36), {檔案英文名稱 }
zt03 char(3), {系統別 }
zt04 char(4), {使用別 }
zt05 date, {產生日期 }
zt06 char(10), {產生者 }
zt07 char(01), {T/S建議 (Table/Synonym) }
zt08 smallint, {No use }
zt09 char(02), {檔案類別(P/M/T/S) }
{ P:參數檔 }
{ M:主檔 (M0:單頭 M1:單身) }
{ T:異動檔 (T0:單頭 T1:單身) }
{ S:統計檔 }
zt10 char(01), {No use }
zt11 char(01), {No use }
zt12 char(01), {No use }
zt13 char(01) {No use });
create unique index zt_01 on zt_file (zt01);
5: zo_file 公司名稱資料檔
6: ze_file 資料變更記錄檔
7: zw_file 權限建立檔
8: zy_file 權限設定檔
五: Informix-SQL的幾個基本語法
1. SELECT語句:
從一個表或是多個表中提取資料
語法:SELECT * FROM table_name
WHERE xxxxxxxx and yyyyyyy
WHERE為條件,以下相同
2. UPDATE語句:
更改表對應欄位的內容
語法:UPDATE table_name
SET xxx01 = x
WHERE xxxxxxxxx and yyyyyyyy
3. DELETE語句:
說明:從表中除資料
語法:DELETE FROM table_name
WHERE xxxxxx and yyyyyyy
4. INSERT語句:
說明:新增資料到表
語法:INSERT INTO table_name(xxxxxxxx)
VALUES(yyyyyyyy)
六: 新增程式執行前的參數設定
執行exe p_zz 出現下列畫面
對新增程式作A 輸入選擇, 輸入設定參數
對基本資料權限作如下說明:
查詢 修改 放棄
0 V V V
1 V V
2 V V
3 V
4
七: 共用程式cl_*和s_*及q_*程式功效
l cl_* 為共用程式
當4GL程式調用公用程式cl_*時必須在link文件里加入其執行文件4go
所在目錄為u\tiptop\lib\4gl>
舉例:
cl_err 為共用程式庫,用來顯示錯誤訊息
Input parameter: p_msg 錯誤訊息的附加說明
err_code 錯誤訊息代碼(可為文字或數字)
p_n 顯示錯誤訊息後是否應按(CR)繼續或停留秒數
0:不必按(CR)繼續 1:按(CR)繼續
1 :停留秒數
cl_repcon 詢問特殊列印條件
(1) 製表日期
(2) 報表收受單位或人員
(3) 選擇語言別
(4) 是否後庭執行本作業 及 執行時間
(5) 選擇列印方式
(6) 列印 份數
cl_cmdask
詢問使用者欲執行程式, 並執行之
cl_wait
顯示等待訊息
cl_used
計錄各程式實際被執行的狀況
Input parameter: p_code - 程式代號
time1 - 起始執行時間
sw - 1:執行開始, RETURN TIME
- 2:執行結束, INSERT (執行的狀況) TO zu_file
cl_outnam(‘wk’) returning l_name 賦于一個報表檔代號
l_name 是返回值
cl_wcshow
顯示組合出的RDSQL指令於螢幕20,21,22,23行
cl_shwtit
顯示程式名稱(PROGRAM NAME)於螢幕第 n 行的中央
Input parameter: p_row 顯示程式名稱行數
p_len 螢墓寬度
p_prog 程式代號
cl_opmg
顯示操作方法於第一,二行
操作方法著重於FUNCTION鍵的使用
Input parameter: p_op_type 操作型態,a:新增,u:更改,q:查詢
b:單身處理,w:多欄查詢,
p:列印條件選擇,
cl_dsmark
顯示 "鼎新電腦製作" 於螢幕左上角
顯示 使用客戶名稱螢幕中央
顯示 Login使用者於螢幕右上角
cl_foxmark
顯示 "資訊科技處製作" 於螢幕左上角 顯示 使用客戶名稱螢幕中央
顯示 Login使用者於螢幕右上角
l s_* 為副程式
副程式因系統而異,但具有多個程式共通使用的程式,
4gl調用副程式s_*時必須在link文件中加入其4go執行文件
所在目錄為u\tiptop\sub\4gl>
舉例:
s_upimg
庫存中更新img檔的副程式
s_tlf
將異動資料放入異動記錄檔中(製造管理)
s_sayc
將金額類數值轉換成中文字
l q_* 查詢副程式
4gl調用查詢程式q_*時必須在link文件中加入其4go執行文件
所在目錄為u\tiptop\qry\4gl>
舉例:
q_ima
料件資料查詢
q_gef
銷售系統單據性質查詢
八: 程式撰寫
(以報表程式faxcr180為例加以講解)
1. Informix-4gl程式:
任何一個獨立的informix-4gl程式必須包含一個主程式main(),程式執行都從main開始,在main程式中可以調用相應的其它4gl程式,比如公有程式,函數程式等,也可以直接調用function,調用公用程式或函數后,返回相應的信息或參數給主程式,最終以end main完成程式的執行.
程式編譯格式:
fglpc faxmr180 生成相應的執行代碼faxmr180.4go存放在當前目錄下
r.c faxmr180 生成相應的執行代碼faxmr180.4go 會自動存放在4gl對應的4go41目錄下
2. za文件:
由於漢字在任何編程語言中都有不易識別的現象,Informix-4gl也不例外,也加上程式編寫員的編寫風格,大多不想把漢字放在程式的語句里,同時可以大大減少程式編譯時對漢字識別的所延擱的時間,程式設計師便把這些漢字歸總在za文件裏,Informix-4gl訪問時調用相應的編譯好后的za文件,不僅僅增加了程式的執行速度,也大大增加了程式的可讀性
程式編譯格式:
load-za faxmr180 編譯好后的za文件實際上是insert into za_file(*),Informix-4gl調用時根據相應的條件提取za_file中的記錄.
3. Link文件:
任何一個應用系統,都有某些功能的獨立需求,簽於Informix-4gl在功能上有許多固有的特性,程式設計師把這些功能做成一個個的小程式,編譯好后放在固定的目錄裏,當informxi-4gl要用到這些功能時,程式便可直接調用這些小小的功能模塊,實現這些功能,大大地減少了程式的冗長,使程式的可讀性更好,也即省了應用系統的存貯空間,增快了的程式編寫的速度,當然也降低了軟件的成本.
格式:
ln xxxxxx > yyyyyyyy
4. per文件:
unix盡管現在也有其window-x的界面,但使用起來並不是很理想,許多程式設計師也以樂意接受命令操作符的形式來處理各種事務,shell也就是相當於ms-dos下的批處理,Informix-4gl在窗口界面的處理上有其自身的特點,它不支持圖形文件,因此看上去就感覺比較單調,但無論如何,Informix-4gl可以處理簡單的線條圖形,它以結構文件的形式面對用戶.
編譯格式為:
原文件為faxmr180.per
form4gl faxcr180 生成窗口格式化文件faxcr180.frm放在當前目錄下
r.f faxcr180 生成窗口格式化文件faxcr180.frm放在對應per之frm目錄下
.frm文件可以在informix-4gl中以語句:
OPEN WINDOW window_name AT 3,8 WITH FROM “.frm” 打開
展开阅读全文