我的要求是创建一个包含 7 个字段 Item1、item2、item3、item4、item5 和 fully_processed_flag 的新表单。
我已经创建了一个表单,现在如果我启用了fully_processed_flag,那么剩余的项目需要被禁用(需要变灰)。
所以我WHEN CHECKBOX CHANGED
为fully_processed_flag 项目写了下面的代码。
但我收到了这个错误
FRM-41805:不明确的项目名称:ROWID。
当前行以不同的颜色显示为灰色,这与 oracle 标准不同。
DECLARE
LC$ITEM VARCHAR2 (255);
LC$NAVIGABLE VARCHAR2 (10);
BEGIN
LC$ITEM := GET_BLOCK_PROPERTY (:SYSTEM.TRIGGER_BLOCK, FIRST_ITEM);
WHILE LC$ITEM IS NOT NULL
LOOP
LC$NAVIGABLE := GET_ITEM_PROPERTY (LC$ITEM, NAVIGABLE);
IF LC$NAVIGABLE = 'TRUE'
THEN
IF :ITEMS_DETAILS.FULLY_PROCESSED_FLAG = 'Y'
THEN
/* SET_ITEM_INSTANCE_PROPERTY (:ITEMS_DETAILS.ITEM2,
CURRENT_RECORD,
UPDATE_ALLOWED,
PROPERTY_FALSE); */
SET_ITEM_INSTANCE_PROPERTY (LC$ITEM,
CURRENT_RECORD,
VISUAL_ATTRIBUTE,
'SELECTED');
SET_ITEM_INSTANCE_PROPERTY (LC$ITEM,
CURRENT_RECORD,
UPDATE_ALLOWED,
PROPERTY_FALSE);
SET_ITEM_INSTANCE_PROPERTY (LC$ITEM,
CURRENT_RECORD,
INSERT_ALLOWED,
PROPERTY_FALSE);
ELSE
SET_ITEM_INSTANCE_PROPERTY (LC$ITEM,
CURRENT_RECORD,
VISUAL_ATTRIBUTE,
'UNSELECTED');
SET_ITEM_INSTANCE_PROPERTY (LC$ITEM,
CURRENT_RECORD,
UPDATE_ALLOWED,
PROPERTY_TRUE);
SET_ITEM_INSTANCE_PROPERTY (LC$ITEM,
CURRENT_RECORD,
INSERT_ALLOWED,
PROPERTY_TRUE);
END IF;
END IF;
LC$ITEM := GET_ITEM_PROPERTY (LC$ITEM, NEXT_NAVIGATION_ITEM);
END LOOP;
END;
*****************************************************************************