Progress 4GL 内联函数/多行语句
Progress 4GL In-line functions / Multi-line statement
描述:
我是 Writing/Editing LinqToProgress 查询引擎。到目前为止,progress 中的简单函数很容易复制,例如 "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.
我尝试寻找有关多行 statements/inline 函数的解决方案,但到目前为止一无所获。
限制条件:
- 写入的所有内容都需要包含在 Disp 函数中。
- 我无法使用之前创建的函数。
您应该引入一个包含您的代码块的方法或函数。 ABL 不支持将语句和块作为表达式。
描述:
我是 Writing/Editing LinqToProgress 查询引擎。到目前为止,progress 中的简单函数很容易复制,例如 "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.
我尝试寻找有关多行 statements/inline 函数的解决方案,但到目前为止一无所获。
限制条件:
- 写入的所有内容都需要包含在 Disp 函数中。
- 我无法使用之前创建的函数。
您应该引入一个包含您的代码块的方法或函数。 ABL 不支持将语句和块作为表达式。