经过多年的搜索,我相当确定这是不可能的,但我仍然会问。AS400 RPGLE /操作中的空闲动态变量
问题是,如果您不知道字段名称,是否可以在操作中使用动态变量。例如,我有一个包含几百个字段的数据结构。操作员选择其中一个字段,程序需要从传递的数据结构中知道数据驻留在字段中。所以我们会说有100个字段,字段50是操作员选择操作的字段。该程序将在FLDNAM变量中的字段名称(即字段50)中传递。该程序会读取像这样的正常方式:
/free
if field50 = 'XXX'
// do something
endif;
/end-free
问题是,我将不得不为每个操作代码这100次。例如:
/free
if fldnam = 'field1';
// do something
elseif fldnam = 'field2';
// do something
..
elseif fldnam = 'field50';
// do something
endif;
是否有任何可能的方式对未知的字段执行操作? (即IF FLDNAM(指针数据)='XXX'然后做点什么)
RPG是一种强类型语言。字段必须预先定义,并且字段的名称永远不会被程序以您可以检索或动态指定的方式获知。你可以使用数组,还是所有的字段都不一样? – jmarkmurphy
嗨。感谢您的回应。我想如果需要使用数组,只是为了更快的处理。我将加载一个数据区域以及一个字段名称数组,然后是一个位置数组。代码可能会变得非常复杂,但是如果您不能使用动态变量,那是我的备份计划。所有的字段都是不同的长度,有些是十进制的,等等。我知道可以通过数组来工作,但是我想知道是否有其他选项。 – user1420914
绝对可以这样做。想想一个查询。它在开始之前是否知道你想要的领域?它可以帮助你选择字段吗? – danny117