首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >as400 RPGLE等待输入

as400 RPGLE等待输入
EN

Stack Overflow用户
提问于 2016-10-16 09:43:52
回答 3查看 2.8K关注 0票数 0

我有一个RPG程序,它用命令DSPLY打印数据。

当我打电话给程序时,

我可以看到显示了几毫秒的打印,但是它马上就关闭了。

在本机RPG中是否有一种方法可以让程序等待输入,而不是使用显示文件?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-16 18:07:42

是的,您需要向DSPLY操作添加一个响应参数:

代码语言:javascript
复制
/free
dou (response = 'Q');
   // dsply 'Q = Quit' '*EXT' response;
   // Better to let the RPG runtime determine
   // whether to use *EXT (for interactive jobs)
   // or QSYSOPR (for batch jobs).
   dsply 'Q = Quit' '' response;
   if (response <> 'Q');
      // your code here
      dsply yourvar;
   endif;
enddo;
*inlr = *on;
/end-free

请注意-我目前无法测试这个,我只是直接输入这里的代码从我的头脑。

*编辑,以纳入芭芭拉的优秀观点。

票数 3
EN

Stack Overflow用户

发布于 2016-10-17 13:02:45

本尼走在正确的轨道上,但他没有做回应。

你所需要的就是:

代码语言:javascript
复制
dsply wMessage *EXT wResponse;

程序将等待输入响应。从技术上讲,因为任何回复都需要按回车。用户只需输入即可响应。

票数 2
EN

Stack Overflow用户

发布于 2016-10-17 15:20:51

使用默认值提供的默认回复值(DFT)的发送用户消息(SNDUSRMSG)的CL过程可以启用允许暂停的查询,只需按下输入即可继续。IIRC,即使没有指定缺省值,也会由于用户没有输入而返回字符串值*N,当然,返回值小于两个字符将只返回星号;尽管取决于其他设置,但这可能不是仅输入的效果,而是只能在用户查询的F11=Delete或F13=Clear中看到。或者使用任何类似的SNDUSRMSG来执行相同的代码;在以批处理和交互的形式运行时,可能需要决定在何处发送消息,代码使用message-feature vs编码来使用该特性内建的SNDUSRMSG。

注意:当然,这种用法受到作业的查询消息回复处理(INQMSGRPY)设置的影响;例如,作业可以在默认情况下被设置为自动回复,这样查询就不会出现,但这对于一致性/预期可能是一件好事。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40068921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档