*教你一招(如何在RPG里取系统值----例如取光标位置)

发表于:2007-05-26来源:作者:点击数: 标签:
FAAAAADCFEWORKSTN FKINFDS#INFDS I#INFDSDS IB3703710W@CUR CW@CURDIV256W@LIN30-------光标横坐标 CMVRW@POS30-------光标纵坐标 这是取系统光标的方法,其他还有好多系统值也可以取,希望斑竹或高手们跟贴,补充,共同提高! USING_AS400 回复于:2004-12

FAAAAAD     CF  E                          WORKSTN                           
F                                                   KINFDS #INFDS        
I#INFDS      DS                                                     
I                                 B 370 3710W@CUR                
C           W@CUR     DIV  256        W@LIN   30         -------光标横坐标  
C                             MVR               W@POS   30        -------光标纵坐标 

这是取系统光标的方法,其他还有好多系统值也可以取,希望斑竹或高手们跟贴,补充,共同提高!

 USING_AS400 回复于:2004-12-03 21:06:47
好!试试看!

 bonbonben 回复于:2004-12-03 21:41:40
还有此等妙招,试试看。

 thursday 回复于:2004-12-06 08:53:53
怎么没人补充阿?我也想学点新的取 系统值的方法阿!?

 xuguopeng 回复于:2004-12-06 09:00:06
[code:1:9ba54be09d]0004.00 D                SDS              
0005.00 D PGMID                   1     10     程序ID
0006.00 D WSID                  244    253    工作站ID
0007.00 D USRID                 254    263   用户ID[/code:1:9ba54be09d]
:m01:

 thursday 回复于:2004-12-06 09:15:56
[quote:9ca11f85cd="xuguopeng"][/quote:9ca11f85cd]

版主说的是RPGLE的吧?怎么只写代码,不加注释阿?

 blogliou 回复于:2004-12-06 16:18:32
你这是如何取显示文件光标位置的办法,与取“系统值”不是一回事,
一般说的“系统值”可以用wrksysval查看,编程序可以写一个cl程序,用rtvsysval命令可提取。

 thursday 回复于:2004-12-06 16:26:23
[quote:33ebb23b25="blogliou"]你这是如何取显示文件光标位置的办法,与取“系统值”不是一回事,
一般说的“系统值”可以用wrksysval查看,编程序可以写一个cl程序,用rtvsysval命令可提取。[/quote:33ebb23b25]

兄弟,那贴点代码供大家学习一下阿?

 blogliou 回复于:2004-12-06 16:56:16
[quote:c37ed0a432="thursday"]

兄弟,那贴点代码供大家学习一下阿?[/quote:c37ed0a432]


比如提取系统时间,下面例子通过提取QTIME系统直来计算程序运行时间:

[code:1:c37ed0a432]PGM

DCL        VAR(&STRTIM) TYPE(*DEC) LEN(7 0)  
DCL        VAR(&STRTIMC) TYPE(*CHAR) LEN(7)  
DCL        VAR(&ENDTIM) TYPE(*DEC) LEN(7 0)  
DCL        VAR(&ENDTIMC) TYPE(*CHAR) LEN(7)  
DCL        VAR(&TTIME) TYPE(*DEC) LEN(7 0) 


RTVSYSVAL  SYSVAL(QTIME) RTNVAR(&STRTIMC) 
CHGVAR     VAR(&STRTIM) VALUE(&STRTIMC)   

.....(处理)

RTVSYSVAL  SYSVAL(QTIME) RTNVAR(&ENDTIMC)   
CHGVAR     VAR(&ENDTIM) VALUE(&ENDTIMC)     

CHGVAR     VAR(&TTIME) VALUE(&ENDTIM- &STRTIM)  

。。。。

ENDPGM[/code:1:c37ed0a432]

 thursday 回复于:2004-12-07 09:42:06
[code:1:6fe74e4140]
     PGM
             DCL        VAR(&DATE1) TYPE(*CHAR) LEN(6)
             DCL        VAR(&TIME1) TYPE(*CHAR) LEN(6)
 
             RTVSYSVAL  SYSVAL(QTIME) RTNVAR(&TIME1)
             RTVSYSVAL  SYSVAL(QDATE) RTNVAR(&DATE1)

       SNDPGMMSG  MSG(&DATE1 *CAT &TIME1)

      \END:    ENDPGM


[/code:1:6fe74e4140]

这个可以执行的!^-^

 thursday 回复于:2004-12-07 09:48:09
众人拾柴火焰高,期待着你的参与!

分享你的心得!

 居士 回复于:2004-12-07 13:56:00
好贴,鼓掌~~

原文转自:http://www.ltesting.net