首页 文章

如何通过减少以下代码来提高过程性能?

提问于
浏览
0

我使用进度4GL编写了一个程序 . 语法是正确的,但不知道如何减少代码 . 我们是公司工作的座位和使用进度4gl..we有一个称为班次维护的表,每个小时都有班次时间 . 让我们举一个例子说明 .

DEFINE VARIABLE FistshiftStartHour AS INTEGER NO-UNDO.
DEFINE VARIABLE FistShiftEnddHour AS INTEGER NO-UNDO.
DEFINE VARIABLE SecshiftStartHour AS INTEGER NO-UNDO.
DEFINE VARIABLE SecShiftEnddHour AS INTEGER NO-UNDO.

FIND FIRST shift WHERE shift.shiftsequence = 1 NO-LOCK NO-ERROR.
ASSIGN
        FistshiftStartHour = shift.starthour
        FistShiftEnddHour = shift.endhour.

FIND FIRST shift WHERE shift.shiftsequence = 2 NO-LOCK NO-ERROR.
ASSIGN
        SecshiftStartHour = shift.starthour
        SecShiftEnddHour = shift.endhour.

像这样我需要为每个班次编写一个查询并为21个班次序列分配两个变量 . 是否有机会减少这么多查询?(注意 - 我必须为各个变量分配开始和结束时间) .

1 回答

  • 1

    您可以使用数组变量处理转换时间,并在表/ temp-table中执行循环时分配它:

    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.
    

相关问题