如何在cobol中编写单页子文件

时间:2016-07-27 15:15:02

标签: ibm-midrange cobol

我能够使用子文件做很多COBOL程序,但是最近我需要一个关键字来指示页面向下,在遍历子文件时向上翻页按钮。
我设法只在按下 page up 并且它是子文件的第一页时按下关键字指示符,当按下 page down 并且它是子文件的最后一页时,我无法抓住页面页面,所以我查了一下,发现单页子文件可能是指示滚动按钮的唯一方法。
我找到了this example,但我无法弄清楚他们正在使用什么样的编码。

我想要的是使用IBM COBOL / 400的方法。

1 个答案:

答案 0 :(得分:3)

我不太明白你想做什么。但也许以下内容允许您编辑问题以使其更清晰。

首先,您需要了解SFLSIZSFLPAG关键字的含义。

SFLPAG - >一次屏幕上的子文件记录数量 SFLSIZ - >子文件中的记录数

这两个关键字是相关的,可以通过以下方式使用 一次性子文件页 - &gt; SFLPAG = SFLSIZ :您的应用程序必须同时处理 PAGE UP PAGE DOWN < / kbd>按键。您的应用程序一次加载一个屏幕的记录。当可能显示的记录超过9999时,此技术非常有用。

加载所有子文件 - &gt; SFLPAG <> SFLSIZ :您的应用程序会将所有记录加载到子文件中。系统按下 PAGE UP PAGE DOWN 键。您最多只能将9999条记录加载到子文件中。

扩展子文件 - &gt; SFLPAG <> SFLSIZ :您的应用程序一次加载一个记录屏幕。您的应用程序只需要处理 PAGE DOWN 按键。系统将按下 PAGE UP 键。

过去,加载所有子文件仅在记录很少时使用。由于整个缓冲区(即SFLSIZ)被发送到显示设备。在处理2400波特通信线路时,您并不想发送任何您不必要的内容。

扩展子文件是一种妥协,对您的应用程序的工作少一点,只有在需要时才发送数据。

现在,考虑到通信链接的速度,除了要显示的记录超过9999之外,您可以使用加载所有子文件。好处是,如果您碰巧开始使用某种面向Web的工具,该工具可以允许UI在客户端按列进行排序/筛选,因为它具有所有可用数据。

如果您有超过9999条记录,那么如果您真的希望使用能够翻阅10,000多条记录,那么您就会在一个时间子文件中停留一页。 就个人而言,我考虑显示一条告诉用户的消息,而不是超过10,000条记录,并提供一种方法来选择/过滤记录,使其更加合理,适合加载所有子文件。< / p>

要记住的是,5250协议不是一个简单的终端&#34;。您所做的每次按键都不会立即发送给主机。当我说系统处理 PAGE UP PAGE DOWN 时,我的意思是客户端终端(模拟器)处理它。只有在需要时才会将控制权返回给您的应用。例如,如果您使用字段上的VALUES关键字,则验证将在终端侧处理,而不是在服务器上处理。