WHEN-NEW-FORM-INSTANCE下写: BEGIN SELECT TO_CHAR(sysdat, ‘YYYY-MM-DD HH24:MI:SS’) INTO :control.datatime FROM dual; END;
5.7 让一个输入框初始化为只读的方法一
将该项的“子类信息”设置成TEXT_ITEM_DISPLAY_ONLY即可,如图所示:
5.8判断数据项是否为空
5.9 GO_RECORD到指定记录
36 of 67
5.10 遍历行
go_block('block_name'); first_record; LOOP
message(:block_name.item);
if :system.last_record = 'TRUE' then exit; end if;
next_record; END LOOP;
5.11 实现某数据项自动按记录序号加一操作
---- 设块名为VO,要操作的数据项为VO_ID,在该块中建立块级触发子WHEN-CREATE- RECORD,每当生成新记录时VO_ID就会自动加一了,加入如下代码: :VO_ID:=:System.Trigger_Record;
5.12 当某个Item为某值时,另一个ITEM不可用
2. 在FORM中当某个Item的值为某个状态不可修改:
在block级的trigger pre_record中加入如下代码:
If :block_name.item_name = P_value then
Set_item_instance_property(‘Block_Name.Item_Name’,
Current_record,
Update_Allowed,
Property_False);
Fnd_message.debug(‘item_name=P_value时不可以修改’);
End if;
3. 在某个Item下,当该Item为空时,它将复制这个Item的上一个值。
在该Item的trigger:when_new_form_instance下输入
If :block_name.item_name is null then
Duplicate_Item;
End if;
4. 在FORM中设置某个Item在某个条件下显示时:
在form 级trigger when_new_form_instance中加入如下代码:
If :parameter.p_select =’ENABLE’ then
App_item_property.set_property(‘Block_Name.Item_Name1’,visible,Property_On);
Else
App_item_property.set_property(‘Blocke_Name.Item_name1’,visible,Property_Off);
End if;
37 of 67
6. 记录组及LOV专题
6.1三种列表项的制作(区别于值列表LOV)
列表项只能显示一列值,LOV可以弹出一个窗体,显示多列。 组合框列表项既可以选择列表也可手动输入值
6.2列表项特有属性
38 of 67
6.3记录组的使用
查询记录组就是来源于SELECT查询;
静态记录组就是手工输入的一组值; 6.4 通过语句赋值记录组
2. 加入一个文本域,用于显示LIST改变后的值
3. 加入一个按纽,用于初始化LIST的信息,其WHEN_BUTTON_PRESSED 语句为:
DECLARE
RG_ID RECORDGROUP; ERRCODE NUMBER; BEGIN
RG_ID := FIND_GROUP('REPORT_TYPE'); IF ID_NULL(RG_ID) THEN RG_ID := CREATE_GROUP_FROM_QUERY('REPORT_TYPE','SELECT ''[''||MS1||'']''||MS2,ms1 FROM RB_SET WHERE ID=4000 ORDER BY va5'); ERRCODE := POPULATE_GROUP('REPORT_TYPE'); POPULATE_LIST('BLOCK2.LIST5','REPORT_TYPE'); END IF; END;
39 of 67
40 of 67