openedge - 如何通过减少以下代码来提高流程性能?
问题描述
我使用progress 4GL编写了一个程序。语法是正确的,但不知道如何减少代码..我们是为座位工作的公司,使用progress 4gl..我们有一张名为轮班维护的表,每个小时都有轮班时间。举个例子来解释一下。
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 个班次序列分配两个变量。有没有机会减少这么多查询?(注意 - 我必须为各个变量分配开始和结束时间)。
解决方案
您可以使用数组变量处理移位时间,并在表/临时表中执行循环时分配它:
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.
推荐阅读
- r - 无法(重新)安装 rJava (macOS)
- c - 在 C 中打印链接列表时出现段错误
- java - 即使经过验证,也无法在运行时找到 Xpath
- sql - pgp_sym_decrypt 与选择查询一起使用
- c# - 获取 Azure 的访问令牌
- go - 在 Go 中使用 cron 定期运行 Colly web scraper
- python - 我想在分类下整理频道,如何移动?不和谐.py
- node.js - 如何在管道到另一个流之前在 nodejs/expressjs 中编辑 IncomingForm?
- css - 为 Shopify Prestige 主题创建变体图像集
- flutter - 基于代码空间的 Flutter 开发