【正文】
c*相當(dāng)于c eval sum=sum1c sum dsplymultc 3 mult 2 sumc sum dsply c*相當(dāng)于c eval sum=3*2c sum dsplydivc 12 div 3 sumc sum dsply c*相當(dāng)于c eval sum=12/3c sum dsply%rem()取余c eval count=%rem(13:3)c count dsply c*相當(dāng)于c 14 div 3 sum c mvr countc count dsplyc*注意:mvr只能用在div操作碼的后面,不能用在eval sum=14/3的后面,編譯報錯move和movelMove 自右向左取值賦值給int,并右靠齊Movel 自左向右取值賦值給int,并左靠齊Dchar1 s 1a inz(*blank) Dint s 2s 0 inz(*zero ) C eval char1 = 39。 算數(shù)函數(shù)或操作碼 addcl0n01factor1+++++++opcodeamp。(2)export 表明定義的這個子過程可以被外部調(diào)用。(2)、沒有返回值,使用CALLP調(diào)用(注意加粗部分的調(diào)用)庫名:hbrccu文件:exam成員:aaaaDresult s 10i 0 inz(*zero) Da s 10i 0 Db s 10i 0 Dfunction pr Da 10i 0 value Db 10i 0 value Dresult 10i 0 C eval a=10 C eval b=10 C callp function(a:b:result)C result dsply C EVAL *INLR=*ON C RETURN 庫名:hbrccu文件:exam成員:aaaaHnomain Dfunction pr Da 10i 0 value Db 10i 0 value Dresult 10i 0 Pfunction B export Dfunction pi Da 10i 0 value Db 10i 0 value Dresult 10i 0 C eval result=a+b C return Pfunction E 運(yùn)行function后顯示20.注意:(1)在加粗斜體部分,如果改成如下:Dresult 10i 0 value 則表明是值傳遞,在function中調(diào)用改變不影響其外部的值。139。EXAM1039。如果在控制表上沒有標(biāo)定NOMAIN關(guān)鍵字,模塊入口參數(shù)還可以被指定為目標(biāo)程序的入口參數(shù),使用CALL或CALLB操作碼來調(diào)用。139。pppp39。oooo39。hhhh39。139。x1..39。xxxxyyyy39。k1k239。x..39。abcdefghijklmnopqrstuvwxyz39。abcdefghijklmnopqrstuvwxyz39。39。)中。xxxxxx39。)中。xxxxxx39。必須包含字符 af、af 和 09。 x39。UNLOCK:對IN或OUT鎖定的數(shù)據(jù)區(qū)解鎖. 常量十六進(jìn)制文字的格式是:x39。 C RETURN IN :讀數(shù)據(jù)區(qū),當(dāng)因子1是*LOCK時,則設(shè)置了讀鎖,不允許更新。GAODIANHUAC OUT INFO C UNLOCK INFO C EVAL *INLR=39。139。wuqiao39。1》 本地數(shù)據(jù)域*LDA2》 程序初始化參數(shù)數(shù)據(jù)域 *PDA3》 外部描述數(shù)據(jù)域例子Dst_buf ds 60 inz D name 30 D addr 30 C *DTAARA DEFINE dataarea st_bufC*鎖定數(shù)據(jù)區(qū)dataare,讀取信息到st_buf中,并顯示,然后賦于新值C *LOCK IN st_buf C name DSPLY C addr DSPLY C eval name=39。這與為檢索因子 2 中指定數(shù)據(jù)區(qū)中的數(shù)據(jù)并將數(shù)據(jù)寫至此數(shù)據(jù)區(qū),而與 IN 和 OUT 操作一起使用的名稱同名。若未指定因子2,則將結(jié)果字段用作數(shù)據(jù)區(qū)名稱。文件狀態(tài)數(shù)據(jù)結(jié)構(gòu)F FileName CF E WORKSTN INFDS(FileDS)D FileDS DSD FileSt *STATUS數(shù)據(jù)域數(shù)據(jù)類型包括*CHAR,*DEC和*LGL三種。1212121239。0317734879239。1373116956239。 河北省吳橋縣 111139。 高殿華 39。1212121239。0317734879239。1373116956239。 河北省吳橋縣 39。 高殿華 39。INZ關(guān)鍵字會讓系統(tǒng)在程序被激活時,自動按結(jié)C* 構(gòu)各子字段的類型自動初始化,否則上述結(jié)構(gòu)中SFld1字段的值將是一個非法的空格值而不是數(shù)字零。 結(jié)構(gòu)D ParmDS DS 1024D SFld1 5 0D SFld2 200D … …C *ENTRY PListC Parm ParmDSC* 這是我們經(jīng)常使用的一種結(jié)構(gòu)定義方式和使用方式,這種用于傳遞入口參數(shù)的數(shù)據(jù)結(jié)構(gòu),一定不能使用INZ關(guān)鍵字。8字節(jié)相當(dāng)于doubledsply ++0054字節(jié)相當(dāng)于floatdsply ++05 字符串da s 30a inz(*blank)a 單字節(jié)或多字節(jié)n 指示符,單字節(jié) 數(shù)組這里只說明運(yùn)行時數(shù)組darray s 2s 0 dim(12)引用array(下標(biāo)),下標(biāo)從1開始。23用法ile rpg例子變量聲明 整數(shù) (i(整數(shù))、b(二進(jìn)制)、s(區(qū)位十進(jìn)制)、p(壓縮十進(jìn)制))i(整數(shù))只可為20個字節(jié)長。dpos1 s 5i 0 inz(*zero)dpos2 s 10i 0 inz(*zero)dpos3 s 3i 0 inz(*zero)dpos4 s 20i 0 inz(*zero)注意s(區(qū)位十進(jìn)制)dpos5 s 16s 0 inz(*zero) 浮點數(shù)只能定義為4字節(jié)和8字節(jié)df1 s 4f inz(*zero)df2 s 8f inz(*zero)c eval f2=c f2 dsply c eval f1=c f1 dsply 注意在小數(shù)點位數(shù)必須為blank。dcharr s 5a dim(12) 基指針基指針必須為4字節(jié),且必須與 4 字節(jié)邊界對齊。C* 但是,如果該結(jié)構(gòu)不是作為程序入口參數(shù)或是作為下級調(diào)用的接口參數(shù),一般要在工程中約定使用INZ關(guān)鍵字。Dmystru ds D name 20a D age 3s 0D memo 44a D addr 1 20a D tel1 21 32a D tel2 33 42a 或Dmystru ds 68 D name 20a D age 3s 0 D memo 44a D addr 20a overlay(memo:1) D tel1 12a overlay(memo:21)D tel2 12a overlay(memo:33)或Dmystru ds D name 20a