单下架和下架如何工作?

How does a one-down frame, and a down frame work?

我一直在阅读 one-down framesdown frames,我有点困惑,如 :-

a) 它们是什么? b) progress 如何知道要分配什么帧?

感谢您的帮助:)

一个帧可以有 "down" 次迭代。当写入向下帧的代码迭代时,下一次出现的数据低于前一次。这对于以表格形式轻松呈现数据非常有用。

根据与之关联的块的类型,框架可能会自动成为 DOWN 框架。例如:

define variable i as integer no-undo.

repeat i = 1 to 10:
  display i with no-box.
end.

这将导致:

         i
──────────
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10

REPEAT 块是迭代块,默认(未命名)帧将是向下帧。 (FOR EACH 块也是迭代块)。

DO 块没有迭代,因此如下:

define variable i as integer no-undo.

do i = 1 to 10:
  display i with no-box.
end.

结果:

         i
──────────
        10

如果您的系统非常慢(或通过老式的 1200 波特率调制解调器连接),您可能会看到 space 中的“1”到“10”相互覆盖,最终成为“ 10".

要让 DO 块像 REPEAT 块一样工作:

define variable i as integer no-undo.

do i = 1 to 10:
  display i with no-box 10 down.
  down.  /* advances a down frame to the next line */
end.

“10 down”表示框架将为 10 次迭代保留空间。如果省略“10”,框架将使用屏幕上剩余的 space。

DOWN 语句告诉框架(在本例中为默认的未命名框架)移动到下一行。您也可以说 "down 2." 或 "down 5." 来插入多个空行。

如果你想让一个框架迭代但它不会自动这样做你可能需要添加 "down" 到框架短语(以 "with" 开头的语法)并且可能添加一个明确的DOWN 语句取决于您正在执行的循环的性质。