AS400应用技巧

2020-03-27 09:44

应用技巧

此AS400应用技巧资料仅供您参考使用, 请您于使用前测试,

如何于 SQL 中指定 Physical file mult-member ?...有二种方式 :

1. 使用 call procedure 方式, 呼叫系统程序 QCMDEXC , 并使用 OVRDBF 指令,

call Qcmdexc('OVRDBF FILE(QTXTSRC) TOFILE(XXXXXX/QTXTSRC) MBR(TNT0001051) OVRSCOPE(*JOB)',000000074.00000)

2.使用 SQL command : Create Alias

Create Alias CODE/COST97 for CODE/QTXTSRC(COST97)

1.一个好用的数据库维护工具, 可直接维护单笔资料, 也可以使用 Hexadecimal(十六进制)模式进行资料为护, 此工具不支持中文, 但有 Source 可自行修改划面 DDS 属性为 \type,及修改程序有关该划面字段部份即可支持中文.

来自 http://www.midrangecomputing.com/mc/code99.cfm 的数据库维护工具 WRKDBF: All Work and No Pay

2. 想让你的程序 source 或 批注 于编辑时加上色彩吗 ? 如果使用 IBM Client Access 联机程序就可以直接于 SEU 中随意设定颜色, 可整行或片段指定颜色....

1. 利用 Client Access 的 Keyboard setup 即可设定, 将 as400color.txt 存至你的硬盘并更名为 as400color.kmp,

2. 在 Client Access 中选 menu bar \-> \setup\-> \defined\-> 指定键盘设定文件 as400color.kmp -> 确定.

即完成设定. 可使用 W(白),R(红),Y(黄),P(紫),G(绿),B(蓝) 字母 + CTRL(正常) 或 ALT(反白) 键组合, 例如在 SEU 中 设定为插入(insert)模式, 使用 CTRL + \其后面的字会变白色, 若 ALT + \其后面的字会变白色且反白, 其余 R, Y, P, G, B 亦是

亦可下载 RPG Alive 2000 试用版 30 天, 须与 Client Access 搭配使用.

3.于 RPG 中如何将字符转为数字 ? .

IDS001 DS I 1 2 X2 I B 1 20B2 C MOVE X'A0' X1 1 C Z-ADD*ZERO B2 C MOVE X1 X2

在这例子中 X1 = 16 进位 'A0' , 相当于 10 进位 160, 利用数据结构 DS001 定义同一位置, 但不同属性(一为文字 X2, 一为二进制数 B2 ), 将 X1 搬至 X2 右侧, 即可得 B2 =

160. 这个技巧在做字符转换时很好用, RPG 并不提供字符值直接加减(但 C 语言可以),所以须透过转换, 希望未来 RPGIV 能提供 BIF 函数 %Hex 用于直接取用字符值

4. 教你简化报表储存的指令, 系统没有提供指令,但有现成系统程序可用, USER 自己DIY,简单ㄡ.. Step 1.

CRTPF FILE(SPLFTEST) RCDLEN(4083) MAXMBRS(*NOMAX) TEXT('SAVE SPOOLED FILE FOR GETSPLF & PUTSPLF USED')

Step2. Create GETSPLF 指令,(储存报表资料于档案(SPLFTEST)中)

将 Command source copy to AS/400 , CRTCMD CMD(GETSPLF) PGM(QSPGETF)

GETSPLF: CMD PROMPT('Get Spooled File') PARM KWD(FILE) TYPE(*NAME) LEN(10) RTNVAL(*NO) +

RSTD(*NO) MIN(1) MAX(1) FILE(*IN) + FULL(*NO) EXPR(*YES) PASSATR(*NO) + PROMPT('Spooled file') PARM KWD(TOFILE) TYPE(Q1) RTNVAL(*NO) MIN(1) + MAX(1) FILE(*OUT) PROMPT('To data base file') PARM KWD(JOB) TYPE(Q2) RTNVAL(*NO) DFT(*) +

SNGVAL((*)) MIN(0) MAX(1) FILE(*NO) + PROMPT('Job name') PARM KWD(SPLNBR) TYPE(*INT2) RTNVAL(*NO) +

RSTD(*NO) DFT(*ONLY) RANGE(1 1999) + SPCVAL((*ONLY 0) (*LAST -1)) EXPR(*YES) + 5.V3R7 以后 RPGIV 有内建函数 íITC 用来处理数字转成文字输出格式, 此内建 函数 íITC与报表数字输出格式 DDS 定义相同, 但 V3R2 无此内建函数, 可透过 Edit Code API 来达到内建函数 íITC 用来处理数字转成文字输出格式的功能. 数字转成文字格式输出样本 Summary of Edit Codes .....

Convert Edit Code (QECCVTEC) API --- 转换指定之 Edit Code 为输出样本

Edit (QECEDT) API -- 利用Edit Code 输出样本产生格式化数字转成文字输出

数字格式转换程序范例 -- EDTCODR 参数如下:

C EDTCODR plist

C parm SrcVar 欲转换之数字性文字 C parm SrcVarCls '*ZONED' C parm EdtCode 数字格式

C parm CurId 金钱符号

C parm SrcVarPrc 数字性文字位数 C parm SrcDecPos 小数点位数 C parm RcvVar 格式化数字输出 测试数字格式转换程序范例 -- EDTCDETSTR

将二范例程序上传至 AS/400 & Compiled EDTCODR, EDTCDETSTR, 执行 EDTCDETSTR.

6.如何利用 TCP/IP FTP 从 AS/400 下载中文资料或从 PC 上传中文资料至 AS/400 ?....

利用 TCP/IP FTP 作数据传输非常方便, 以下是范例: PC FTP to AS/400 to get DBCS data to PC Client Server

PC -----> AS/400 于 PC DOS 命令列下 FTP command

7. 工具 : PRTRCDINF (Print record information) 打印档案字段格式 ......

1. Copy PRTRCDINF to QCMDSRC 2. Copy RCDINFC1P to QCLSRC 3. Copy RCDINFR1P to QRPGSRC 4. Copy RCDINFP1 to QDDSSRC

5. Compile RCDINFP1, RCDINFR1P, RCDINFC1P 6. CRTCMD CMD(PRTRCDINF) PGM(RCDINFC1)

8.如何从 AS/400 激活 PC windows 应用软件或 从 PC 激活 AS/400 应用软件? ..

Windows 95,98, NT 上需有 REXECD (remote executing)Daemon 程序, 用于接收外界指令, 在 AS/400 使用指令 RUMRMTCMD ,只定 PC 应用软件完整路径, 例如: \

RUNRMTCMD +

CMD('C:\\PROGRAM FILES\\MICROSOFT OFFICE\\OFFICE\\EXCEL.EXE') + RMTLOCNAME('145.59.1.78' *IP) + RMTUSER(user) RMTPWD(userpassword)

同样的, 也可以从 PC 激活 AS/400 程序, PC 上有 REXEC.EXE 程序, 在 AS/400 上需激活 Remote exection server: STRTCPSVR SERVER(*REXEC) REXEC xxx.xxx.xxx.xxx -l QSYSOPR + WRKACTJOB>C:\\data\\actjob.txt

xxx.xxx.xxx.xxx : AS/400 IP address; -l is 小写 L , for username PC 动作 AS/400 REXECD

<------AS/400 传送 PC command to daemon program RUNRMTCMD REXEC

PC 传送 AS/400 command to AS/400 REXEC Server------>

STRTCPSVR *REXEC

REXECD utility 可从 http:\\\\www.denocomp.com\\download.htm 下载

9. 清除报表工具 CLNUSRSPL (Cleanup User Spooled Files), 可指定多个使用者的报表于某日前之报表删除或集中归档, 指令范例 : ..

CLNUSRSPL USRID(AA BB) OPTION(*INCLUDE) DELETEDATE(072499) ACTION(*DELETE) 清除使用者 AA 及 BB 于 1999 年 7 月 24 日(含24 日) 以前的所有报表

CLNUSRSPL USRID(AA BB) OPTION(*OMIT) DELETEDATE(072499) ACTION(*DELETE) 除使用者 AA 及 BB 报表不清除, 清除整个系统其它使用者于 1999 年 7 月 24 日(含24 日) 以前的所有报表

CLNUSRSPL USRID(AA BB) OPTION(*INCLUDE) DELETEDATE(072499) ACTION(*ARCHIVE) + ARCHIVE(OUTQ)

若指定 ACTION(*ARCHIVE) 及 ARCHIVE(OUTQ), 则将报表归档至 OUTQ

10. OPNQRYF 之筛选条件内建函数 %WLDCRD, 可以使用 (Field *EQ %WLDCRD(\挑选 Field 中含有字符 \的数据, 但若要挑Field 中不含有字符 \的资料(Field *NE %WLDCRD(\系统却响应 %WLDCRD 参数错误,要如何解决 ?....

%WLDCRD 内建函数仅应用于 *EQ 运算子,而无法使用于 *NE,所以须使用 *NOT 做逻辑运算 挑选 Field 中含有字符 \的数据 *EQ :

OPNQRYF File(FileA) QRYSLT('Field *EQ %WLDCRD(\挑Field 中不含有字符 \的数据 *NE:

OPNQRYF File(FileA) QRYSLT('*NOT (Field *EQ %WLDCRD(\

11.要如何于 RPG/400 中计算某日为星期几 ?.....

RPG/400 并不支持日期函数, 但可使用 ILE RPG/400 中 ILE CEE API CEEDAYS, CEEDYWK 来计算

Convert Date to Lilian Format (CEEDAYS) API

将文字型态日期转换为流水日数(以1582/10/15为基准日即 1, 1582/10/16 为 2....,依此累计至 9999/12/31)

文字型态日期格式可为 MM/DD/YY, MMDDYY,MM/DD/YYYY, MMDDYYYY等.

Calculate Day of Week from Lilian Date (CEEDYWK) API 以 CEEDAYS 传回之流水日数为参数, 计算星期几, 若传回 1-> 星期日, 2->星期一,..., 7->星期六

此范例以系统日测试, 你可使用任何介于1582/10/15-- 999/12/31之日期测试 :

H*Debug(*yes) D DateMDY S D datfmt(*mdy) D DateAlpha S 8 Inz

C CallB(D) 'CEEDAYS'

C parm inputdate C parm 'MMDDYYYY' datefmt C parm Days C Days DSPLY * C *MDY Move DateMDY Date6n 6 0 C Date6n DSPLY * C Move Date6n Date6c 6 C Date6c DSPLY C CallB(D) 'CEEDAYS' C parm Date6c C parm 'MMDDYY' datefmt C parm Days C Days DSPLY C CallB 'CEEDYWK' C parm Days C parm DayOfweekN C 'DayOfWeek' DSPLY C DayOfweekN DSPLY * For the day of week, 1 indicates Sunday, 2 indicates Monday, .. * 7 indicates Saturday. C Eval *InLR = *On

12.要如何于 SQL/400 同一资料文件(table)中找重复 (Duplicated record) 的资料 ?...

SELECT ALL * FROM file T01 WHERE 1 < (SELECT count(*) FROM file T02 WHERE T01.field = T02.field AND T01.field2 = T02.field2) ORDER BY T01.field asc, T01.field2 asc 上述语法会传回二字段相同的重复 (Duplicated record) 资料

13.System Request 的选项可以修改吗 ? 例如选项 3 DSPJOB, 可改为 WRKJOB 吗 ?... System Request 画面是无法修改, 但是选项执行的指令在有条件下是可以修改的

System Request 选项的指令是放在讯息文件,可输入指令 WRKMSGD CPX2313 , 按执行键

CPX2313 讯息如下:

First-level message text . . . . 'ENDRQS DSPJOB DSPMSG SNDMSG SIGNOFF DSPMSG DSCJOB DSPWSUSR ENDRDBRQS '

于画面上输入 2 于 CPX2313 前之OPT字段 , 修改指令 DSPJOB 为 WRKJOB. 要修改必须字数不得多于原指令字数,且指令起始位置要一致, 例如 WRKJOB 的 W, 要与 DSPJOB 的 D 同一位置


AS400应用技巧.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:信息统计数据分析岗位实习报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: