如何在d2k表格6i中动态更改文本项的颜色?

时间:2014-08-24 16:14:35

标签: oracleforms

我一直在尝试根据某些条件动态更改字段的颜色,但它没有正确显示。以下是该按钮的代码:

DECLARE
    CURSOR DATA IS
    SELECT EMPNO,ENAME,COMM FROM EMP;
BEGIN

    OPEN DATA;
    GO_BLOCK('BLOCK3');
    FIRST_RECORD;
    LOOP
        FETCH DATA INTO :BLOCK3.T_EMPNO, :BLOCK3.T_NAME, :BLOCK3.T_COMM;

        EXIT WHEN DATA%NOTFOUND;

        IF :BLOCK3.T_COMM IS NULL THEN
            SET_ITEM_instance_PROPERTY('BLOCK3.T_COMM',BACKGROUND_COLOR,'R255G70B70');
        --  message('comm is null');
        ELSE
        SET_ITEM_PROPERTY('BLOCK3.T_COMM',BACKGROUND_COLOR,'R255G100B70');
        --message('comm is not null');
            END IF;

        NEXT_RECORD;
    END LOOP;
    FIRST_RECORD;

END;

我还尝试显示消息以查看查询是否正常工作。消息显示,但颜色没有变化。所有字段都是相同的颜色。

2 个答案:

答案 0 :(得分:1)

您应该使用视觉属性。 只需创建一个visual_attribute,然后在运行时将该项设置为该vi​​sual属性。

答案 1 :(得分:0)

创建一个可视属性(例如带有红色前景色的VISUAL_RED),然后使用

SET_ITEM_INSTANCE_PROPERTY(:SYSTEM.CURRENT_ITEM,CURRENT_RECORD,VISUAL_ATTRIBUTE,'VISUAL_RED');

如果在multirow报告中,则用' BLOCK.ITEM'

替换:SYSTEM.CURRENT_ITEM