Oracle form visual attribute
PROCEDURE assign_visual_attribute IS
cur_itm VARCHAR2(80);
cur_block VARCHAR2(80) := :SYSTEM.current_block;
itemcanvas VARCHAR2(20);
v_count NUMBER := 0;
BEGIN
cur_itm := GET_BLOCK_PROPERTY(cur_block, first_item);
v_count := 0;
WHILE(cur_itm IS NOT NULL) LOOP
v_count := v_count + 1;
cur_itm := cur_block || '.' || cur_itm;
IF v_count NOT IN(4) THEN
/* 因為沒有 Canvas 的欄位無法變更 Background Color, 所以必須要額外的判斷 */
itemcanvas := GET_ITEM_PROPERTY(cur_itm, item_canvas);
IF itemcanvas IS NOT NULL THEN
IF :main.item_type_code = '10' THEN --上架
SET_ITEM_INSTANCE_PROPERTY(cur_itm, current_record, visual_attribute, 'DATA');
ELSIF :main.item_type_code = '20' THEN --鎖檔
SET_ITEM_INSTANCE_PROPERTY(cur_itm, current_record, visual_attribute, 'CUSTOM1');
ELSIF :main.item_type_code = '30' THEN --下架
SET_ITEM_INSTANCE_PROPERTY(cur_itm, current_record, visual_attribute, 'CUSTOM2');
ELSIF :main.item_type_code = '40' THEN
SET_ITEM_INSTANCE_PROPERTY(cur_itm, current_record, visual_attribute, 'CUSTOM3');
ELSIF :main.item_type_code IS NULL THEN
SET_ITEM_INSTANCE_PROPERTY(cur_itm, current_record, visual_attribute, 'CUSTOM4');
ELSE
SET_ITEM_INSTANCE_PROPERTY(cur_itm, current_record, visual_attribute, 'DATA');
END IF;
END IF;
END IF;
cur_itm := GET_ITEM_PROPERTY(cur_itm, nextitem);
END LOOP;
END assign_visual_attribute;