gpt4 book ai didi

ibm-midrange - AS400中显示新窗口时如何删除先前的窗口

转载 作者:行者123 更新时间:2023-12-04 05:10:03 27 4
gpt4 key购买 nike

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

最佳答案

因此,在没有更好地描述问题的情况下,让我尝试描述正在发生的事情。我编写了一些最小的程序来提供帮助。

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

DSPF1

 A          R RECORD1
A 3 19'Base display record'
A 20 18'Base Display Record'
A R W01 WINDOW(7 15 10 50)
A 5 14'Window in DSPF1'

关联程序PGM1

**free
dcl-f dspf1 workstn;

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

write record1;
exfmt w01;

pgm2();

*inlr = *On;
return;

显示record1和w01,并等待按下命令键。注意显示屏上的两条记录。

PGM1 Display

用户按 Enter 键并调用 PGM2。以下是显示文件和程序的来源。请注意显示文件源中的 ASSUME 关键字。这可以防止打开此显示文件时从显示中删除先前的显示文件。

DSPF2

 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' '

DSPF2 的程序是 PGM2。

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

exfmt w02;

exfmt w03;

*inlr = *On;
return;

这将显示DSPF2中的第一个窗口,等待命令键按下,然后从DSPF2中删除第一个窗口并显示DSPF2中的第二个窗口。

Window 1 in DSPF2

当你按下回车键时,你会得到:

Window 2 in DSPF2

再次输入即可结束这两个程序。

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

我想如果您在调用程序 2 之前重写了没有窗口的屏幕,您也许能够从 DSPF1 中删除该窗口,但您必须在 DSPF1 上设置 DFRWRT(*NO),否则写入不足以更新屏幕。

关于ibm-midrange - AS400中显示新窗口时如何删除先前的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55021944/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com