Ibm midrange 在AS400中显示新窗口时如何删除以前的窗口

Ibm midrange 在AS400中显示新窗口时如何删除以前的窗口,ibm-midrange,Ibm Midrange,我正在尝试从不同的显示文件显示窗口。即使在提供了RMVWDW之后,新窗口也会与前一个窗口重叠。当从多个显示文件显示窗口时,RMVWDW是否工作? 当从不同的显示文件显示窗口时,在显示新窗口时删除以前的窗口的解决方案是什么?因此,在没有更好的问题描述的情况下,让我试着描述一下发生了什么。我写了一些小程序来帮助你 首先,我们有一个显示文件,只有一个全屏记录和一个窗口。窗口将覆盖全屏记录 DSPF1 关联程序PGM1 **free dcl-f dspf1 workstn; dcl-pr pgm

我正在尝试从不同的显示文件显示窗口。即使在提供了RMVWDW之后,新窗口也会与前一个窗口重叠。当从多个显示文件显示窗口时,RMVWDW是否工作?
当从不同的显示文件显示窗口时,在显示新窗口时删除以前的窗口的解决方案是什么?

因此,在没有更好的问题描述的情况下,让我试着描述一下发生了什么。我写了一些小程序来帮助你

首先,我们有一个显示文件,只有一个全屏记录和一个窗口。窗口将覆盖全屏记录

DSPF1

关联程序PGM1

**free
dcl-f dspf1    workstn;

dcl-pr pgm2 ExtPgm('PGM2');
end-pr;

write record1;
exfmt w01;

pgm2();

*inlr = *On;
return;
显示record1和w01,并等待按下命令键。注意显示器上的两条记录

用户按enter键,调用PGM2。以下是显示文件和程序的源代码。请注意显示文件源中的“假定”关键字。这样可以防止在打开此显示文件时从显示中删除上一个显示文件

DSPF2

DSPF2的程序是PGM2

**free
dcl-f dspf2   workstn ignore(dummy);

exfmt w02;

exfmt w03;

*inlr = *On;
return;
这将显示DSPF2中的第一个窗口,等待命令键按下,然后从DSPF2中删除第一个窗口,并显示DSPF2中的第二个窗口

按enter键时,您会得到:

再次输入以结束两个程序

请注意,PGM2不会删除DSPF1中的窗口。当DSPF2打开时,假设关键字保持PGM1的显示。DSPF1在DSPF2处于活动状态时挂起,因此在DSPF2处于活动状态时无法删除该窗口,除非您从DSPF2中省略ASSUBED关键字。但是,如果省略ASSUBE关键字,则打开DSPF2时,整个显示将被擦除


如果您在调用程序2之前重写屏幕而不使用窗口,我想您可能能够从DSPF1中删除窗口,但您必须在DSPF1上设置
DFRWRT(*NO)
,或者写操作将不足以更新屏幕。

您能给我们一个您看到的屏幕截图吗?很明显,您可能走错了方向。请让我们知道真正的目标,而不是你想要的方式。屏幕截图将大有帮助。另外,将您试图显示的窗口记录的DDS剪切并粘贴到问题中。这正是我面临的情况。我将尝试提供的解决方案。
 A          R W02                       WINDOW(9 20 10 50)
 A                                      RMVWDW
 A                                  5 14'Window 1 from DSPF2'
 A          R W03                       WINDOW(4 5 10 50)
 A                                      RMVWDW
 A                                  5 14'Window 2 from DSPF2'
 A          R DUMMY                     ASSUME
 A                                      OVERLAY
 A                                  1  2' '
**free
dcl-f dspf2   workstn ignore(dummy);

exfmt w02;

exfmt w03;

*inlr = *On;
return;