免费注册 查看新帖 |

Chinaunix

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

COBOL/400 高手请进 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-08 10:42 |只看该作者 |倒序浏览
一个关于COBOL/400。处理screen的问题。
小弟想知道,COBOL/400 怎么取回Screen上的值。
比如
一个screen 上可以输入连个值
Manual CODE:__________

action:_______


我想处理的是,用screen上输入的值作为参数去调用下一个程序)[/
当我向这两个fields当中输入值后,怎么在程式当中怎么用刀它们?



能否有个鲜活点的例子阿。


DDS:SJFK10

A                                      DSPSIZ(24 80 *DS3)              
A                                      MSGLOC(24)                     
A                                      INDARA                          
A                                      PRINT                           
A                                      CF15                           
A                                      CF16                           
A                                      CF17                           
A                                      CF18                           
A                                      CF04                           
A                                      CF06                           
A                                      CF05                           
A                                      CF01                           
A                                      CF12                           
A                                      CF13                           
A                                      CF10                           
A                                      CF07                       
A                                      CF08                       
A                                      CF09                       
A                                      CF11                       
A                                      CF20                       
A                                      CF02                       
A                                      CF21                       
A                                      CF22                       
A                                      CF23                       
A                                      CF24                       
A                                      CF03                       
A          R SCREEN                                               
A                                      BLINK                     
A  98                                  PUTOVR                     
A                                                                 
A                                  6 27'A - CREATE A MANUAL'      
A                                  8 27'B - MODIFY A MANUAL'      
A                                 10 27'C - DELETE A MANUAL'      
A                                 12 27'D - INQUIRE A MANUAL'     
A                                 15 27'MANUAL CODE . . .'           
A            MAN1CDE        8A  B 15 46ALIAS(SJFK0_MAN1CDE)         
A                                 20 27'ACTION: . . . . .'           
A            ACTION         1A  B 20 46                              
A  02                                  DSPATR(RI)                    
A                                      ALIAS(SJFK0_ACTION)           
A                                      OVRDTA                        
A  02                                  COLOR(RED)                    
A N02                                  DSPATR(HI)                    


COBOL:PJFK10


       IDENTIFICATION DIVISION.                       
       PROGRAM-ID. PJFK10.                           
       AUTHOR. JACK.                                 
                                                      
       ENVIRONMENT DIVISION.                          
       CONFIGURATION SECTION.                        
                                                      
       SOURCE-COMPUTER. IBM-ISERIES.                  
       OBJECT-COMPUTER. IBM-ISERIES.                  
       FILE-CONTROL.                                 
            SELECT DISPFILE                           
                   ASSIGN TO WORKSTATION-SJFK10-SI   
                   ORGANIZATION IS TRANSACTION        
                   ACCESS IS SEQUENTIAL.              
                                                      
       DATA DIVISION.                                 
       FILE SECTION.                                 
       FD DISPFILE.                                   
       01 DISP-REC.                                    
          COPY DDS-ALL-FORMATS OF SJFK10.               
          05 DISPFILE-RECORD           PIC X(09).      
                                                        
          05 SCREEN-I  REDEFINES DISPFILE-RECORD.      
             06 MAN1CDE-I              PIC X(0.      
             06 ACTION-I              PIC X(01).        
                                                        
          05 SCREEN-O  REDEFINES DISPFILE-RECORD.      
             06 MAN1CDE-O              PIC X(0.      
             06 ACTION-O              PIC X(01).        


       WORKING-STORAGE SECTION.                                       
       01 WSAA-DATA1.                              
          05 WSAA-MAN1CDE1             PIC X(0.  
          05 WSAA-ACTIONE1             PIC X(01).  

       PROCEDURE DIVISION.                       
           OPEN I-O DISPFILE.                    
           WRITE DISP-REC     FORMAT IS "SCREEN".               
           READ DISPFILE FORMAT IS "SCREEN".      
(程序运行到此,screen显示出来,其实我一直搞不懂,为什么要,先write,后read,screen才能被显示)            

           MOVE MAN1CDE                 TO  WSAA-MAN1CDE1.  (这句有错,我想处理的取scrren当中输入的值,将它赋给WSAA-MAN1CDE1)

        CALL 'PJF11' USING WSAA-MAN1CDE1  (我想处理的是,用screen上输入的值作为参数去调用下一个程序)
                        ACTION-I   
                     
      CLOSE DISPFILE.                  
      STOP RUN.

论坛徽章:
0
2 [报告]
发表于 2009-04-08 19:48 |只看该作者
你不把你要显示的东西WRITE到画面上, 怎么去READ呢?

你编译一下你的程序, 去看下SPOOL FILE, SCREEN上定义字段是不是有被自动加进来
再CALL或者去DEBUG 一下  试试去

论坛徽章:
0
3 [报告]
发表于 2009-04-09 14:22 |只看该作者
在WORKING-STORAGE SECTION这里面要定义画面的入力和出力区域
例如:
01 SJFK10-AREA
   03  SCREENI-AREA.
     COPY  DDS-SCREEN-I            OF  SJFK10.
   03  SCREENO-AREA.
     COPY  DDS-SCREEN-O            OF  SJFK10.
这样定义了画面的入出力区域之后,在画面显示的时候
WRITE  DISPFILE   FROM   SCREENO-AREA FORMAT IS "SCREEN"  
                       INDICATORS  SCREEN-O-INDIC.      
READ   SJFK10  INTO   SCREENI-AREA FORMAT IS "SCREEN"  
                       INDICATORS  SCREEN-I-INDIC.   
之后在call外部程序的时候
   MOVE  MAN1CDE OF SCREENI-AREA                 TO  WSAA-MAN1CDE1.
这样就会有值了,就能达到你想要的效果了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP