使用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重写,但是我听说它处理记录数组很麻烦。还有更好的建议吗?
答案 0 :(得分:1)
Informix 4GL可以做到;即使使用ESQL / C协助,Informix SQL也无法合理地完成它。我不了解Progress或Oracle,但他们可能会做类似的事情。
在I4GL中,您需要提取主记录信息,然后使用常规的DISPLAY语句(不是DISPLAY ARRAY),您将在详细信息部分的屏幕行中显示详细信息。当用户想要选择要更新的行时,您将进入DISPLAY ARRAY或(可能)INPUT ARRAY语句。