|
|
RLU的意思为Report Layout Utility(报表设计工具)。
RPG程序设计的初衷就是为了设计报表以供系统打印。随着技术的改进和OS/400版本的不断升级,现在的许多输出设备都已经改变了传统报表的用法,原来使用程序定义定义文件设计报表,目前则经常采用报表设计工具RLU来设计打印文件PRTF,然后再通过RPGIV+PRTF组合来编制程序。
本文将以本地OS/400 V5R2M0为基准,循序渐进地讲解RLU的使用方法,下面以RLU设计一个A3纸型(11×12 inch、链式打印纸)为例。
[size=16:68ad0b6317][b:68ad0b6317]一、PF文件说明:[/b:68ad0b6317][/size:68ad0b6317]
1、EDISYSTEM/QDDSSRC(REFILE)为数据公共字典PF:
[code:1:68ad0b6317]
A* CREATE BY TRF.LIUYUANYAO 2004.12.12
A* DATA DICTIONARY REFERENCE FILE
A*----------------------------------------------------
A R REFMT
**
A* CHARACTER SET
A CODE 5A
A ID 7A
**
A* DBCS-OPEN SET
A NAME1 12O
A NAME2 12O
A DESCRPT 30O
**
A** NUMERIAL SET
A AMOUNT 15 2
A PRICE 11 2
A QUATITY 7 0
**
A** DATE SET
A DATE1 L[/code:1:68ad0b6317]
2、EDISYSTEM/QDDSSRC(EMPLOYEES)为参照数据公共字典的其中一个PF:
[code:1:68ad0b6317]
A* PROGRAMER : TRF.LIUYUANYAO 2004.12.14
A* PROGRAM NAME : EMPLOYEES
A*****************************************************************
A REF(*LIBL/REFILE)
A UNIQUE
A R EMPLOY
A EYCODE R REFFLD(ID)
A COLHDG('雇员码')
A DPCODE R REFFLD(CODE)
A COLHDG('部门码')
A EYNAME R REFFLD(NAME2)
A COLHDG('雇员名')
A SUBTOTAL R REFFLD(AMOUNT)
A COLHDG('小计')
A*
A K EYCODE
A K DPCODE[/code:1:68ad0b6317]
[size=16:68ad0b6317][b:68ad0b6317]二、使用RLU的具体操作步骤:[/b:68ad0b6317][/size:68ad0b6317]
[b:68ad0b6317]2.1 为打印文件选择数据库:[/b:68ad0b6317]
1、在OS/400命令行敲入STRRLU+F4,分别在Source file、Library、Source member输入对应内容,并且定义Page width...198 。
[code:1:68ad0b6317]
Start Report Layout Utility (STRRLU)
Type choices, press Enter.
Source file . . . . . . . . . . > QDDSSRC Name, *PRV
Library . . . . . . . . . . . > EDISYSTEM Name, *LIBL, *CURLIB, *PRV
Source member . . . . . . . . . > LPRTF01 Name, *PRV
Option . . . . . . . . . . . . . 2 2, 6
Page width . . . . . . . . . . . > 198 1-378, *SAME
Text 'description' . . . . . . . > 'DEMO for Design Report'
Bottom
F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display
F24=More keys [/code:1:68ad0b6317]
2、执行后出现如下效果,RLU展示出报表设计屏面。
我们可以使用SEU对其进行编辑:左边的'''''''为功能定义区域,空白区为设计编辑显示区域;左侧开始BASE显示了打印时出标尺;...+... 1 ...+... 2 最大可以定义378个字符位置。
[code:1:68ad0b6317]
Columns . . . : 1 71 Design Report EDISYSTEM/QDDSSRC
RLU==> LPRTF01
BASE ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7
------------------------- Start of Page 001 ---------------------------
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
--------------------------- End of Report -----------------------------
F3=Exit F11=Define field F16=Delete field
F22=Alternative keys F24=More keys
Record length of source file greater than 92. +
[/code:1:68ad0b6317]
3、按F10,输入Library、File、Record,将光标停在Field栏按F4 :
[code:1:68ad0b6317]
Work with Database Fields
Type options, press Enter.
1=Add field 4=Remove 8=Display field description
Option Field Library File Record
1 EDISYSTEM EMPLOYEES EMPLOY
(No database fields selected)
Bottom
F3=Exit F4=Prompt F5=Refresh F12=Cancel F16=Delete all fields
[/code:1:68ad0b6317]
4、出现如下界面后再在Field栏按F4:
[code:1:68ad0b6317]
Add Database Fields
Type choices, press Enter.
File . . . . . . . . . . . EMPLOYEES Name, F4 for list
Library . . . . . . . . EDISYSTEM Name, *LIBL, *CURLIB
Record format . . . . . . EMPLOY Name, F4 for list
Field . . . . . . . . . . Name, F4 for list
F4=Prompt F5=Refresh F12=Cancel
Specify field name.
[/code:1:68ad0b6317]
5、执行后可见下图,键入1=Select,选择数据库所有的字段;然后连续键入3次执行:
[code:1:68ad0b6317]
Select Database Fields
File . . . . . . . . : EMPLOYEES Record . . . . . . . : EMPLOY
Library . . . . . : EDISYSTEM
Position to . . . . . Field
Subset . . . . . . . . *ALL *ALL, name, *generic*
Type options, press Enter.
1=Select 8=Display field description
Column
Opt Field Length Type Heading
1 DPCODE 5 Character DPCODE
1 EYCODE 7 Character EYCODE
1 EYNAME 12 Bracketed DBCS EYNAME
1 SUBTOTAL 15,2 Zoned decimal SUBTOTAL
Bottom
F5=Refresh F11=Display unsorted F12=Cancel
DBCS characters in field DPCODE column heading. Heading defaults to field... +
[/code:1:68ad0b6317]
6、我们可以发现刚才所选择的数据库字段已经放置在设计界面底端。
[code:1:68ad0b6317]
Columns . . . : 1 71 Design Report EDISYSTEM/QDDSSRC
RLU==> LPRTF01
BASE ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7
------------------------- Start of Page 001 ---------------------------
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
--------------------------- End of Report -----------------------------
1:DPCODE 2:EYCODE 3:EYNAME 4:SUBTOTAL
F3=Exit F11=Define field F16=Delete field
F22=Alternative keys F24=More keys
[/code:1:68ad0b6317]
[b:68ad0b6317]2.2 定义记录格式:[/b:68ad0b6317]
打印过程是通过RPGIV程序使用写语句将记录输出写至打印文件。写语句后面所调用的是记录格式,每执行一次RPGIV写程序,就调用一次RLU文件中的记录格式,因此我们首先需要定义记录格式。
1、在左侧定义键入DR(Define Record Format):
[code:1:68ad0b6317]
Columns . . . : 1 71 Design Report EDISYSTEM/QDDSSRC
RLU==> LPRTF01
BASE ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7
------------------------- Start of Page 001 ---------------------------
DR
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
'''''''
--------------------------- End of Report -----------------------------
1:DPCODE 2:EYCODE 3:EYNAME 4:SUBTOTAL
F3=Exit F11=Define field F16=Delete field
F22=Alternative keys F24=More keys
[/code:1:68ad0b6317]
2、键入执行后,可以看见DR定义自动生成的名为RCD001记录格式。
[code:1:68ad0b6317]
Columns . . . : 1 71 Design Report EDISYSTEM/QDDSSRC
RLU==> LPRTF01
BASE ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7
------------------------- Start of Page 001 ---------------------------
RCD001
--------------------------- End of Report -----------------------------
1:DPCODE 2:EYCODE 3:EYNAME 4:SUBTOTAL
F3=Exit F11=Define field F16=Delete field
F22=Alternative keys F24=More keys
[/code:1:68ad0b6317]
3、不够规范吧,那就改名。键入F18,选择记录关键字。
[code:1:68ad0b6317]
Work with Record Keywords
Record format . . . . : RCD001
Type options, press Enter.
2=Specify 4=Remove
Opt Keyword Opt Keyword Opt Keyword
CDEFNT LPI
CHRSIZ PAGRTT
CPI PRTQLTY
DFNCHR SKIPA
DFNLIN SKIPB
DRAWER SPACEA
FNTCHRSET SPACEB
FONT TEXT
HIGHLIGHT
IGCCDEFNT
IGCCHRRTT
INDTXT
Bottom
F3=Exit F5=Refresh F9=Input keyword parameters F10=Rename record
F12=Cancel F16=Remove all keywords
[/code:1:68ad0b6317]
4、再按F10=Rename record,将记录格式名改为:DETAIL。
[code:1:68ad0b6317]
Rename Record Format
Number of keywords . . . . . . . . . : 0
Type choice, press Enter.
Record format . . . . . . . . . . . DETAIL Name
F3=Exit F5=Refresh F12=Cancel
[/code:1:68ad0b6317]
5、连续2次执行键后,记录格式名已经改为了DETAIL。
[code:1:68ad0b6317]
Columns . . . : 1 71 Design Report EDISYSTEM/QDDSSRC
RLU==> LPRTF01
BASE ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7
------------------------- Start of Page 001 ---------------------------
DETAIL
--------------------------- End of Report -----------------------------
1:DPCODE 2:EYCODE 3:EYNAME 4:SUBTOTAL
F3=Exit F11=Define field F16=Delete field
F22=Alternative keys F24=More keys
[/code:1:68ad0b6317]
[b:68ad0b6317]2.3 放置数据库字段:[/b:68ad0b6317]
1、在DETAIL键入VF(View Field)插入字段观察命令:
[code:1:68ad0b6317]
Columns . . . : 1 71 Design Report EDISYSTEM/QDDSSRC
RLU==> LPRTF01
BASE ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7
------------------------- Start of Page 001 ---------------------------
VF
--------------------------- End of Report -----------------------------
& | |