【问题标题】:Progress 4gl - change font color of specific values while exporting temp table to .html fileProgress 4gl - 在将临时表导出到 .html 文件时更改特定值的字体颜色
【发布时间】:2021-04-16 02:45:59
【问题描述】:

我有一种情况,我想在使用 progress 4gl 导出到 .html 时更改临时表中特定值的字体颜色。

下面是我编写的将值输出到 .html 文件的程序。 请帮我解决这个问题。

OUTPUT TO VALUE ("JITS_UserMonitor\JITS_UserMonitor.html").
PUT UNFORMATTED "<TABLE
                    style=' border: 1px solid black;border-collapse: collapse;width:100%; font-family: arial, sans-serif;'>
                        <tr style='background-color: #dddddd; text-align: center' >
                            <th style=' border: 1px solid black;border-collapse: collapse;'>USER Name</th>
                            <th style=' border: 1px solid black;border-collapse: collapse;'>USER Full Name</th>
                            <th style=' border: 1px solid black;border-collapse: collapse;'>USER CREATE Date</th>
                            <th style=' border: 1px solid black;border-collapse: collapse;'>USER LastLogin Date</th>
                            <th style=' border: 1px solid black;border-collapse: collapse;'>Need Disable</th>
                            <th style=' border: 1px solid black;border-collapse: collapse;'>Need DELETE</th>
                            <th style=' border: 1px solid black;border-collapse: collapse;'>DISABLE Status</th>
                            <th style=' border: 1px solid black;border-collapse: collapse;'>LAST Logon Days</th>
                        </tr>
                    " SKIP.
    FOR EACH tt_data WHERE tt_data.tt_needdisable EQ TRUE OR 
            tt_data.tt_needdelete EQ TRUE NO-LOCK BY tt_data.tt_days DESC:
        PUT UNFORMATTED SUBSTITUTE ("   <tr style = 'text-align: center'>
                                                <td style=' border: 1px solid black;border-collapse: collapse;'>&1</td>
                                                <td style=' border: 1px solid black;border-collapse: collapse;'>&2</td>
                                                <td style=' border: 1px solid black;border-collapse: collapse;'>&3</td>
                                                <td style=' border: 1px solid black;border-collapse: collapse;'>&4</td>
                                                <td style=' border: 1px solid black;border-collapse: collapse;'>&5</td>
                                                <td style=' border: 1px solid black;border-collapse: collapse;'>&6</td>
                                                <td style=' border: 1px solid black;border-collapse: collapse;'>&7</td>
                                                <td style=' border: 1px solid black;border-collapse: collapse;'>&8</td>
                                            </tr>",
                                                tt_data.tt_userid,
                                                tt_data.tt_fullname,
                                                tt_data.tt_createddate,
                                                tt_data.tt_lastlogon, 
                                                tt_data.tt_needdisable,
                                                tt_data.tt_needdelete,
                                                tt_data.tt_disable,
                                                tt_data.tt_days) SKIP.
    END.    
PUT UNFORMATTED "</TABLE>" SKIP.
OUTPUT CLOSE.

【问题讨论】:

  • 显示一个带有八个字段的临时表的示例并不能使您的示例更好,它只会增加噪音。

标签: openedge progress-4gl 4gl


【解决方案1】:

您可以在语句中使用IF。像这样的:

PUT UNFORMATTED 'This will output ' (IF TRUE THEN "something" ELSE "nothing").

那会输出

这会输出一些东西

TRUE 可以更改为您想要的任何支票。

但是,由于您使用SUBSTITUTE,您可以考虑为颜色添加一个变量。

PUT UNFORMATTED SUBSTITUTE ("   <tr style = 'text-align: center'>
                                            <td style=' border: 1px solid black;border-collapse: collapse;color:&9;'>&1</td>
                                            <td style=' border: 1px solid black;border-collapse: collapse;'>&2</td>
                                            <td style=' border: 1px solid black;border-collapse: collapse;'>&3</td>
                                            <td style=' border: 1px solid black;border-collapse: collapse;'>&4</td>
                                            <td style=' border: 1px solid black;border-collapse: collapse;'>&5</td>
                                            <td style=' border: 1px solid black;border-collapse: collapse;'>&6</td>
                                            <td style=' border: 1px solid black;border-collapse: collapse;'>&7</td>
                                            <td style=' border: 1px solid black;border-collapse: collapse;'>&8</td>
                                        </tr>",
                                            tt_data.tt_userid,
                                            tt_data.tt_fullname,
                                            tt_data.tt_createddate,
                                            tt_data.tt_lastlogon, 
                                            tt_data.tt_needdisable,
                                            tt_data.tt_needdelete,
                                            tt_data.tt_disable,
                                            tt_data.tt_days,
                                            color
) SKIP.

然后您的程序需要根据您需要的任何逻辑设置颜色变量。

您还可以匹配“普通”变量和 SUBSTITUTE 的 &-语法:

DEFINE VARIABLE cColor AS CHARACTER   NO-UNDO.
DEFINE VARIABLE iInt   AS INTEGER     NO-UNDO.

cColor = "black".
iInt = 12.

MESSAGE  SUBSTITUTE("This is a color " + cColor + " and a number &1", iInt).

【讨论】:

  • 感谢 Jensd 的帮助。但我仍然没有得到它。我尝试使用 IF 语句,但它显示的语法不正确。这可能是由于我对 Progress 的了解有限。
  • 我错了,我错过了 IF 语句的 THEN 部分。
猜你喜欢
  • 2021-11-12
  • 2018-02-26
  • 1970-01-01
  • 1970-01-01
  • 2015-08-22
  • 1970-01-01
  • 2023-03-20
  • 2014-09-02
  • 2016-09-20
相关资源
最近更新 更多