这取决于你的情况,是否取决于记录数据,是否可以在用户更改数据时更改等。
如果在表单会话期间条件保持不变,请像这样使用WHEN-NEW-FORM-INSTANCE 触发器
if _condition_ then
set_item_property('your_block.item1', UPDATE_ALLOWED, PROPERTY_FALSE);
set_item_property('your_block.item2', UPDATE_ALLOWED, PROPERTY_FALSE);
...
end if;
如果您的条件取决于记录数据,请以类似方式使用POST-QUERY触发器
if _condition_ then
set_item_instance_property('your_block.item1', :SYSTEM.TRIGGER_RECORD, UPDATE_ALLOWED, PROPERTY_FALSE);
set_item_instance_property('your_block.item2', :SYSTEM.TRIGGER_RECORD, UPDATE_ALLOWED, PROPERTY_FALSE);
...
else
set_item_instance_property('your_block.item1', :SYSTEM.TRIGGER_RECORD, UPDATE_ALLOWED, PROPERTY_TRUE);
set_item_instance_property('your_block.item2', :SYSTEM.TRIGGER_RECORD, UPDATE_ALLOWED, PROPERTY_TRUE);
...
end if;
如果您的条件取决于记录数据,用户可以修改使用额外的WHEN-VALIDATE-RECORD 触发器,其代码与POST-QUERY-TRIGGER 相同