如何显示和操作记录数组?

时间:2010-07-06 20:24:49

标签: sql oracle informix progress-4gl

使用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]时,我希望自动显示属于该客户的所有交易[详细信息]。如果有超过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]

再次,这是与特定事务相关的先前动作[行]的滚动区域。我希望光标自动定位在下一个availbale开放点上,让tdate和ttime =默认当前和光标停在动作标签'a'上,供职员输入所需的动作。我还希望能够在之前的动作[行]之间执行计算。我在ISQL执行中巧妙地模仿了这一点,但没有记录数组浏览功能。 (请参阅www.frankcomputer.com上的视频演示[2分钟标记]

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

1 个答案:

答案 0 :(得分:1)

Informix 4GL可以做到;即使使用ESQL / C协助,Informix SQL也无法合理地完成它。我不了解Progress或Oracle,但他们可能会做类似的事情。

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