如何为进行中的 code_mstr 创建 temp-table 4gl?

how to create a temp-table for code_mstr in progress 4gl?

我想创建一个用于通用代码维护的临时文件table(code_mstr),这样我在 GCM 中提供的输入就不会访问数据库,而是存储在一个临时的 table 我可以从那里更新或删除记录。其中有字段

code_fldname
code_value
code_cmmt
code_group

我对进步还很陌生,这项任务有点令人生畏,因为我不知道如何开始,我一直在研究 temp-table 的示例和语法,这是我唯一能够做到的到目前为止写的是这个我不确定是否正确的代码

define temp-table tt_gcm no-undo
field tt_fldname like code_fldname
field tt_value like code_value
field tt_cmmt like code_cmmt
field tt_group like code_group   
field tt_domain like global_domain
index tt_idx
      tt_domain
      tt_fldname
      tt_value.

然后我定义了一个相同的表单

form
code_fldname
code_value
code_cmmt
code_group
with frame a side-labels

现在假设如果我在 code_mstr 中输入一条特定记录,我只希望该一条特定记录在临时 table 中可见,而不是 [=23] 中的所有记录=], 任何关于如何进行的帮助将不胜感激。

这些内容将填满您的 temp-table:

for each code_mstr no-lock:

  create tt_gcm.
  assign
    tt_gcm.tt_fldname = code_mstr.code_fldname
    tt_gcm.tt_value   = code_mstr.code_value
    tt_gcm.tt_cmmt    = code_mstr.code_cmmt
    tt_gcm.tt_group   = code_mstr.code_group   
    tt_gcm.tt_domain  = code_mstr.global_domain
  .

end.

这将以您创建的表单显示数据:

for each tt_gcm:
  display tt_gcm with frame a.
end.

如果您可以使 temp-table 字段名称与数据库字段名称相同,则可以使用 buffer-copy 语句。它将所有匹配字段从一个复制到另一个。

define temp-table tt_gcm no-undo
  field global_domain like code_mstr.global_domain
  field code_fldname like code_mstr.code_fldname
  field code_value like code_mstr.code_value

  field code_cmmt like code_mstr.code_cmmt
  field code_group like code_mstr.code_group   

  index tt_idx // add is unique?
    global_domain
    code_fldname
    code_value
  .

for each code_mstr no-lock:

  create tt_gcm.
  buffer-copy code_mstr to tt_gcm.

end.