progress的高级过程调用以及全局变量

关键字:progress 4GL IO language 开发 语言

 

1.过程调用
上一篇文章里简单提到调用一个内部的子过程只需要 run procedure-name(parameters). 并且子过程是不要预先声明的。
一个progress文件可以保存为.p结尾,表示是一个procedure文件。
简单地,你可以在命令行模式下:
prowin32 -p my.p

如果你的子过程比较大,或者需要反复调用,这时候你不可能每次在你的主程序里定义它,怎么办呢,可以把一个子过程存储为一个单独的.p文件,
调用的时候采用:
run 相对路径/my_subproc.p(parameters)

如果my_subproc.p和你的主程序在同一目录下,并且主程序所在目录为当前工作目录,则可以直接run my_subproc.p. 如果它是在一个子目录下,比如MySubs.目录结构如下:
main.p
MySubs/
MySubs/my_subproc.p
那么你可以run MySubs/my_subproc.p(parameters). 这里的路径分隔符之所以使用/而不是/是为了让其也可以在unix环境中运行。

下面具个例子,这些例子都存储在和主程序同目录:
/* 文件名:proc1.p  */
/*注释是使用 “/*你的注释*/" 来注明的,并且可以嵌套*/
define input parameter p1 as int no-undo.
define input parameter p2 as int no-undo.
define output parameter sum as int no-undo.
 sum = p1 + p2.


/*main.p*/

define variable mi as int no-undo.
run pro1.p(1,2,output mi).
message mi. /*mi = 3*/

注意:
如果输入参数类型是input,则在调用是实参可以省略。但是如果是input-output或者output是不可以省略的。

那么如果是函数怎么办呢?不要紧,好友另外一种文件类型 .i文件。

.i文件是一个include文件。比如说有一个 init.i:
define variable l_i as int no-und

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值