首页 > 学技术 > 技术网文 > IBM AS400应用论坛 > 正文

[原创] 【个人整理系列之一】关于光标取值


来源 chinaunix.net 酷勤网整理

在程序内对于光标定位的取值方式:(以下所有的举例都是RPGLE类型)

1:INFDS中定义 

FXXXXFM  CF   E             WORKSTN INFDS(INFDS) 

D INFDS           DS                  
D*           DISPLAY DATA STRUCTURE   
D  QFSTA            *STATUS           
D  QFCURP               370    371B 0 

C     QFCURP        IFNE      0                
C     QFCURP        DIV       256           ROW  ----行
C                          MVR                       COL  -----列
C                          ENDIF

在DSPF中,
A            ROW          3S 0H 
A            COL           3S 0H



 fairyboy 回复于:2006-07-21 14:15:43

2:使用RTNCSRLOC

在DSPF中定义:

A                                      RTNCSRLOC(&CSRRCD &CSRFLD ) 

A            CSRRCD        10A  H---记录名字段
A            CSRFLD        10A  H---字段名

取出光标所在的显示记录名和所在的字段


 fairyboy 回复于:2006-07-21 14:17:32

3:RTNCSRLOC(*MOUSE &A &B)

取(鼠标)光标所在具体位置
A            A          3S 0H 
A            B          3S 0H


 fairyboy 回复于:2006-07-21 14:18:23

4:RTNCSRLOC(*WINDOW &A &B)

取活动窗口中光标位置


 fairyboy 回复于:2006-07-21 14:39:16

总结:在平时工作中,有的时候需要

在用户交互画面中:当用户在不能的输入字段上,按某个功能键实现查询功能.

如果我们用固定的方式:比如说,F3=用户信息查询,F4:厂家基本信息查询,F5:人员使用查询,也可以满足需求.但是当有很多个时,就不提倡这种做法了.


这时,我们就需要用光标定位来实现上面的功能

一般有2种方式:

1:利用光标的行坐标和列坐标的值等于某个固定值实现
例子:
C     ROW        IFEQ      6             ---当鼠标位置的行坐标等于第6行         
C     COL        ANDGE     28           ---列坐标在28列到32列之间          
C     COL        ANDLE     32                     
C                   CALL      'XXXXX'      XXXXX   
C                   ENDIF                            


2:第2种就是利用光标返回出所在字段名

比如:在DSPF中定义的一个输入字段  USEFLD

那么如果在DSPF定义了,RTNCSRLOC(&CSRRCD &CSRFLD )

那么CSRFLD     IFEQ  'USEFLD'             当光标所在的字段名等于
                       CALL  'XXX'            XXX
                       ENDIF 
 

PS:虽然说不一定是这种方式好,我只是想对平时工作中,对于一个事物的多个处理方法.大家参考一下.有啥写错的地方,还望指出..

下一个系列主要将如何 掌握SUBFILE的多种处理方式...


 just a kid 回复于:2006-07-21 15:12:01

路过,帮顶


 wnai 回复于:2006-07-21 16:16:16

嘻嘻,是个好贴,一般用的比较多的是1,2种, 3,4是在dspf的DDS中定义吗?


 nhxingliang 回复于:2006-07-21 22:03:50

不错哦! 继续!


 arishy 回复于:2006-07-22 08:45:46

路过,不错,顶!


 arishy 回复于:2006-07-22 08:46:57

路过,不错,顶!


 arishy 回复于:2006-07-22 09:02:52

fariyboy (大天使)您好,对于您提出的这几种方式,我们目前只是了其中的F3=用户信息查询,F4:厂家基本信息查询,F5:人员使用查询等,此种方式,还有一种方式就是2:第2种就是利用光标返回出所在字段名,我想学习一下您刚才说的对行列上点击可以调用另外一个程序,有没有好的范例给我一下,谢谢!


 快乐狗 回复于:2006-07-22 18:48:09

支持,顶起


 fairyboy 回复于:2006-07-25 10:31:28

最近没啥目标,整理一些


 wdz315 回复于:2006-07-25 15:34:50

支持一下。经常用前两种!


 tomroom 回复于:2006-07-25 18:18:02

jda 的代码里的确能学到不少好东西


 heqiji 回复于:2006-07-27 17:10:57

受教了,谢谢


 l.rover 回复于:2006-07-29 07:36:07

不错,支持。


 sa_hata 回复于:2006-07-29 09:52:45

8错, 顶个 ...


 Stealer 回复于:2006-08-07 16:59:51

不错,顶




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=796002
转载请注明作者名及原文出处



收藏本页到: