2

我有一张名为

EQRECORDS

如下-

 A          R REQ                                                                                              
  A            FNAME         10A                                                                                  
  A            LNAME         10A                                                                                  
  A          K FNAME                  

和程序如下 -

fEQRECORDS if   e           k disk                
d uwvar2          s             10a   inz('ANKUR')
 /free                                            
  setll *loval req;                               
  reade uwvar2 req;                               
  dow not %eof(eqrecords) and not %error;         
    dsply lname;                                  
    reade uwvar2 req;                             
  enddo;                                          
  *inlr = *on;                                    
 /end-free    

第一次执行 READE 时,如果我想使用 Eval 查看 Fname 的值。为什么显示为空白?

表中数据如下——

**FNAME       LNAME** 
VIKASH      SHUKLA
VIKASH      SHUKLA
ANKUR       VERMA 
ANKUR       MEHTA 
VIKASH      MISHRA
VIKASH      GUPTA 
ANKUR       GUPTA 
BHASKAR     MISHRA
CHINTU            
BHUVI       GUPTA 
4

3 回答 3

1

我假设您在调试器中使用“eval”。如果您在 H-spec 或编译命令上有 OPTION(*NOUNREF),则调试器中没有未引用的字段。将 OPTION(*UNREF) 放入您的 H-spec 以包含它们。

于 2014-10-07T20:28:21.230 回答
0

我得到了这个问题的解决方案。我在 H-spec 中使用了 debug(*input) 并得到了结果。

试试这个链接... 关于调试的描述(*输入)

于 2014-10-08T05:32:32.293 回答
0

发布给您带来问题的确切代码。这应该有效:

 fEQRECORDS if   e           k disk
 d uwvar2          s             10a   inz('ANKUR')
 d message         s             50a   inz
  /free
   setll *loval req;
   reade uwvar2 req;
   dow not %eof(eqrecords) and not %error;
     message = %trimr(fname) + ' ' + lname;
     dsply message;
     reade uwvar2 req;
   enddo;
   *inlr = *on;
  /end-free
于 2014-10-07T14:11:35.727 回答