我已经使用Progress 4GL编写了一个程序。语法是正确的,但是不知道如何减少代码。我们是一家致力于座位和使用4gl进度的公司。我们有一张名为轮班维护的表,该表每隔一小时就有一次轮换时间。让我们举例说明。
=if(b3="",b2/B4,if(b2="",B3*b4,if(b4="",b2/b3,"Check")))
像这样,我需要为每个轮班时间编写一个查询并为21个轮班顺序分配两个变量,是否有可能减少这么多查询?(注意-我必须为各个变量分配开始时间和结束时间)
答案 0 :(得分:1)
您可以使用数组变量处理移位时间,并在执行表/临时表中的循环时分配它:
DEFINE VARIABLE sSeq AS INTEGER EXTENT 21 NO-UNDO. /* start hour */
DEFINE VARIABLE eSeq AS INTEGER EXTENT 21 NO-UNDO. /* end hour */
FOR EACH shift WHERE shift.shiftsequence LE 21 NO-LOCK BY shift.shiftsequence:
sSeq[shift.shiftsequence] = shift.starthour.
eSeq[shift.shiftsequence] = shift.endhour.
DISP sSeq[shift.shiftsequence] eSeq[shift.shiftsequence].
END.