我一直在尝试根据某些条件动态更改字段的颜色,但它没有正确显示。以下是该按钮的代码:
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;
我还尝试显示消息以查看查询是否正常工作。消息显示,但颜色没有变化。所有字段都是相同的颜色。
答案 0 :(得分:1)
您应该使用视觉属性。 只需创建一个visual_attribute,然后在运行时将该项设置为该visual属性。
答案 1 :(得分:0)
创建一个可视属性(例如带有红色前景色的VISUAL_RED),然后使用
SET_ITEM_INSTANCE_PROPERTY(:SYSTEM.CURRENT_ITEM,CURRENT_RECORD,VISUAL_ATTRIBUTE,'VISUAL_RED');
如果在multirow报告中,则用' BLOCK.ITEM'
替换:SYSTEM.CURRENT_ITEM