openedge - 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.
我尝试寻找有关多行语句/内联函数的解决方案,但到目前为止一无所获。
约束:
- 编写的所有内容都需要包含在 Disp 函数中。
- 我不能使用以前创建的功能。
解决方案
您应该引入包含您的代码块的方法或函数。ABL 不支持将语句和块作为表达式。
推荐阅读
- python-3.x - Python,将数据框转换为 PDF
- angular - 材料表单元格中的角度显示图像
- kivy - Kivy:如何在 FloatLayout 中获取坐标(没有 kv)?
- ruby-on-rails - 无法作为私有 IAM 用户 AWS S3 存储桶读写
- reactjs - 在 Docker 堆栈中的哪里存储/管理容器的配置?
- python - 分组卷积的 Caffe 到 Keras 的转换
- linux - awk:使用不同的分隔符打印每个学生的平均值以及给定的详细信息
- ssl - 在 Heroku 中配置 SSL 失败
- swift - 有没有更优雅的方式在 Swift 中编写这种延迟加载模式?
- c# - 树图的旅行商问题(没有哈密顿路径)