【问题标题】:How to change browser colour in progress 4gl?如何更改正在进行的浏览器颜色4gl?
【发布时间】:2017-07-15 07:34:09
【问题描述】:

我想创建一个通用程序,即 .i,我可以从 a.w 调用它,它会根据我的条件更改浏览器颜色。如何通过 .i 更改浏览器颜色?

【问题讨论】:

标签: openedge progress-4gl


【解决方案1】:

我想您想更改浏览线的颜色。但是我不相信您可以为此进行包含,因为您必须单独命名字段才能以简单的方式执行此操作。因此,假设您有一个名为 br-cust 的浏览器,它显示了您正在显示客户编号、名称和信用额度的客户表。

您需要在浏览中添加一个行显示事件,您会在其中说

ON ROW-DISPLAY OF BROWSE br-cust DO:
   DEFINE VARIABLE iBgColor AS INTEGER NO-UNDO.

   ASSIGN iBgColor = IF customer.credit-limit < 2000 THEN 9 ELSE 15
          customer.cust-num    :bgcolor in browse br-cust = iBgColor
          customer.name        :bgcolor in browse br-cust = iBgColor
          customer.credit-limit:bgcolor in browse br-cust = iBgColor.

END.

如果信用额度较低(

现在,如果您想让任何给定的浏览器能够根据条件更改颜色,这也是可能的,但需要更多的代码。我会尽快发布解决方案,因为我现在无法访问 Progress。

但我希望这会有所帮助。

【讨论】:

    【解决方案2】:

    如果您需要在包含中包含着色逻辑,您可以使用预处理器来完成。像这样创建包含(例如 colorbrs.i):

    ON ROW-DISPLAY OF {&Brs}
    DO:
        ASSIGN
            {&Tbl}.{&Fld1}:FGCOLOR IN BROWSE {&Brs} = 12
            {&Tbl}.{&Fld1}:BGCOLOR IN BROWSE {&Brs} = 9.
    END.
    

    大括号是预处理器。它们在编译时填写。您可以像这样在 .w 中定义它们:

    {colorbrs.i &Brs=brsCust &Tbl=Customer &Fld1=Cust-Num}
    

    当您编译 .w 时,编译器将从包含语句中获取值并将它们填充到包含文件中的预处理器中。

    【讨论】:

    • 我可以使用浏览器颜色句柄来代替使用表名吗?因为我在浏览器中没有静态表。
    • 表名预处理器不必是数据库表。只需将其设置为您在浏览器查询中使用的任何表即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多