AS400 宏,输入字段计数

AS400 Macro, input fields count

5250 模拟器:

大家好,我想要一个运算符,它可以计算附图中显示的输入字段。在这种情况下,我有 5 个输入字段。

在此先致谢并致以最诚挚的问候

我不确定这是否可行,但您可能会从 DSM APIs 中找到一些乐趣。

QsnQry5250 有输入字段的最大数量 return 参数,但它可能只显示显示屏上允许的最大数量,而不是屏幕上的数量。

这里有一个例子https://www.ibm.com/support/knowledgecenter/en/ssw_i5_54/apis/dsm1g.htm

还有 API 文档 https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/apis/QsnQry5250.htm

抱歉,我无法提供更多帮助 - 我从未使用过那些 API,也想不出其他方法来实现您的目标。

如果您告诉我们您需要知道屏幕上输入字段的数量的原因,我们可能会建议另一种方法来实现您想要实现的目标。

达米安

可以做到! 下载此来源:http://www.code400.com/ffd.php

您可以从 FFDRPG 中注释掉 GETKEY 部分,因为您不需要它,它可能会导致它无论如何都会崩溃。

此外,请记住,当您使用该命令时,将记录格式名称和显示文件名一起放入 - 不要只将 *FIRST 保留在那里,否则您将只从第一条记录中获取字段显示文件中的格式。

编辑: 您需要向 ListDs 数据结构添加一个额外字段:

D ListDs          DS                 
D  SfFld                  1     10   
D  SfType                11     11   
D  SfUse                 12     12   
D  BufferOut             13     16B 0
D  FieldLen              21     24B 0
D  Digits                25     28B 0
D  Decimals              29     32B 0
D  FieldDesc             33     82   

如果添加第 3 个字段 SfUse,您可以检查它是否包含 'I',因此您只计算 Input Capable 字段。

查看 QUSLFLD API https://www.ibm.com/support/knowledgecenter/en/ssw_i5_54/apis/quslfld.htm 如果您想确切地了解此 API 可以检索哪些信息。

下载中的示例使用最基本的格式 FLDL0100,但如果您要求格式 FLDL0200 或 FLDL0300 可以检索到更多信息,但它们的执行时间会更长,您不需要额外的信息来实现您的目标之后。