Progress 4gl - 在将临时表导出到 .html 文件时更改特定值的字体颜色

问题描述

我想在使用 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.

解决方法

您可以在语句中使用 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).