Chinaunix

标题: 哪个老大能帮我理解一下输入规范表的使用和功能吗?谢谢 [打印本页]

作者: 2332909    时间: 2006-09-19 17:32
标题: 哪个老大能帮我理解一下输入规范表的使用和功能吗?谢谢
我看AS/400关于I表资料,一头雾水。。。。。
作者: xiaofish82    时间: 2006-09-19 17:47
不能光看,找个人,找本程序,做做就好了。
作者: xiaofish82    时间: 2006-09-19 17:52
你做开发的话,有个人带一下,找本简单的例子,应该1个月就能上手了。
作者: qkhhrgvh    时间: 2006-09-19 19:00
http://publib.boulder.ibm.com/cg ... S?DT=19940325191514

还是只有自己看.我再给你个例子吧.

00010C                     Z-ADD2         A       20      
00020C                     Z-ADD10        B       20      
00030C                     Z-ADD0         RESULT  20      
00040C           A         MULT B         RESULT         
00050C           RESULT    DSPLY                          
00060C                     SETON                     LR   
00100行,Z-ADD是零加,这一行的意思是定义一个数字型字段A,长度为2,小数位数为0,并且把A赋值为2(A=0+2)。
00020,00030行,分别给B赋值为10,RESULT赋值为20。
00040行,做乘法运算,RESULT=A*B。
00050行,显示RESULT的数值。
00060行,结束程序。
作者: qkhhrgvh    时间: 2006-09-19 19:01
00010F*
00020F*  SAMPLE RPG PROGRAM TO TEST APPEND
00030FCUSMSTP UF  E           K        DISK                      A
00040FCUSDSPF CF  E                    WORKSTN
00050FCUSPRTF O   E             10     PRINTER
00060 *
00070C           START     TAG
00080C                     EXFMTPROMPT
00090C  N21      ACTNUM    CHAINCUSMST               30
00100C           ADD       IFNE 'A'
00110C           *IN30     ANDEQ'1'
00120C                     SETON                     40
00130C  N21 40             GOTO START
00140C                     END
00150C  N21                EXFMTRESPONSE
00160C  N21 30             WRITECUSMST
00170C  N21N30             UPDATCUSMST
00180C  N21                GOTO START
00190C                     WRITEHEADER
00200C           PRINT     TAG
00210C                     READ CUSMST                   45
00220C  N45 10             WRITEHEADER
00230C      10             SETOF                         10
00240C  N45                WRITEDETAIL
00250C  N45                GOTO PRINT
00260C                     CLOSE*ALL
00270C                     SETON                       LR

00030行,定义了一个文件CUSMSTP,U表示可以对文件进行修改,F表示这个文件是全过程文件,E表示这是外部文件,K表示这个文件有关键字,DISK表示是磁盘文件,A表示可以对文件进行增加记录的操作。
00040行,定义文件CUSDSPF,C表示可以对文件进行增加和删除记录的操作,但是没有改变记录的功能,F表示是全过程文件,E表示是外部文件,WORKSTN表示是工作站文件,其实通常表示是一个显示文件。
00050行,定义了文件CUSPRTF,O表示是输出文件,E表示是外部文件,10是溢出指示器,对应于这个文件说,就是当本页面的最后一行被打印以后(要换页的时候),就会置为ON。PRINTER说明这是一个打印文件。
00070行,定义一个TAG,TAG名是START,这是与GO TO相对应的。其实就是一个位置标记。
00080行,PROMPT是显示文件中的记录格式,这一句话就是显示记录PROMPT。

00090行,表示当指示器21是OFF的时候执行这一条语句,本语句表示根据ACTNUM定位CUSMST(CUSMSTP文件中的一个记录),就是找到文件中的一条记录,当查询出错时,指示器30置空。
00100和00140行表示,当ADD(PROMPT中的一个字段)不等于'A'时,并且指示器30为ON(ON='1')时,则把指示器40置为ON。如果指示21为OFF,并且40为ON,则跳回到START执行。
000150行表示当指示器21为OFF时,显示画面RESPONSE(CUSDSPF中的一个记录)。
000160行表示指示器21为OFF,30为ON时,写一条新记录到CUSMST中,如果指示器21和30都为OFF时,则更新当前记录。
000170行表示指示器21为OFF时,则跳转到START。
000190行表示写一条记录HEADER(因为HEADER是打印文件中的记录,其实也就是把记录格式HEADER打印出来)。
00200行,同00070行。
00210行,读CUSMST中的记录(究竟是哪条记录与00090行的定位有关)。
00220行,当指示器45为OFF,10为ON时打印HEADER记录格式。其实就是当还能读到数据,并且要换页的时候打印HEADER。
00230行,把指示器10置为OFF。
00240行,当指示器45为OFF,打印DETAIL记录,其实就是当还能读到记录时,打印记录内容。
00250行,当指示器45为OFF,跳回到PRINT处。
00260行,关闭所有打开的文件。
00270行,结束程序。


自己把代码拷贝到400里面,对着规范表看.OK
作者: qkhhrgvh    时间: 2006-09-19 19:02
我给的第一个例子应该能够直接运行吧,多试试就好了.
作者: 2332909    时间: 2006-09-19 21:13
侠客,谢谢热心帮忙,只是你给的是计算规范表(C)的例子,没有含输入规范表(I)
的内容。我看了好几遍书上例子了,还不懂:
IINPUT1           NS     01      1    CS
I                      OR                1   CA
I                                                               1          25    FLD1
I                       NS     02      2    CY     3 CZ
I                       AND             4    CA
I                                                               1          15    FLDA
I                                                                16       20    FLDB
I                        NS    95
作者: nhxingliang    时间: 2006-09-20 09:04
I在PRGLE 中基本不用了把




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2