免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4172 | 回复: 16
打印 上一主题 下一主题

COBOL画面显示问题求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-24 08:55 |只看该作者 |倒序浏览
我要先显示RECORD K1,然后在K1上的K1XXXXX 输入值,然后就CHECK,要是有错误的就还是显示RECORD K1,继续输入,要是正确的就显示RECORD D1,D1上显示刚才输入的K1XXXXX 的值,然后显示其他属性,而后有一列用来修改其中的一个属性。

现在问题是我在K1输入值检查有错再显示K1时 和 检查正确后显示 D1时都出现了这个错误
I/O OPERATION FAILED IN PROGRAM PXXXXXA IN GUSER (C D F G).  
请问显示画面的时候该怎么做?谢谢!

DSPF文件

     A*****************************************************************
     A* COMMENT
     A* IF CHANGE TO 132 COL.  *DS3 -> *DS4 MODIFY & EDIT WITH SDA
     A*****************************************************************
     A*%%EC
     A                                      DSPSIZ(24 80 *DS3)
     A                                      CF01(01)
     A                                      CF02(02)
     A                                      CF03(03)
     A                                      CF04(04)
     A                                      CF05(05)
     A                                      CF06(06)
     A                                      CF07(07)
     A                                      CF08(0
     A                                      CF09(09)
     A                                      CF10(10)
     A                                      CF11(11)
     A                                      CF12(12)
     A                                      CF13(13)
     A                                      CF14(14)
     A                                      CF15(15)
     A                                      CF16(16)
     A                                      CF17(17)
     A                                      CF18(1
     A                                      CF19(19)
     A                                      CF20(20)
     A                                      CF21(21)
     A                                      CF22(22)
     A                                      CF23(23)
     A                                      CF24(24)
     A                                      ROLLUP(77)
     A                                      ROLLDOWN(7
     A                                      CLEAR(25)
     A                                      HELP(26)
     A                                      HOME(27)
     A                                      PRINT
     A                                      VLDCMDKEY(29)
     A*****************************************************************
     A          R K1
     A                                      CHGINPDFT
     A                                      OVERLAY
     A                                      PROTECT
     A                                  1 29'XXXXXXXXXXXXXXXXXXXXXXXX'
     A                                      DSPATR(HI)
     A                                  1 72DATE
     A                                      EDTWRD('0  /  /  ')
     A                                  2 72TIME
     A                                      EDTWRD('  :  :  ')
     A            K1XXXXX        2A  B  4 12
     A N41                                  DSPATR(UL)
     A  41                                  DSPATR(RI)
     A  41                                  DSPATR(PC)
     A            K1XXXXXM      20A  O  4 15
     A*****************************************************************
     A          R D1
     A                                      CHGINPDFT
     A                                      OVERLAY
     A                                      PROTECT
     A                                  1 29'XXXXXXXXXXXXXXXXXXXXXXXX'
     A                                      DSPATR(HI)
     A                                  1 72DATE
     A                                      EDTWRD('0  /  /  ')
     A                                  2 72TIME
     A                                      EDTWRD('  :  :  ')
     A            K1XXXXX        2A  O  4 12
     A            K1XXXXXM      20A  O  4 15
     A            D1XXXXXQ      14Y 5O  8 20EDTCDE(N)
     A            D1UNUQTY      14Y 5B 10 15EDTCDE(O)   
     A N38N43                               DSPATR(UL)  
     A  38N43                               DSPATR(PR)  
     A  43                                  DSPATR(RI)  
     A  43                                  DSPATR(PC)  
     A*****************************************************************
     A          R M1
     A            SSFKMTXT      78A  O 23  2
     A            SSMSGID        7A  O 24  2
     A            SSMSGTXT      67A  O 24 10

论坛徽章:
0
2 [报告]
发表于 2008-09-24 09:32 |只看该作者
是不是跟你在 WORKING-STORAGE SECTION 的画面定义有关系呀。
例如:
DATA            DIVISION.
FILE            SECTION.
      FD  DSPF_NAME.
       01  DSP-REC.
           COPY  DDS-ALL-FORMATS OF  DSPF_NAME.


WORKING-STORAGE SECTION.
       01  DSPF-AREA.
         03  K1I-AREA.
           COPY  DDS-K1-I            OF  DSPF_NAME.
         03  K1O-AREA.
           COPY  DDS-K1-O           OF  DSPF_NAME.
         03  D1I-AREA.
           COPY  DDS-D1-I            OF  DSPF_NAME.
         03  D1O-AREA.
           COPY  DDS-D1-O           OF  DSPF_NAME.
         03  M1O-AREA.
           COPY  DDS-M1-O          OF   DSPF_NAME.
         03  INDICS-AREA.
           COPY  DDS-ALL-FORMATS-INDIC    OF  DSPF_NAME.
在显示第二画面的时候:
        WRITE  DSP-REC  FROM   M1O-AREA FORMAT IS "M1"
                                   INDICATORS  M1-O-INDIC.
            WRITE  DSP-REC  FROM   D1O-AREA FORMAT IS "D1"
                                   INDICATORS  D1-O-INDIC.
            READ   DSPF_NAME  INTO   D1I-AREA FORMAT IS "D1"
                                   INDICATORS  D1-I-INDIC.

不知道上面写得和你写的是不是一个方法。仅供参考!!!

论坛徽章:
0
3 [报告]
发表于 2008-09-24 09:36 |只看该作者
那些画面要在WORKING-STORAGE SECTION再定义的吗?还有我的READ 和 WRITE 都没有FROM 和 INTO。

论坛徽章:
0
4 [报告]
发表于 2008-09-24 09:49 |只看该作者
原帖由 KienR9 于 2008-9-24 09:36 发表
那些画面要在WORKING-STORAGE SECTION再定义的吗?还有我的READ 和 WRITE 都没有FROM 和 INTO。


是的,需要在WORKING-STORAGE SECTION那里定义,READ 和 WRITE 都没有FROM 和 INTO这个是cobol里面显示画面的格式,只要你上面定义好了,显示画面的时候就那样写

你的第一画面怎么显示出来的呀,第二画面跟他道理一样呀

论坛徽章:
0
5 [报告]
发表于 2008-09-24 09:50 |只看该作者
现在有了INDICS-AREA,那之前定义的ctl-area 的fkey放那里呢?

论坛徽章:
0
6 [报告]
发表于 2008-09-24 10:07 |只看该作者
那这样用指示器的时候不是用很多层?

论坛徽章:
0
7 [报告]
发表于 2008-09-24 10:18 |只看该作者
原帖由 yzclxw 于 2008-9-24 09:32 发表
在显示第二画面的时候:
        WRITE  DSP-REC  FROM   M1O-AREA FORMAT IS "M1"
                                   INDICATORS  M1-O-INDIC.
            WRITE  DSP-REC  FROM   D1O-AREA FORMAT IS "D1"
                                   INDICATORS  D1-O-INDIC.
            READ   DSPF_NAME  INTO   D1I-AREA FORMAT IS "D1"
                                   INDICATORS  D1-I-INDIC.


编译时说这些didicators已经定义过啊,怎么处理啊?

论坛徽章:
0
8 [报告]
发表于 2008-09-24 10:42 |只看该作者
原帖由 KienR9 于 2008-9-24 09:50 发表
现在有了INDICS-AREA,那之前定义的ctl-area 的fkey放那里呢?



这个在WORKING-STORAGE SECTION这里另外定义就可以
       01  CTL-AREA.
           03  FKEY                       PIC  X(02).
      *---< KEY エリア       >---*
       01  KEY-AREA.
           03  CST-ENTER                  PIC  X(02)  VALUE "00".
           03  CST-F03                    PIC  X(02)  VALUE "03".
           03  CST-F05                    PIC  X(02)  VALUE "05".

这样就可以。

论坛徽章:
0
9 [报告]
发表于 2008-09-24 10:50 |只看该作者
是另外定义的啊,但怎么用呢
READ   DSPF_NAME  INTO   D1I-AREA FORMAT IS "D1"
                                   INDICATORS  D1-I-INDIC .

INDICATORS能用两个的吗?

现在按你的方法还是出现I/O这个错误
运行到WRITE  DSP-REC  FROM   D1O-AREA FORMAT IS "D1"
                                   INDICATORS  D1-O-INDIC OF INDICS-AREA .
时就出错了

论坛徽章:
0
10 [报告]
发表于 2008-09-24 11:02 |只看该作者
INDICATORS可以用多个。

可能是你上下定义的那个地方错了。如果可以你把程序发给我,我给你看看吧。说可能说不清楚。遗憾的是我这边400没有cobol环境。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP