【问题标题】:How can I display and manipulate record arrays?如何显示和操作记录数组?
【发布时间】:2010-07-06 20:24:49
【问题描述】:

使用 INFORMIX 4GL?、ISQL 和 ESQL/C?、PROGRESS-4GL?、ORACLE 寻找以下表单功能?等等?

我有一个 CRUD 表单,它在同一屏幕上的记录数组 [详细] 中显示客户 [master] 及其所有关联交易:

[id   ]
[fullname                     ]
[address1                     ]
[address2                     ]
[city                |st|zip  ]  
 ================================================================
[trxnum][itemdesc                            ]
[trxnum][itemdesc                            ]
[trxnum][itemdesc                            ]
[trxnum][itemdesc                            ]
[trxnum][itemdesc                            ]
[trxnum][itemdesc                            ]


attributes
id = customer.pk_id = transaction.fk_id;
trxnum = transaction.trx_num = actions.trx_num;
[...];

instructions
customer master of transaction
transaction master of action
[...];

所需功能:

当我查询并找到正确的客户[master] 时,我希望自动显示属于该客户的所有交易 [detail]。如果有超过 6 个详细信息行,我希望能够滚动浏览所有详细信息行 [在滚动区域中],直到找到适当的事务。然后我想通过按 Enter 或“U”进行更新来更新该事务,并在更新模式下弹出以下操作屏幕:

[id   ]
[fullname                     ]
[address1                     ]
[address2                     ]
[city                |st|zip  ]  
 ================================================================
[trxnum][itemdesc                                  ]

 TRANS-DATE TRX-TIME ACTION PRINCIPAL  AMOUNT  BALANCE CLERK
[tdate     ][ttime ]  [a]  [princ    ][amt   ][bal    ][cl]
[tdate     ][ttime ]  [a]  [princ    ][amt   ][bal    ][cl]
[tdate     ][ttime ]  [a]  [princ    ][amt   ][bal    ][cl]
[tdate     ][ttime ]  [a]  [princ    ][amt   ][bal    ][cl]
[tdate     ][ttime ]  [a]  [princ    ][amt   ][bal    ][cl]
[tdate     ][ttime ]  [a]  [princ    ][amt   ][bal    ][cl]

同样,这是与特定事务相关的先前操作 [行] 的滚动区域。我希望光标自动将自己定位在下一个可用的打开位置,让 tdate 和 ttime = 默认当前和光标停止在操作标签“a”上,以便职员输入所需的操作。我还希望能够在以前的操作 [行] 之间执行计算。我在 ISQL 执行中巧妙地模仿了这一点,但没有记录数组浏览功能。 (参见视频演示 [2 分钟标记],网址:www.frankcomputer.com

我愿意用另一个非 INFORMIX 开发工具重写这个所需的功能,如果它具有这些功能并且不复杂或需要很长时间来实现,但合乎逻辑的选择是用 I4GL 重写,但是我听说处理记录数组很麻烦。有更好的建议吗?

【问题讨论】:

  • 您的目标用户群体是什么?是普通企业用户吗?
  • @Conrad:任何开发过显示或操作记录数组的表单的开发者!

标签: sql oracle informix progress-4gl


【解决方案1】:

Informix 4GL 可以做到; Informix SQL,即使有 ESQL/C 帮助,也不能明智地做到这一点。我不知道 Progress 或 Oracle,但他们可能会做类似的事情。

在 I4GL 中,您将提取主记录信息,然后使用常规 DISPLAY 语句(不是 DISPLAY ARRAY),您将在详细信息部分的屏幕行中显示详细信息。当用户想要选择要更新的行时,您将进入 DISPLAY ARRAY 或(可能)进入 INPUT ARRAY 语句。

【讨论】:

  • 如何使用光标下标在不同记录数组的列之间执行计算?
  • @Frank:这取决于你追求什么。如果数据都在屏幕数组中(或者更准确地说,屏幕上显示的程序数组),那么您只需照常使用数组下标。如果您有两个并行阵列,一个用于显示数据,另一个用于不显示数据,那么您的工作就比较棘手了。您必须跟踪 INPUT ARRAY 中的插入和删除操作,并密切关注两个数组中记录的位置(确保第二个数组具有 PK 信息的副本 - 用于交叉检查和健全性),然后使用常规下标和以前一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多