LZY'Blog

记录LZY的生活、行程!

« Progress文件之间的参数传递示例Progress预处理器的定义及使用示例 »

Progress主程序引用外部文件示例

  例1:主程序使用外部定义和维护的文件来布局和显示客户报告。您可以在许多程序中使用相同的包含文件。

  r-inc1.p

for each customer:
    {r-fcust.i}
    {r-dcust.i}
end.

  r-fcust.i

form customer.cust-num customer.name label "customer name"
    customer.phone format "999-999-9999".

  r-dcust.i

display customer.cust-num customer.name customer.phone.

  运行结果如下图所示:

  例2:主程序引用一个包含五个参数的包含文件,但只传递四个参数。

  r-incl2.p

define variable var1 as integer initial 9.
define variable var2 as decimal initial 6.43.
define variable var3 as logical initial true.
/* any statements */

{r-show.i point-A var1 var2 var3}

/* any statements */

  当主程序被编译时,引用显示内容的行将被以下行替换。

  r-show.i

message "At" "{1}" "{2}" {2} "{3}" {3} "{4}" {4} "{5}" {5}.

  例2展示了如何使用include文件来扩展Progress程序。主程序使用一个语句引用r-show.i并在不同的点显示字段或变量的值。这个例子中的include文件可以处理多达5个传递的参数,但主程序只传递了4个参数(point-A、var1、var2和var3)。这个示例的输出如下所示。

MESSAGE At point-A var1 9 var2 6.43 var3 yes

  例3:r-custin.p程序为每个客户显示一个框架,您可以更新客户信息。这个程序引用了rcstord.i文件并传递了命名的参数,以及参数的值(CENTERED ROW 3 NO-LABEL)到include文件。当include文件引用参数时,它使用参数的值,因此在没有标签的情况下,将覆盖cust-ord显示为第3行的中心。

  r-custin.p

for each customer:
    {r-cstord.i &frame-options = "CENTERED ROW 3 NO-LABEL"}.
    update customer.cust-num name address address2 city state postal-code phone credit-limit with fram cust-ord.
end.

  r-cstord.i

form "Cust #" at 1 customer.cust-num at 10 skip(1)
    customer.name at 10
    customer.address at 10
    customer.address2 at 10
    customer.city at 10 customer.city customer.state
    customer.postal-code skip(1)
    "Phone " at 1 customer.phone format "999/999-9999" at 10
    "Max Crd" at 1 customer.credit-limit at 10
with frame cust-ord overlay {&frame-options}.

  运行结果如下图所示:

  若是将r-cstord.i文件中overlay {&frame-options}去掉,r-cstord.i程序代码修改为:

form "Cust #" at 1 customer.cust-num at 10 skip(1)
    customer.name at 10
    customer.address at 10
    customer.address2 at 10
    customer.city at 10 customer.city customer.state
    customer.postal-code skip(1)
    "Phone " at 1 customer.phone format "999/999-9999" at 10
    "Max Crd" at 1 customer.credit-limit at 10
with frame cust-ord.

  运行结果如下图所示:

  include文件对于在多个程序中使用表单布局特别有用,特别是如果您的程序中不包括FORM语句。

  r-cust.f

customer.cust-num
customer.name skip(2)
customer.state

  r-incl3.p程序包含r-cust.f文件作为FORM语句的定义。

  r-incl3.p

form {r-cust.f}.

  r-incl4.p 程序使用include文件作为DISPLAY语句的布局。

  r-incl4.p

for each customer:
    display {d:\r-cust.f} with 3 down.
end.

  运行结果如下图所示:

  说明:

  1) 当Progress 读取一个包含文件到源文件时,它将一个空格字符附加到包含文件的末尾。

  2) 可以传递给包含文件的参数的最大长度由输入字符(- inp)启动参数决定。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Walle Build 100427 |

Copyright 2009-2012 LZY'Blog. | ICP:蜀ICP备05027543号