AS400 - 带有 DDS 的案例(PROTECT 与 WINDOW 关键字)

AS400 - case with DDS (PROTECT vs WINDOW keyword)

我在将 WINDOW 关键字与 PROTECT 关键字一起使用时遇到问题。我想屏蔽 SCR01DS 上的所有字段。为此,我创建了名为 PROTECT 的记录(内部带有 PROTECT 关键字)。

在 DDS 上没有 WINDOW 关键字一切都很好。但是这样记录显示"full screen"。但是如果我想在屏幕的选定部分显示记录 SCR01DS 怎么办?为此,我必须取消注释 WINDOW 关键字。

但是执行此操作后出现问题,记录SCR01DS根本没有显示。

任何人都可以帮助我,如何将 WINDOW 关键字与 PROTECT keword 一起使用?

A* TEST01DF  DSPLF                                         
A                                      CF03(03 'END')      
A          R SCR01DS                                       
A*                                     WINDOW(8 10 15 35)  
A                                  2 21'TEST'              
A                                      DSPATR(RI)          
A            CHECKNUM       2Y 0B  4  2MLTCHCFLD           
A                                      CHOICE(1 'Mushroom')
A                                      CHCCTL(1 &TEST1_)   
A            TEST1_         1Y 0H                          
A          R PROTECT                                       
A                                      OVERLAY             
A                                      PROTECT             

F* TEST01 RPGLE                                   
Ftest01df  CF   E             workstn  prefix(w_) 
 /free                                            
  *inlr = *on;                                    
  w_test1_ = 1;                                   
  dou *in03=*on;                                  
    write scr01ds;                                
    exfmt protect;                                
   enddo;                                         
 /end-free                                        

您的 PROTECT 记录不是 'windowed' 记录。全屏记录

在记录中添加 WINDOW() 关键字:

 A          R PROTECT                                  
 A                                      WINDOW(SCR01DS)
 A                                      OVERLAY        
 A                                      PROTECT   

这应该能满足您的需求。