Progress 4GL在线功能/多行声明

问题描述 投票:0回答:1

描述:

我正在编写/编辑LinqToProgress查询引擎。到目前为止,进展中的简单函数很容易复制,例如"A" >= "B"Lookup(A, B) > 1,简单的一个衬里,它们给出了布尔条件。但是要实现更高级的函数或自定义函数,我需要能够编写可以插入条件的多行语句,这意味着当你在ABL ScratchPad中使用DISP ( myFunc )时,内联函数应该能够给出一个布尔结果(使用Eclipse)或类似的程序。

问题:

我需要将//Start Here//End Here之间的代码转换为内联布尔结果。

DEF VAR i AS INT NO-UNDO.
DEF VAR LIST  AS CHAR NO-UNDO INIT "one,two,three,four".
DEF VAR LIST2 AS CHAR NO-UNDO INIT  "one,three,five". 

DISP(
        // Start Here
        DO i=1 TO NUM-ENTRIES(LIST):
        IF LOOKUP(ENTRY(i, LIST),LIST2) > 0 THEN RETURN TRUE.
        END.
        RETURN FALSE.
        // End Here
     )

目前代码抛出错误。 White space after colon ends statement.我试图在多行语句/内联函数上寻找解决方案但到目前为止一无所获。

约束:

  • 写入的所有内容都需要包含在Disp函数中。
  • 我无法使用以前创建的函数。
openedge progress-4gl
1个回答
2
投票

您应该引入包含代码块的方法或函数。 ABL不支持语句和块作为表达式。

© www.soinside.com 2019 - 2024. All rights reserved.