RPG Ⅳ基础
度)
------------------------------------------------------------------------------ C ' ' CHECK STRING ST 10 C 10 SUBST(P) STRING:ST RESULT
STRING=' HELLO ',如果不为‘ ’的字符存在,则*IN10= *ON,RESULT='HELLO '
%SUBST(获取字符串)
%SUBST(字符串:开始位置:长度)
%TRIM(清理字符串两边空格) %TRIML(清理字符串打头空格) %TRIMR(清理字符串跟随空格)
C MOVE(P) 'Chris' FIRSTNAME 10 C MOVE(P) 'Smith' LASTNAME 10 C EVAL NAME =
C %TRIM(FIRSTNAME) +' '+ %TRIM(LASTNAME) NAME='Chris Smith',(以上一句也可写为: C EVAL NAME =
C %TRIMR(FIRSTNAME) +' '+ %TRIMR(LASTNAME))
Unit 5. Printing From an RPG IV Program
PRTF-DDS打印文件关键字(主要)
0001.02 A PTTMNU 8S 0O 17 数据类型/键盘换档 对打印机文件而言,选择下列其中一项 : A 输入 A 以指示“字符”数据类型。 S 输入 S 以指示“区化十进制”数据类型。 F 输入 F 以指示“浮点”数据类型。 O 输入 O 以指示“开放式 DBCS ”数据类型。 G 输入 G 以指示“图形 DBCS ”数据。 使用
对于打印机文件而言,输入 O 或保存字段空白以指示仅供输出使用的字段。 位置定位 对非 AFPDS 打印机文件而言,请输入一个介于 1 至255 之间的值,以指示该页上字段的开始位置。对AFPDS 打印机文件而言,请输入一个介于 0.00 至57.79 之间的值,以指示
RPG Ⅳ基础
该页上的位置。
ALIAS:提供字段的替代名称。
00070A FIELDA 25A 1 2ALIAS(CUSTOMERNAME)
CHRID:指示使用替代字符集打印该字段。
CHRSIZ:扩展记录或字段中字符的宽度或高度。
CHRSIZ仅对IPDS打印机和 printer files with device type 为*IPDS或*AFPDS的有效. A TIT002 40A O 14
A SPACEB(002) * CHRSIZ(2.0 2.0)
CPI: 指定每英寸字符数。 00010A R RECORD1
00020A 02 CPI(15) 00030A FLD1 20 3 1 00040A FLD2 5 0 +2
00050A R RECORD2 SPACEB(1) 00060A FLD3 1 如果*IN02 = *ON ,每英寸15个字符;
如果*IN02 = *OFF,由CRTPRTF, CHGPRTF, 或OVRPRTF中指定的CPI参数决定。
DATE(*SYS):显示当前系统日期。 A R REC01
A 1 56
A DATE A 21 2 56
A DATE(*JOB *Y) A 22 2 56
A DATE EDTCDE(Y) A 23 2 56
A DATE(*JOB) EDTCDE(Y) A 24 2 56
A DATE(*SYS) A 25 2 56
A DATE(*SYS *YY) EDTCDE(Y) *JOB:显示当前作业日期 *Y:两位年,*YY:四位年
EDTCDE(Y):加入分隔符(mm/dd/yy)
DFT:打印常数字符或十六进制值。
00050A 7 9DFT('ON') 00060A 8 9'ON'
RPG Ⅳ基础
上两行意义相同
EDTCDE:指定编辑码以编辑数字字段。
00010A QWR 6 0 5 2EDTCDE(Y) QWE=111795,打印为11/17/95。
00010A ERT 8 2 5 2EDTCDE(1 $) ERT=00150000,打印为$1,500.00。
00010A YHN 7 2 5 2EDTCDE(J *) YHN=PACKED ‘0000250D’,打印为***25.00-。 (Y):在月、日之间加‘/’,并禁止最右边的0; (Z):去掉+、-号,且禁止前导0;
(X):转换有符号变量为无符号变量,不禁止前导0。
EDTWRD:提供编辑字以编辑数字字段。
00010A CRY 11 8 5 2EDTWRD(' 0 . %') CRY=12.34567891%(打印值) ('B0B.BBBBBBBB%')
00010A DER 13 2 5 2EDTWRD(' , , , 0 , -') DER=12,345,678,912.34-(打印值) ('BB,BBB,BBB,B0B.BB-') 00010A WDE 8 0 5 2EDTWRD('0 ') WDE=567,打印为00000567(补齐左边的0)
00010A OKM 9 0 5 2EDTWRD('0 - - ') OKM=123456789,打印值为123-45-6789
A FMDATE 8Y 0O 1 70EDTWRD('0 / / ') FMDATE= 1031999, 打印值为01/03/1999
FONT:指定用来打印记录或字段的字体。
00100A FLD4 6S 20 01FONT(4919) 00080A FLD3 6A 16 01
如果没有指定FONT,由CRTPRTF, CHGPRTF, 或OVRPRTF中指定的FONT参数决定。
HIGHLIGHT:以粗体字母打印字段。
A 4 01'AAAAAAAAAAA' A 02N90 HIGHLIGHT
LINE:打印水平行或垂直行。 LINE((纸边)向下位置 (纸边)向内位置 线长 线的方向 线宽 线PAD) 线的方向:*HRZ(水平)、*VRT(垂直)
line-pad:*HRZ(水平)方向:*TOP 、*BOT *VRT(垂直)方向:*LEFT 、*RIGHT
A R REC1 LINE(1.5 3.0 4.25 *HRZ 0.2 *TOP)
LPI:指定每英寸行数。 LPI( 4 | 6 | 8 | 9 | 12)
如果知道页的长度,就可确定行数;
RPG Ⅳ基础
如果没有指定LPI,由CRTPRTF, CHGPRTF, 或OVRPRTF中指定的LPI参数决定。
MSGCON:从指定的信息中复制常数字段之值。
MSGCON(长度 message-ID 库名/ message-file名) 00010A R RECORD1
00020A 2 1MSGCON(10 MSG0001 MESSAGES/MSGF)
OVERLAY:打印覆盖。
OVERLAY(库名/覆盖字段 (纸边)向下位置 (纸边)向内位置) A R REC1 OVERLAY(MYLIB/OVL04 1.234 14.62)
PAGNBR:打印页号。
00100A R RECORD
00110A 1 60'PAGE:' 00120A +1PAGNBR
POSITION:定义该页上命名字段的位置。
POSITION((纸边)向下位置 (纸边)向内位置)(英寸) A R REC1
A FLD1 6S 2 POSITION(2.0 1.983)
REF:提供包含引用字段的文件名称。
00010A REF(LIB1/FILE1 RECORD2) 00020A R RECORD
00030A FLD1 R 2 2
REFFLD:自引用字段复制字段说明。
00060A ITEM4 R 32REFFLD(ITEM LIBY/FILEX)
SKIPA:打印之后,请跳至指定的行号。
00011A FIELDA 132A 1SKIPA(12) 打印之后跳至12行
SKIPB:打印之前,请跳至指定的行号。 A R HEADER
A SKIPB(002) 打印之前跳至(下一页)第一行.(一般定义在表头)
SPACEA:打印之后,请空出指定的行数。
SPACEB:打印之前,请空出指定的行数。
TEXT:指供记录或字段之说明。
00010A R CUSMST TEXT('Customer Master Record'
RPG Ⅳ基础
00020A FLD1 3 0 TEXT('ORDER NUMBER FIELD')
TIME:打印当前的系统时间。
UNDERLINE:指示在该字段底下画线。
00100A ALLOC R 17 11
00101A 03 04 UNDERLINE
Edit Code No CR -Sign -Sign Description Sign Sign (R) (L) Commas and zero balances 1 A J N Commas 2 B K O Zero balances 3 C L P No commas or zero balances 4 D M Q User-defined edit codes 5-9 Date edit (4 digits) W Date edit Y
Suppress leading zeros Z
编辑代码描述 无符号 CR 符号 - 符号 (R) - 符号 (L)
逗号和零平衡 1 A J(I) N 逗号 2 B K O 零平衡 3 C L P 没有逗号或零平衡 4 D M Q 用户定义编辑代码 5-9 日期字段编辑 W
日期编辑 Y(在月,日之间加入/,抑制最左边的零) 抑制前导零 Z
Unit 6. Using the Debugger
调试命令:
ATTR:显示变量的属性(attribute):包括类型(TYPE)和长度(LENGTH) > ATTR VAL
TYPE = ZONED(3,2), LENGTH = 3 BYTES (TYPE可为INTEGER,BINARY, CARDINAL, ARRAY, FIXED LENGTH STRING, RECORD, PTR, CHAR,ZONED)
BREAK:设置断点 (或用F13 (Work with module breakpoints)). > BREAK 40