首页 > 解决方案 > Progress 4GL 内联函数/多行语句

问题描述

描述:

我正在编写/编辑 LinqToProgress 查询引擎。到目前为止,正在进行中的简单函数很容易复制,例如"A" >= "B"or Lookup(A, B) > 1,提供布尔条件的简单单行。但是,要实现更高级的功能或自定义功能,我需要能够编写可以插入条件的多行语句,这意味着当您DISP ( myFunc )在 ABL ScratchPad(使用 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.我尝试寻找有关多行语句/内联函数的解决方案,但到目前为止一无所获。

约束:

标签: openedgeprogress-4gl

解决方案


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


推荐阅读