rpgle - 使用 RPG 和 DSPF 转到文本字符串中的第 n 个字符
问题描述
我有一个运行交互式 DSPF 的程序。现在我在 RPG 程序中用字符填充一个字段。前两个字符'ab'。但是我想要的是,当我通过我的 DSPF 时,当我选择该字段时,光标位于“a”下方,因为这是该字段的第一个位置。我想跳到该字段的第三个位置,这样我的光标就在我的输入之后,这样我就可以轻松地继续输入,而不是按箭头键。只是想知道是否有办法做到这一点。我已经知道 DSPATR(PC) 但这可以确保它到达我想要第三个位置的第一个位置。CURLOC 是记录级别,对我没有帮助,我只希望将这个文本字符串定位在第三个字符,而不是在第一个标签上。我也希望可以选择更改前 2 个字符,这就是为什么我没有简单地将它们设为变量并将它们连接起来,或者只是在幕后合并。我只想制表符到文本字符串,光标位于第三个字符位置。
解决方案
我认为CSRLOC
是你的答案..
来自文档
关键字的格式为:
CSRLOC(字段名-1 字段名-2)
关键字的参数值指定两个字段的名称,其内容是光标位置的行号(对于 field-name-1)和位置号(对于 field-name-2)。field-name-1 和 field-name-2 是 3 字节、分区十进制、隐藏字段。您的程序使用这些字段来告诉 IBM® i 操作系统将光标定位在何处。
A R RECORD1 CSRLOC(LINNBR POSNBR)
A TITLE 40 B 1 2
A PAGE 5Y OB 1 60
A TEXT 1760 B 2 1
A LINNBR 3 OH
A POSNBR 3 OH
它的记录级别这一事实并不重要,因为 I/O 是通过记录而不是字段完成的。当记录是EXFMT
光标时,光标将定位在您请求的位置。
如果这不起作用,您唯一可能的选择是摆脱显示文件并使用动态屏幕管理器 (DSM) API直接与屏幕交互。
推荐阅读
- typescript - Typescript CI/CD 将类型错误发布到 github pr
- reactjs - 将新项目添加到状态反应
- reactjs - React-Burger-Menu 在 localhost 上工作,但在推送到 Surge.sh 时不起作用
- gcc - 如何在函数中返回寄存器 YMM0/1 中的两个 256 位 YMM 值(不涉及内存)
- javascript - 节点上 Socket IO 的 cURL 请求(Express)
- sql - Create a complex index on SQL Server
- python - 需要用于 ECS 帮助的 Python Boto3
- excel - 如果 TextBox 值高于 VBA 中的特定单元格,则显示错误消息
- docker - 如何将文件从 GitLab Runner 助手容器复制到构建容器?
- python - 我可以使用 boto3 获取 IAM 密钥状态(活动或非活动)更改的日期吗?