as400 RPGLE 等待输入
as400 RPGLE wait for input
我有一个 RPG 程序,它使用命令 DSPLY 打印数据。
当我调用程序时,
我可以看到出现了几毫秒的印刷品,
但它立即关闭。
除了使用显示文件,原生RPG有没有办法让程序等待输入?
是的,您需要为 DSPLY 操作添加一个响应参数:
/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
请注意 - 我目前无法对此进行测试,我只是在此处直接输入代码。
*经过编辑以纳入 Barbara 的精彩观点。
Benny 走在正确的轨道上,但他遗漏了响应参数。
您只需要:
dsply wMessage *EXT wResponse;
程序将等待输入响应。从技术上讲,因为任何响应都需要按下回车键。用户只需输入即可响应。
使用发送用户消息 (SNDUSRMSG) 并提供默认值 [默认回复值 (DFT)] 的 CL 过程可以启用允许暂停的查询,只需按 Enter 键即可继续。 IIRC,即使没有指定默认值,字符串值 *N
也会因用户缺少任何输入而被 returned,当然 return 值小于两个字符return 只有星号;尽管取决于其他设置,这可能不是仅使用 Enter 的效果,而是只能通过 F11=用户查询的删除 [或 F13=清除] 才能看到。或者做 same 代码,使用任何 message-feature API 效果相似;当 运行 作为批处理与交互式时,决定将消息发送到哪里,可能需要代码使用 API 与编码使用内置该功能的 SNDUSRMSG。
注意:这种用法当然会受到作业的查询消息回复处理 (INQMSGRPY) 设置的影响;例如该工作可以设置为默认自动回复,这样查询就不会出现,但这对 consistency/expectation.
来说可能是件好事
我有一个 RPG 程序,它使用命令 DSPLY 打印数据。
当我调用程序时,
我可以看到出现了几毫秒的印刷品, 但它立即关闭。
除了使用显示文件,原生RPG有没有办法让程序等待输入?
是的,您需要为 DSPLY 操作添加一个响应参数:
/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
请注意 - 我目前无法对此进行测试,我只是在此处直接输入代码。
*经过编辑以纳入 Barbara 的精彩观点。
Benny 走在正确的轨道上,但他遗漏了响应参数。
您只需要:
dsply wMessage *EXT wResponse;
程序将等待输入响应。从技术上讲,因为任何响应都需要按下回车键。用户只需输入即可响应。
使用发送用户消息 (SNDUSRMSG) 并提供默认值 [默认回复值 (DFT)] 的 CL 过程可以启用允许暂停的查询,只需按 Enter 键即可继续。 IIRC,即使没有指定默认值,字符串值 *N
也会因用户缺少任何输入而被 returned,当然 return 值小于两个字符return 只有星号;尽管取决于其他设置,这可能不是仅使用 Enter 的效果,而是只能通过 F11=用户查询的删除 [或 F13=清除] 才能看到。或者做 same 代码,使用任何 message-feature API 效果相似;当 运行 作为批处理与交互式时,决定将消息发送到哪里,可能需要代码使用 API 与编码使用内置该功能的 SNDUSRMSG。
注意:这种用法当然会受到作业的查询消息回复处理 (INQMSGRPY) 设置的影响;例如该工作可以设置为默认自动回复,这样查询就不会出现,但这对 consistency/expectation.