首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Readc with Chain in rpgle

Readc with Chain in rpgle
EN

Stack Overflow用户
提问于 2014-05-26 14:37:07
回答 2查看 3.2K关注 0票数 0

我有一个Windows子文件,其中只有几个输出字段和一个字符选项字段。我希望用户在选项字段中输入'X‘。如果他输入了错误的选项,我只是简单地突出显示字段,我的问题是:字段被突出显示,但用户的输入值不会保留在选项字段中。它就消失了。我正在使用以下技巧:

代码语言:javascript
运行
复制
DOW not *IN26;
  write sflctl;
  write footer;
  read sflctl;

  readc sfl;
  dow not %eof();
    chain rrn sfl;
    if %found();
      if fldoption <> 'X' and fldoption <> *blanks;
        *IN25 = *on;      //highlight;
        flag_ok = 0;
        update sfl;
      elseif fldoption = 'X';
        flag_ok = 1;
        *in25 = *off;
      endif;
    endif;
    if flag_ok = 1;
      *IN26 = *ON;
    else;
      *IN26 = *OFF;
    endif;
    readc sfl;
  enddo;
enddo;

字段被精确地突出显示,但fldoption中的错误值不会保留在那里。我犯了错误,因为我只有4个月大的RPG。

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-05-27 00:25:58

您的选项字段可以使用usage I input only进行定义,如果是这样,则应将其更改为B both (input I output)。

一旦您使用READC读取子文件记录,就不需要对同一记录执行CHAIN操作。

当我重写显示错误的子文件记录时,我有时会对子文件记录使用SFLNXTCHG keyword,它将设置记录级MDT (已修改数据标记)。然后,在我重新执行屏幕,并再次执行READC循环后,该子文件记录将被发现为已更改的记录之一,即使用户没有再次触摸它。

票数 3
EN

Stack Overflow用户

发布于 2014-06-20 17:33:01

需要检查的一点是字段使用选项,无论它是Warren提到的B还是I。总而言之,如果您出于任何特定原因而不执行此验证。为什么不在显示文件本身中使用字段级别的关键字值?这可以去掉几行代码。http://publib.boulder.ibm.com/infocenter/iadthelp/v6r0/index.jsp?topic=/com.ibm.etools.iseries.langref2.doc/rzakcmstdfval.htm

而且由于它的Windows子文件,为什么不使用带有指示器的Change(NN)记录级别关键字来捕获更改并重新读取,甚至SFLNXTCHG也可以使用。是的,选项很多,但重要的是它应该做到这一点。

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

https://stackoverflow.com/questions/23864107

复制
相关文章

相似问题

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