免费注册 查看新帖 |

Chinaunix

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

cobol做画面,不能显示记录,请各位大侠帮忙。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-06 09:53 |只看该作者 |倒序浏览
dspf如下:
     A*%%TS  SD  20101130  121006  TEST1  REL-V5R3M0  5722-WDS
     A*%%EC
     A                                      DSPSIZ(24 80 *DS3)
     A                                      INDARA
     A                                      PRINT
     A                                      CF03(99 'EXIT')
     A          R SFL01                     SFL
     A*%%TS  SD  20101130  114609  TEST1  REL-V5R3M0  5722-WDS
     A            ELEMTYPE  R        O  6 11REFFLD(PGMFREC/ELEMTYPE TESTLIB/PGMF)
     A                                      DSPATR(HI)
     A            PGMFLEV   R        O  6 28REFFLD(PGMFREC/PGMFLEV TESTLIB/PGMF)
     A                                      DSPATR(HI)
     A          R SCL01                     SFLCTL(SFL01)
     A*%%TS  SD  20101130  121006  TEST  REL-V5R3M0  5722-WDS
     A                                      BLINK
     A                                      OVERLAY
     A  90 98                               PUTOVR
     A  90                                  SFLDSP
     A N91N92                               SFLDSPCTL
     A  91                                  SFLINZ
     A  92                                  SFLCLR
     A N93                                  SFLEND
     A                                      SFLPAG(0010)
     A                                      SFLSIZ(1000)
     A                                  2 10DATE
     A                                      EDTCDE(Y)
     A                                  2 64SYSNAME
     A                                  4 10USER
     A                                  2 29'PGMF'
     A                                  5 11'Element Type'
     A                                  5 28'Promote Lock Level'
     A          R SFL01T
     A*%%TS  SD  20101130  115332  TEST  REL-V5R3M0  5722-WDS
     A                                 21 11'F3=Exit'

cobol如下:
       IDENTIFICATION DIVISION.
      *
         PROGRAM-ID.        TESTPGM.
         AUTHOR.            TEST1.
         DATE-WRITTEN.      2010-12-01.
         DATE-COMPILED.     2010-12-01.
      ***************************************************************
      *
      *2222222222
      ***************************************************************
       ENVIRONMENT DIVISION.
      *
         CONFIGURATION SECTION.
          SOURCE-COMPUTER.      AS400.
          OBJECT-COMPUTER.      AS400.
      *
         INPUT-OUTPUT SECTION.
          FILE-CONTROL.
             SELECT DISPFILE
                           ASSIGN TO WORKSTATION-TEST26
                           ORGANIZATION IS TRANSACTION
                           ACCESS      IS SEQUENTIAL.

      *
      **************************************************************
      *
      *3333333333
      **************************************************************
       DATA DIVISION.
      *
         FILE SECTION.

          FD  DISPFILE
                     LABEL RECORDS ARE OMITTED
                     DATA RECORD IS DISP-REC.
          01  DISP-REC.
                     COPY DDS-ALL-FORMATS OF TEST26.
          05 SFL01-I REDEFINES TEST26-RECORD.
             06 SFL01-I-INDIC.
                  07 IN99         PIC 1 INDIC 99.
          05 SCL01-I REDEFINES TEST26-RECORD.
             06 ELEMTYPE              PIC X(4).
             06 PRLKLEV               PIC X(6).
          05 SCL01-O REDEFINES TEST26-RECORD.
             06 ELEMTYPE              PIC X(4).
             06 PRLKLEV               PIC X(6).

         WORKING-STORAGE SECTION.
      *
          77  IND-OFF             PIC 1   VALUE B"0".
          77  IND-ON              PIC 1   VALUE B"1".
      *
      *************************************************************
      *
       PROCEDURE DIVISION.
      *

       BEGIN.
           OPEN I-O DISPFILE.
      *
           PERFORM DISPLAY-SCREEN THRU READ-AND-PROCESS-SCREEN
                   UNTIL IN99 IN SFL01-I-INDIC = IND-ON.
           CLOSE DISPFILE.
           STOP RUN.
       DISPLAY-SCREEN.
           WRITE DISP-REC FROM SFL01-O FORMAT IS "SCL01"
                          INDICATORS ARE SFL01-I-INDIC.
       READ-AND-PROCESS-SCREEN.
           MOVE "CCCC" TO ELEMTYPE OF SFL01-O.
           MOVE "DDDDDD" TO PRLKLEV OF SFL01-O.
           MOVE ELEMTYPE OF SFL01-O TO ELEMTYPE OF SFL01-I.
           MOVE PRLKLEV OF SFL01-O TO PRLKLEV OF SFL01-I.
           READ DISPFILE INTO SCL01-I FORMAT IS "SCL01"
                             INDICATORS ARE SFL01-I-INDIC.


可显示画面,但不能显示记录,请各位帮忙,谢谢!

论坛徽章:
0
2 [报告]
发表于 2010-12-06 14:13 |只看该作者
http://blog.sina.com.cn/s/blog_5f18ff880100dcxr.html
这是我过去写的,不知道是否对你有帮助?

论坛徽章:
0
3 [报告]
发表于 2010-12-06 16:40 |只看该作者
netdoger ,谢谢你的回答,但经测试可以显示画面,但记录一样显示不出来。

论坛徽章:
0
4 [报告]
发表于 2010-12-07 08:35 |只看该作者
可惜现在没有机器测试,否则我可以试试

论坛徽章:
0
5 [报告]
发表于 2010-12-07 10:34 |只看该作者
谢谢netdoger.
各位,请帮忙。顺便说下环境:as400 os 版本v5r4.

论坛徽章:
0
6 [报告]
发表于 2010-12-07 19:31 |只看该作者
各位大侠,请帮忙。。。。。。

论坛徽章:
0
7 [报告]
发表于 2010-12-08 09:16 |只看该作者
***
SFLDSP   
SFLDSPCTL
SFLINZ   
SFLDLT   
SFLCLR   
SFLEND   
***
在画面上这些参数 都没制定好。 还有你写的COBOL逻辑上有问题。以下是我大概写的 希望对你有帮助。

       BEGIN.
           OPEN I-O DISPFILE.
       MAIN-LOOP.
           PERFORM DISPLAY-SCREEN THRU DISPLAY-SCREEN-EXIT.
           WRITE DISP-REC FROM SCL01-O FORMAT IS "SCL01"
                            INDICATORS ARE SCL01-I-INDIC.
           READ DISPFILE INTO SCL01-I FORMAT IS "SCL01"
                             INDICATORS ARE SFL01-I-INDIC.

            IF  FILE-CA = '03'
                 CLOSE DISPFILE
                 GO BACK
            END-IF.
            GO TO MAIN-LOOP   
        MAIN-EXIT.      
      **********************
        DISPLAY-SCREEN.
            MOVE ZERO  TO    RRN1.
            WRITE DISP-REC FROM SFL01-O FORMAT IS "SCL01"
                            INDICATORS ARE SFL01-I-INDIC.
            MOVE "CCCC" TO ELEMTYPE OF SFL01-O.
            MOVE "DDDDDD" TO PRLKLEV OF SFL01-O.
            MOVE ELEMTYPE OF SFL01-O TO ELEMTYPE OF SFL01-I.
            MOVE PRLKLEV OF SFL01-O TO PRLKLEV OF SFL01-I.
            ADD  1   TO RRN1.
            WRITE DISP-REC FROM SFL01-O FORMAT IS "SFL01"
                                           INDICATORS ARE SFL01-I-INDIC.
                                       
       DISPLAY-SCREEN-EXIT.
             EXIT.

论坛徽章:
0
8 [报告]
发表于 2010-12-08 10:35 |只看该作者
谢谢netdoger和jxylh111018,
问题已得到解决,原来是程序对参数设置有问题。

论坛徽章:
0
9 [报告]
发表于 2010-12-14 18:25 |只看该作者
还有一个问题:

在dspf中的scl放置一个输入型的字段,在cobol中执行
MOVE XXX OF SCL01-I TO YYY
DISPLAY YYY.

比如输入:AAA,
显示出来的是0AA,(按退出时显示为1)

怀疑第一个是控制字符,请问各位如何取到正确的值给YYY?

谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP