首页 > 解决方案 > Progress 4gl - change font color of specific values while exporting temp table to .html file

问题描述

I have a situation where I would like to change the font color of the specific values in a temp table while exporting to .html using progress 4gl.

Below is the program I wrote to output the values to .html file. Please help me to solve this.

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.

标签: openedgeprogress-4gl4gl

解决方案


You can use IF inside your statement. Something like this:

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

That will output

This will output something

TRUE can be changed to any check you want to.

However, since you use SUBSTITUTE you could consider adding a variable for the color.

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.

And then your program needs to set the color variable based on whatever logic you need.

You could also match "normal" variables and the &-syntax of 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).

推荐阅读