我正在编写/编辑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.
我试图在多行语句/内联函数上寻找解决方案,但到目前为止没有发现任何问题。
答案 0 :(得分:2)
您应该引入一个包含代码块的方法或函数。 ABL不支持语句和块作为表达式。