如何在 COBOL 中从面板 (ISPF) 呼叫、发送和接收信息

Posted

技术标签:

【中文标题】如何在 COBOL 中从面板 (ISPF) 呼叫、发送和接收信息【英文标题】:How to call, send and receive info from/to a panel(ISPF) in COBOL 【发布时间】:2019-02-15 01:58:02 【问题描述】:

我创建了一个名为 MYPANEL 的 ISPF 面板,其中包含 2 个变量:一个用于名为 INV 的输入(由用户填充),另一个用于名为 OTV 的输出(由程序填充)。我需要的是一个带有 COBOL 程序的示例,关于如何调用面板、如何接收变量 INV 以及如何发送值为 INV + '输出'的变量 OTV。

【问题讨论】:

尝试使用ispf edit model 命令(在 spf 编辑命令行中)。这将生成示例代码 + 有关各种 ISPF 调用的帮助信息。 您使用 display 服务 (ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/…) 来显示面板 你使用 VDefine (ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/…) 来定义变量..在rexx中容易很多 要详细说明 Bruce Martin 的第一条评论,1) 确保您正在使用 COBOL 配置文件进行编辑(希望是带有最后一级限定符 COBOL 的 PDS); 2) 在 MODEL 面板上,您要查看 V1、V2、V3 和 D1,您还需要 W1。 【参考方案1】:

许多年前,ISPF 曾经有一个示例手册。这是 ISPF 4.2 手册(大约 1995 年左右)中 COBOL 示例的链接。

https://www.ibm.com/support/libraryserver_os390/handheld/BOOKS/ISPEXM01/1.2.10.2?SHELF=ez239700&DT=19950613095341&CASE=

在 COBOL(或任何语言)中使用 VDEFINE 时要记住的一点是,它定义了 ISPF 的存储。 ISPF 期望存储一直存在,直到 VDELETE 完成或 SELECT 服务创建的函数池消失。因此,在调用例程执行 VDEFINES 然后返回程序时要小心。被 VDEFINE 调用的例程存储必须仍由主 COBOL 程序拥有,否则您可以获得 0C4。

【讨论】:

以上是关于如何在 COBOL 中从面板 (ISPF) 呼叫、发送和接收信息的主要内容,如果未能解决你的问题,请参考以下文章

使用 ISPF Edit via TN3270 编辑文件时如何插入字符?

ISPF 面板 REXX 中是不是提供 ISPEXEC 服务?

如何使用jcl比较多个文件

没有 ISPF 的文件剪裁

如何以编程方式从应用程序打开呼叫面板

如何在 z/OS 中调用对话框面板命令?