无法在 progress4gl 上使用函数

Not being able to use function on progress4gl

我一直在尝试创建一个简单的函数来累积一些字符串,然后我会调用它 return 它,但出于某种原因我得到:

Could not understand line 1 (198)

太含糊了,我一直在论坛中寻找示例来与我的进行比较,但似乎还不错,有人可以解释一下我可能做错了什么吗?

代码:

put unformatted fcustomer(). /*line one*/

function fcustomer returns char():

    define variable vgatherer as character.
    define variable i as integer no-undo.

    do i = 1 to 10:
        assign vgatherer = vgatherer + "thing(s)".
    end.

    return vgatherer.

end function.

ABL 使用单程编译器,因此函数必须在使用前声明。如果您像这样更改代码,它将起作用:

function fcustomer returns char():

    define variable vgatherer as character.
    define variable i as integer no-undo.

    do i = 1 to 10:
        assign vgatherer = vgatherer + "thing(s)".
    end.

    return vgatherer.

end function.

put unformatted fcustomer(). /*line one*/

您还可以使用 FORWARD 短语向前定义您的函数。查看您的 ABL 文档了解详细信息。

函数需要在使用前声明或提前声明。

您可能还需要一个输入参数。

function fcustomer returns character ( input p1 as character ) forward.

put unformatted fcustomer( "some text" ). /*line one*/

function fcustomer returns character ( input p1 as character ):

    define variable vgatherer as character.
    define variable i as integer no-undo.

    do i = 1 to 10:
        assign vgatherer = vgatherer + p1.
    end.

    return vgatherer.

end function.