- 論壇徽章:
- 0
|
建議一個(gè)RPG工程步驟。
1.建議一個(gè)library,比如zrplib。 然后在庫(kù)中建立object ,通常有以下幾種object , 數(shù)據(jù)庫(kù)定義文件:QDDSSRC , 畫面文件:QDSPSRC,RPG程序文件:QRPGSRC,帳票還沒(méi)學(xué),以后再補(bǔ)上。
這幾個(gè)文件分別有自己各自的作用,QDDSSRC主要用于建立數(shù)據(jù)庫(kù),在此文件下,建立物理文件和邏輯文件,定義數(shù)據(jù)庫(kù)的字段和長(zhǎng)度等,用A表描述。
QDSPSRC文件下,建立畫面文件,用A表描述。
QRPGSRC文件下,用于寫RPG程序,引入以上的數(shù)據(jù)庫(kù)文件和畫面文件,然后就可以對(duì)文件里的變量進(jìn)行操作啦,不用再定義,可以直接應(yīng)用,主要有,H表:定義時(shí)間,F(xiàn)表:引用文件,E表:定義數(shù)組,I表:定義時(shí)間的格式,C表:操作,所以重點(diǎn)是C表。
簡(jiǎn)單的描述了一下文件結(jié)構(gòu),該說(shuō)說(shuō)細(xì)節(jié)了,免得日后自己用到的時(shí)候又難以記起。
1)首先用STRPDM命令,進(jìn)入編程環(huán)境,進(jìn)入后,用EDTLIBL命令,先加入自己的庫(kù)名稱(zrplib)吧,免得等下編譯不通過(guò),報(bào)個(gè)40級(jí)錯(cuò)誤,嚇人。自己在這點(diǎn)上由于沒(méi)有注意到,所以幾次都載了跟頭,疑惑,上次還能編譯通過(guò)的,怎么這次又不能啦,加上就好啦。
2)進(jìn)入DEBUG模式,也有一點(diǎn)需要注意,不然一開(kāi)始就疑惑,為什么我的不能單步調(diào)試呀,而其他人又可以,一問(wèn)才恍然大悟。原來(lái)RPG程序中,涉及到有數(shù)據(jù)WRITE的,輸入STRISDB后,進(jìn)入的畫面,有個(gè)是否有修改數(shù)據(jù)項(xiàng)(默認(rèn)為*NO),把此項(xiàng)設(shè)為*YES,就可以了進(jìn)行單步調(diào)試?yán)病?br />
3)用IF(只讀)引入文件時(shí)不會(huì)被鎖住的,而用O(只寫)、UF(后面沒(méi)A,只更新)、UF(后面有A,寫/更新)都會(huì)鎖住文件。
4)在給文件定位時(shí)讀取時(shí),有點(diǎn)也要注意,引入文件時(shí)用UF的,如果CHAIN時(shí),會(huì)把文件鎖住,按下F4,在H/N/P項(xiàng)下,輸入N,表示不鎖。(還沒(méi)試過(guò),有空要試試)
5)如果在編輯一本程序時(shí),要參考其他的程序,既要顯示兩個(gè)窗口。在打開(kāi)一個(gè)畫面時(shí),按下SHIFT+F3,然后寫上要參考的程序的MEMBER,OBJECT,LIBRARY名即可。
6)RPG程序中,沒(méi)有局部變量的說(shuō)法,全部都是全局變量。此外,在畫面文件定義功能鍵(用CF定義,畫面上的值可以返回到程序中,用CA定義,不返回,通常用于退出功能鍵),然后在RPG程序,判斷功能鍵是否被執(zhí)行(比如F3),用*IN03 IFEQ ’0' 0既表示被執(zhí)行了,與*OFF對(duì)應(yīng),‘1’表示沒(méi)有被執(zhí)行,與*ON對(duì)應(yīng)。
7)編程時(shí),有錯(cuò)誤時(shí)在所難免的,那如何查看編譯的錯(cuò)誤呢。在命令行,輸入WRKJOB,然后選擇4,進(jìn)入SP文件,然后選擇最后一個(gè)就剛剛編譯出現(xiàn)錯(cuò)誤的文件,選擇5查看錯(cuò)誤信息,在第一個(gè)命令行輸入B,跳到最后一頁(yè),查看總的錯(cuò)誤數(shù)。然后再第二行輸入錯(cuò)誤的序列號(hào),按下 SHIFT+F4就可以跳到錯(cuò)誤的位置。(都是英文的,現(xiàn)在我終于知道英語(yǔ)一直都是多么重要。)
8)在寫入數(shù)據(jù)庫(kù)文件,只能用RECORD名,而讀數(shù)據(jù),既可以用表名,也可以RECORD名。
9)寫入的模式
001.00 C CLEAR*****R
002.00 C ** 一些賦值語(yǔ)句比如MOVE A B
003.00 C WRITE*****R
清空的命令,是把字符清為空,而數(shù)字變?yōu)?
10)MEMBER SIZE的改變
找到對(duì)應(yīng)的OBJECT,按下F10,
Initial number of records 10000 把默認(rèn)的值設(shè)置一下就可以啦
接下來(lái),介紹一些常用的命令:
STRPDM 進(jìn)入編程環(huán)境
EDTLIBL 加入庫(kù)文件
RUNQRY *N 庫(kù)名/object名 查看數(shù)據(jù)庫(kù)的數(shù)據(jù)
CTRLIB 對(duì)LIBRARY的操作
CRTSRCPF(DBCS *YES) 對(duì)OBJECT的操作。注意,如果要寫入中文的,把DBCS項(xiàng)設(shè)為YES
行命令的使用
1. 行的插入( I, In, n=數(shù)字 )
2. 行的刪除( D, Dn, DD )
3. 行的復(fù)制( 復(fù)制內(nèi)容的指定: C, Cn, CC 復(fù)制位置的指定: A, An, B, Bn )
4. 行的移動(dòng)( 移動(dòng)內(nèi)容的指定: M, Mn, MM 移動(dòng)位置的指定: A, An, B, Bn )
5. 行的重復(fù)復(fù)制( 復(fù)制內(nèi)容的指定: CR, CRn, CCR 復(fù)制位置的指定: A, An, B, Bn )
6. 行的復(fù)制( 向空白部分復(fù)制, ( 復(fù)制內(nèi)容的指定: C, Cn, CC 復(fù)制位置的指定: O, On )
7. 一行內(nèi)容的移動(dòng)(L, Ln, LL, LLn, R, Rn, RR, RRn )
8. 文件內(nèi)字符串的查找( F14, F ‘字符串’ <F>)
9. 文件內(nèi)字符串的替換( F14, C ‘字符串1’,’ 字符串2’ ALL)
10. 其他MEMBER的參照( F15 )
11. 編輯內(nèi)容的保存( F3)
小結(jié)完畢。 |
|