Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1083268
  • 博文数量: 106
  • 博客积分: 9093
  • 博客等级: 中将
  • 技术积分: 2770
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-01 17:22
文章分类

全部博文(106)

文章存档

2014年(1)

2012年(29)

2011年(32)

2010年(20)

2008年(24)

分类: 系统运维

2012-08-21 13:37:06

一个ILE program可能由一个module或多个module组成。而一个module可能由main proceduresubprocedure组成。

更多信息参照IBM i信息中心:

从上图我们可以清楚的理解一个module的组成。

Subprocedure的定义由P proname B开始,P proname E结束。参照IBM i信息中心-

EX11

0001.00 H DFTACTGRP(*NO)                                                           

0002.00 D Result          S             52A   Inz                                  

0003.00 D Msg             S             10    Inz('Terry')                         

0004.00 D Wait            S              1A                                        

0005.00 D*                                                                         

0006.00 D Dspmsg          PR            52                                         

0007.00 D  ParmMsg                      10    Value                                

0008.00 C*                                                                         

0009.00 C                   Eval      Result = 'Msg: ' + Msg                       

0010.00 C     Result        Dsply                                                  

0011.00 C                   Eval      Result = 'Msg: ' + Dspmsg(Msg)               

0012.00 C     Result        Dsply                                                  

0013.00 C*                                                                         

0014.00 C     'Complete'    Dsply                   Wait                           

0015.00 C*                                                                         

0016.00 C                   Eval      *inlr = *on                                  

0017.00 C                   Return                                                 

0018.00  ************************************************************              

0019.00  * Display a message                                        *              

0020.00  ************************************************************              

0021.00 P Dspmsg          B                                                        

0022.00 D Dspmsg          PI            52                                         

0023.00 D  ParmMsg                      10    Value                                

0024.00 D  Msg            S             52                                         

0025.00 C     Msg           dsply                                                  

0026.00 C                   Eval      Msg = 'Hello ' + ParmMsg                     

0027.00 C                   Return    Msg                                          

0028.00 P Dspmsg          E  


EX11F
0001.00 H DFTACTGRP(*NO)                                                                
0002.00 D Result          S             52A   Inz                                       
0003.00 D Msg             S             10    Inz('Terry')                              
0004.00 D Wait            S              1A                                             
0005.00 D*                                                                              
0006.00 D Dspmsg          PR            52                                              
0007.00 D  ParmMsg                      10    Value                                     
0008.00  /free                                                                          
0009.00    Result = 'Msg: ' + Msg;                                                      
0010.00    Dsply   Result;                                                              
0011.00    Result = 'Msg: ' + Dspmsg(Msg);                                              
0012.00    Dsply   Result;                                                              
0013.00                                                                                 
0014.00    Dsply 'Complete' '' Wait;                                                    
0015.00                                                                                 
0016.00    *inlr = *on;                                                                 
0017.00    return;                                                                      
0018.00  /end-free                                                                      
0019.00  ************************************************************                   
0020.00  * Display a message                                        *                   
0021.00  ************************************************************                   
0022.00 P Dspmsg          B                                                             
0023.00 D Dspmsg          PI            52                                              
0024.00 D  ParmMsg                      10    Value                                     
0025.00 D  Msg            S             52                                              
0026.00  /free                                                                          
0027.00    Dsply   Msg;                                                                 
0028.00    Msg = 'Hello ' + ParmMsg;                                                    
0029.00    Return    Msg;                                                               
0030.00  /end-free                                                                      
0031.00 P Dspmsg          E    

你应该看到的内容

加分练习

1.      第一行的DFTACTGRP(*NO)起什么作用,去掉会发生什么?

2.      试着定义一个nomainmodule,看看export关键字的用法

3.      定义Procedure是在ParmMsg后加了个Value,这是为什么?起什么作用。


阅读(1574) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~