暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[转载]FORM中关于item属性设置 SET_ITEM_PROPERTY用法

原创 zy 2021-11-09
7807

尽量使用APP_ITEM_PROPERTY.SET_PROPERTY和APP_ITEM_PROPERTY.SET_VISUAL_ATTRIBUTE代替SET_ITEM_PROPERTY;

set_item_property是form builder带的。app_item_property.SET_PROPERTY是oracle公司为ebs开发的包,底层还是调用set_item_property。

APP_ITEM_PROPERTY.SET_PROPERTY 用法

ALTERABLE

app_item_property.set_property(itemid, ALTERABLE,PROPERTY_ON);

等价于:

set_item_instance_property(itemid, CURRENT_RECORD,INSERT_ALLOWED, PROPERTY_ON);

set_item_instance_property(itemid, CURRENT_RECORD,UPDATEABLE, PROPERTY_ON);

set_item_property(itemid, INSERT_ALLOWED, PROPERTY_ON);

set_item_property(itemid, UPDATEABLE, PROPERTY_ON);

ALTERABLE_PLUS

app_item_property.set_property(itemid, ALTERABLE_PLUS,PROPERTY_ON);

等价于:

set_item_property(itemid, INSERT_ALLOWED, PROPERTY_ON);

set_item_property(itemid, UPDATEABLE, PROPERTY_ON);

如果item是隐藏的无效。

ENTERABLE

app_item_property.set_property(itemid, ENTERABLE,PROPERTY_ON);

等价于:

set_item_instance_property(itemid, CURRENT_RECORD,INSERT_ALLOWED, PROPERTY_ON);

set_item_instance_property(itemid, CURRENT_RECORD,UPDATEABLE, PROPERTY_ON);

set_item_instance_property(itemid, CURRENT_RECORD,NAVIGABLE, PROPERTY_ON);

set_item_property(itemid, INSERT_ALLOWED, PROPERTY_ON);

set_item_property(itemid, UPDATEABLE, PROPERTY_ON);

set_item_property(itemid, NAVIGABLE, PROPERTY_ON);

如果item是隐藏的无效。

ENABLED

app_item_property.set_property(itemid, ENABLED,PROPERTY_ON);

例如:

set_item_property(itemid, INSERT_ALLOWED, PROPERTY_ON);

set_item_property(itemid, UPDATEABLE, PROPERTY_ON);

set_item_property(itemid, NAVIGABLE, PROPERTY_ON);

如果是按钮 APP_ITEM_PROPERTY.SET_PROPERTY 等价于: set_item_property(itemid, ENABLED, PROPERTY_ON);

If the item is not a text item, list, or button, then the

APP_ITEM_PROPERTY.SET_PROPERTY call 等价于:

set_item_property(itemid, ENABLED, PROPERTY_ON);

set_item_property(itemid, INSERT_ALLOWED, PROPERTY_ON);

set_item_property(itemid, UPDATEABLE, PROPERTY_ON);

DISPLAYED

app_item_property.set_property(itemid, DISPLAYED,PROPERTY_ON);

等价于:

set_item_property(itemid, DISPLAYED, PROPERTY_ON);

如果项目不是一个显示项目设置:

set_item_property(itemid, ENABLED, PROPERTY_ON);

set_item_property(itemid, NAVIGABLE, PROPERTY_ON);

If the item is neither a display item nor a button then also set:

set_item_property(itemid, QUERYABLE, PROPERTY_ON);

set_item_property(itemid, INSERT_ALLOWED, PROPERTY_ON);

set_item_property(itemid, UPDATEABLE, PROPERTY_ON);

REQUIRED

app_item_property.set_property(itemid, REQUIRED,PROPERTY_ON);

等价于:

set_item_property(itemid, REQUIRED, PROPERTY_ON);

如果item是隐藏的无效。

set_item_instance_property,display_item两个子程序总结:

1.set_item_instance_property,display_item 两个内置子程序都可以用来设置项中某行的相关属性(同项中的其余行属性会保持原来的属性不变),如颜色。

only changes the instance of that item that belongs to the block’s current record.If you want to change all instances of an item in a multi-record block, use SET_ITEM_PROPERTY .

2.二者区别:

a. display_item 是较早版本中出现的 , 而set_item_instance_property 是较晚版本中才有的(6i 以后的应都有)。

b.display_item有一个特性,就是当通过其改变后的属性,会延伸到与其同步的项上.即与其同步的项也跟着变了.但 set_item_instance_property 已取消了此特性 .

DISPLAY_ITEM has the side-effect of also changing the appearance of any items that mirror the changed instance.

SET_ITEM_INSTANCE_PROPERTY does not change mirror items.

c.如硬是还要找个区别的话,就是调用时所需参数有所不同,一个需要提供记录号,一个不用。

其实根据这点可以猜测到 set_item_instance_property 比display_item 可能可以使用的地方要多要广 ! 至于到底哪些地方 set_item_instance_property可用而 display_item 不可用。

3.另提一下 set_item_property 这个内置子程序。通过这个内置子程序设置的是整个项(即某项的所有记录)的属性。另发现当利用此内置子程序改变颜色时,颜色值应是 r( 红) 、 g(绿 ) 、b( 蓝 )三原色的组合 , 而不是在属性面版里直接选择颜色 , 然后返回到颜色属性那栏里的值 ( 即使看起来也是 rgb组合 ) 。否则将发现设置不成功 ( 但不报错) 。如:红色为: R255G0B0 ( 而不是RED) 酸橙色为:R153G204B0 。具体要找某个颜色的 rgb组合代码可借助于 WORD 中的颜色自定义功能得出。

在Oracle 的FORM中对不同的状态采取不同的颜色显示

例如:有一张工资单 ,当某个员工的工资超过 5000时, 用户需要系统能用红色来指示员工的姓名和工资 .

实现方法:

我们新做一张 form,按常规建好block 和item并建一个 visual attributes v1(background color=red(背景颜色是红色)foreground color=red(字体颜色是红色)).在相应的 block level上新建一个 post-query trigger并编写代码如下:

–如果工资 (block.item1)大于5000

if :block.item1 > 5000 then

–指示出相应的员工姓名 (block.item2)

set_item_instance_property(‘block.item2’,To_Number(:SYSTEM.TRIGGER_RECORD),VISUAL_ATTRIBUTE,‘v1’);

–指示出相应的工资(block.item3)

set_item_instance_property(‘block.item3’,To_Number(:SYSTEM.TRIGGER_RECORD),VISUAL_ATTRIBUTE,‘v1’);

end if;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论