1

我的要求是创建一个包含 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;  
*****************************************************************************
4

0 回答 0