【问题标题】:Is it possible to use the DELIMITER statement when using the DISPLAY statement使用DISPLAY语句时是否可以使用DELIMITER语句
【发布时间】:2022-10-13 21:00:41
【问题描述】:
假设我想做一个 FOR EACH 的 3 个表/字段:
slmast.name
slmast.acode
slmast.address.
通常,它们整齐地呈现出来,没有任何区别。
但是,我是否也可以使用 DELIMITER 语句来分隔它们,或者添加逗号/语音标记?
例如:
FOR EACH slmast.
DISPLAY (DELIMITER) "," slmast.name slmast.acode slmast.address
【问题讨论】:
标签:
openedge
progress-4gl
【解决方案1】:
您应该使用 SUBSTITUTE 功能
FOR EACH slmast.
DISPLAY SUBSTITUTE ("&1,&2,&3":U, slmast.name, slmast.acode, slmast.address)
FORMAT "x(60)".
【解决方案2】:
不,DELIMITER 不是 DISPLAY 的选项。
您可以按照 Mike 的建议进行操作并使用 SUBSTITUTE 构建一个字符串,或者您可以添加所需的逗号,如下所示:
for each slmast no-lock:
display
name + "," format "x(30)"
acode + ","
address + "," format "x(30)"
.
end.
如果这是您想要的,这将成为很好的列,而 Mike 的代码将消除空格 - 或者,这可能是您想要的。
如果宽度将超过默认格式 8,则需要 FORMAT 短语。我保留了未修饰的代码以显示默认值。