关键字: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