利用FORM内置函数控制ITEM包括按钮,普通ITEM等等的属性,更多内置函数学习课参考我的博客FORM内置系统函数
http://blog.csdn.net/cai_xingyun/article/details/17167189

PACKAGE BODY ROLE_CONTROL IS
procedure set_func_role(role_name in varchar2) is --角色按钮控制
begin
case upper(role_name)
when 'CUSTOM' then
set_item_property('TRN_CONTROL.ADOPT_BUTTON',visible,property_false);
set_item_property('TRN_CONTROL.REJECT_BUTTON',visible,property_false);
when 'MANAGER' then
set_item_property('TRN_CONTROL.SUBMIT_BUTTON',enabled, property_false);--经理进入提交按钮设为enabled set_item_property('TRN_CONTROL.ADOPT_BUTTON',visible,property_true);
set_item_property('TRN_CONTROL.REJECT_BUTTON',visible,property_true);
else
FND_MESSAGE.DEBUG('ROLE_NAME 角色名 不对!');
end case;
end set_func_role; procedure set_func_state(role_name in varchar2,
order_state in varchar2) is --角色 + 状态 控制增删改
begin
case upper(order_state)
when 'NEW' then
if role_name = 'CUSTOM' then set_item_property('TRN_CONTROL.SUBMIT_BUTTON' , enabled , property_true);
--2. 通过角色控制来判断块是否可以删除
set_block_property('TRN_ORDER_HEADERS',insert_allowed,property_true);
set_block_property('TRN_ORDER_HEADERS',update_allowed,property_true);
set_block_property('TRN_ORDER_HEADERS',delete_allowed,property_true);--因为订单头的前提条件就是不能修改
set_block_property('TRN_ORDER_HEADERS',query_allowed,property_true); --LINES
set_block_property('TRN_ORDER_LINES',INSERT_ALLOWED,property_true);
set_block_property('TRN_ORDER_LINES',UPDATE_ALLOWED,property_true);
set_block_property('TRN_ORDER_LINES',DELETE_ALLOWED,property_true);
set_block_property('TRN_ORDER_LINES',query_ALLOWED,property_true);
--菜单
menu_p.menu_off('cancel');
menu_p.menu_off('close');
menu_p.menu_off('out');
elsif role_name = 'MANAGER' then
set_item_property('TRN_CONTROL.ADOPT_BUTTON' , enabled , property_false);
set_item_property('TRN_CONTROL.REJECT_BUTTON' , enabled , property_false); --在新建的时候只能进行查询
set_block_property('TRN_ORDER_HEADERS',insert_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',update_allowed,property_FALSE);
set_block_property('TRN_ORDER_HEADERS',delete_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',query_allowed,property_FALSE);
--LINES
set_block_property('TRN_ORDER_LINES',insert_allowed,property_false);
set_block_property('TRN_ORDER_LINES',update_allowed,property_FALSE);
set_block_property('TRN_ORDER_LINES',delete_allowed,property_false);
set_block_property('TRN_ORDER_LINES',query_allowed,property_FALSE);
--菜单
menu_p.menu_OFF('cancel');
menu_p.menu_OFF('close');
end if;
when 'SUBMITTED' then
if role_name = 'CUSTOM' then
-- fnd_message.debug('submmit');
set_item_property('TRN_CONTROL.SUBMIT_BUTTON' , enabled , property_false); set_block_property('TRN_ORDER_HEADERS',insert_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',update_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',delete_allowed,property_false);--因为订单头的前提条件就是不能修改
set_block_property('TRN_ORDER_HEADERS',query_allowed,property_true);
--状态为SUBMITTED的时只能让'取消'订单有效 --lines
--LINES
set_block_property('TRN_ORDER_LINES',INSERT_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',UPDATE_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',DELETE_ALLOWED,property_false);
-- set_block_property('TRN_ORDER_LINES_4810_V',query_ALLOWED,property_false); menu_p.menu_off('close');
elsif role_name = 'MANAGER' then
set_item_property('TRN_CONTROL.ADOPT_BUTTON' , enabled , property_true);
set_item_property('TRN_CONTROL.REJECT_BUTTON' , enabled , property_true);
--
set_block_property('TRN_ORDER_HEADERS',insert_allowed,property_false);
-- fnd_message.debug('update_allowed_1');
set_block_property('TRN_ORDER_HEADERS',update_allowed,property_true);----------------------------------原为ture
-- fnd_message.debug('update_allowed_2');
set_block_property('TRN_ORDER_HEADERS',delete_allowed,property_false);
--set_block_property('TRN_ORDER_HEADERS_4810_V',query_allowed,property_true); -- set_item_property('TRN_ORDER_HEADERS.ORDER_STATUS' , update_allowed , property_false); --因为管理员可以进行备注所有把其中的一个ITEM改成可更改
-- fnd_message.debug('VENDOR_NUMBER_update_allowed_false_1');
set_item_property('TRN_ORDER_HEADERS.VENDOR_NUMBER' , update_allowed , property_false);
-- fnd_message.debug('VENDOR_NUMBER_update_allowed_false_2');
SYNCHRONIZE;
--set_item_property('TRN_ORDER_HEADERS_4810_V.VENDOR_NAME' , enabled , property_false);
set_item_property('TRN_ORDER_HEADERS.ORDER_DATE' , enabled , property_false);
--set_item_property('TRN_ORDER_HEADERS_4810_V.ORDER_STATUS' , enabled , property_false);--状态时在跳过来就改的,而在这里不能改。 set_item_property('TRN_ORDER_HEADERS.ORDER_NUMBER' , enabled , property_false);
--set_item_property('TRN_ORDER_HEADERS_V.ORDER_NUMBER' , insert_allowed , property_false);
-- fnd_message.debug('DESCRIPTION_update_allowed_false_1');
set_item_property('TRN_ORDER_HEADERS.DESCRIPTION' , enabled , property_true);
-- fnd_message.debug('DESCRIPTION_update_allowed_false_2');
--set_item_property('TRN_ORDER_LINES_4810_V.TOTALMONEY' , enabled , property_false);
set_item_property('TRN_ORDER_HEADERS.DF' , enabled , property_false); -- set_item_property('TRN_ORDER_HEADERS_4810_V.DESCRIPTION' , enabled , property_true); --LINES
set_block_property('TRN_ORDER_LINES',INSERT_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',UPDATE_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',DELETE_ALLOWED,property_false);
-- set_block_property('TRN_ORDER_LINES_4810_V',query_ALLOWED,property_false); --菜单
menu_p.menu_OFF('cancel');
menu_p.menu_OFF('close');
end if;
when 'APPROVED' then
if role_name = 'CUSTOM' then
set_item_property('TRN_CONTROL.SUBMIT_BUTTON' , enabled , property_false); set_block_property('TRN_ORDER_HEADERS',insert_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',update_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',delete_allowed,property_false);--因为订单头的前提条件就是不能修改
set_block_property('TRN_ORDER_HEADERS',query_allowed,property_true); --lines
--LINES
set_block_property('TRN_ORDER_LINES',INSERT_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',UPDATE_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',DELETE_ALLOWED,property_false);
-- set_block_property('TRN_ORDER_LINES_4810_V',query_ALLOWED,property_false);
--这个里写订单的关闭菜单
menu_p.menu_off('cancel'); elsif role_name = 'MANAGER' then
set_item_property('TRN_CONTROL.ADOPT_BUTTON' , enabled , property_false);
set_item_property('TRN_CONTROL.REJECT_BUTTON' , enabled , property_false); --块只有查询
set_block_property('TRN_ORDER_HEADERS',insert_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',update_allowed,property_FALSE);
set_block_property('TRN_ORDER_HEADERS',delete_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',query_allowed,property_true); --lines
--LINES
set_block_property('TRN_ORDER_LINES',INSERT_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',UPDATE_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',DELETE_ALLOWED,property_false);
-- set_block_property('TRN_ORDER_LINES_4810_V',query_ALLOWED,property_false); --菜单
menu_p.menu_OFF('cancel');
menu_p.menu_OFF('close');
end if;
when 'REJECTED' then
if role_name = 'CUSTOM' then
set_item_property('TRN_CONTROL.SUBMIT_BUTTON' , enabled , property_true); set_block_property('TRN_ORDER_HEADERS',insert_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',update_allowed,property_true);
set_block_property('TRN_ORDER_HEADERS',delete_allowed,property_false);--因为订单头的前提条件就是不能修改
set_block_property('TRN_ORDER_HEADERS',query_allowed,property_true); -- set_block_property('TRN_ORDER_lines_4810_V',update_allowed,property_true);
--LINES
set_block_property('TRN_ORDER_LINES',INSERT_ALLOWED,property_true);
set_block_property('TRN_ORDER_LINES',UPDATE_ALLOWED,property_true);
set_block_property('TRN_ORDER_LINES',DELETE_ALLOWED,property_true);
set_block_property('TRN_ORDER_LINES',query_ALLOWED,property_true);
--写'取消,关闭'菜单
elsif role_name = 'MANAGER' then
set_item_property('TRN_CONTROL.ADOPT_BUTTON' , enabled , property_false);
set_item_property('TRN_CONTROL.REJECT_BUTTON' , enabled , property_false); --块只能查询
set_block_property('TRN_ORDER_HEADERS',insert_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',update_allowed,property_FALSE);
set_block_property('TRN_ORDER_HEADERS',delete_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',query_allowed,property_true); --lines
--LINES
set_block_property('TRN_ORDER_LINES',INSERT_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',UPDATE_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',DELETE_ALLOWED,property_false);
-- set_block_property('TRN_ORDER_LINES_4810_V',query_ALLOWED,property_false); --菜单
menu_p.menu_OFF('cancel');
menu_p.menu_OFF('close'); end if;
when 'CANCELLED' then
if role_name = 'CUSTOM' then
set_block_property('TRN_ORDER_HEADERS',insert_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',update_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',delete_allowed,property_false);--因为订单头的前提条件就是不能修改
set_block_property('TRN_ORDER_HEADERS',query_allowed,property_true);
--lines
--LINES
set_block_property('TRN_ORDER_LINES',INSERT_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',UPDATE_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',DELETE_ALLOWED,property_false);
-- set_block_property('TRN_ORDER_LINES_4810_V',query_ALLOWED,property_true); menu_p.menu_OFF('cancel');
menu_p.menu_OFF('close');
elsif role_name = 'MANAGER' then
set_block_property('TRN_ORDER_HEADERS',insert_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',update_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',delete_allowed,property_false);--因为订单头的前提条件就是不能修改
set_block_property('TRN_ORDER_HEADERS',query_allowed,property_true); --lines
--LINES
set_block_property('TRN_ORDER_LINES',INSERT_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',UPDATE_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',DELETE_ALLOWED,property_false);
--set_block_property('TRN_ORDER_LINES_4810_V',query_ALLOWED,property_false); menu_p.menu_OFF('cancel');
menu_p.menu_OFF('close');
end if;
when 'CLOSED' then
if role_name = 'CUSTOM' then
set_item_property('TRN_CONTROL.SUBMIT_BUTTON' , enabled , property_false); set_block_property('TRN_ORDER_HEADERS',insert_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',update_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',delete_allowed,property_false);--因为订单头的前提条件就是不能修改
set_block_property('TRN_ORDER_HEADERS',query_allowed,property_true); --lines --LINES
set_block_property('TRN_ORDER_HEADERS',INSERT_ALLOWED,property_false);
set_block_property('TRN_ORDER_HEADERS',UPDATE_ALLOWED,property_false);
set_block_property('TRN_ORDER_HEADERS',DELETE_ALLOWED,property_false); menu_p.menu_OFF('cancel');
menu_p.menu_OFF('close');
elsif role_name = 'MANAGER' then
set_block_property('TRN_ORDER_HEADERS',insert_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',update_allowed,property_false);
set_block_property('TRN_ORDER_HEADERS',delete_allowed,property_false);--因为订单头的前提条件就是不能修改
set_block_property('TRN_ORDER_HEADERS',query_allowed,property_true); --lines --LINES
set_block_property('TRN_ORDER_LINES',INSERT_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',UPDATE_ALLOWED,property_false);
set_block_property('TRN_ORDER_LINES',DELETE_ALLOWED,property_false);
-- set_block_property('TRN_ORDER_LINES_4810_V',query_ALLOWED,property_false); menu_p.menu_OFF('cancel');
menu_p.menu_OFF('close');
end if;
else
GO_BLOCK('TRN_ORDER_HEADERS');
end case;
end set_func_state; END;

FORM开发技术之动态控制某些item的属性的更多相关文章

  1. ios开发——实用技术总结Swift篇&swift常用开发技术总结

    swift常用开发技术总结 懒加载:属性,数组(字典),控件... 数组(懒加载): lazy var shops:Array<Dictionary<String, String>& ...

  2. 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? .Net Web开发技术栈

    通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?   什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念 ...

  3. .NET Web开发技术简单整理

    在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...

  4. Web开发技术发展历史

    Web开发技术发展历史   来自:天码营 原文:http://www.tianmaying.com/tutorial/web-history Web的诞生 提到Web,不得不提一个词就是"互 ...

  5. Autodesk 最新开发技术研讨会 -8月22日-Autodesk北京办公室

    为了增进与广大中国地区Autodesk产品的二次开发人员的了解与互动,帮助中国地区的Autodesk产品二次开发人员了解Autodesk最新的二次开发技术动向,并获得Autodesk公司专业开发支持顾 ...

  6. 转载:.NET Web开发技术简单整理

    在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...

  7. WPF开发技术介绍

    本月做了一个小讲座,主要是WPF的开发技术介绍,由于是上班时间,去听的人不多,但对于自己来说至少是又巩固了Winform的知识,抽时间写一篇文章,在此分享给大家,有什么宝贵建议大家也可以提给我,谢谢. ...

  8. Windows开发技术的历史

    原文地址:http://www.kuqin.com/windows/20090315/40172.html Windows已经有22年的历史,这22年来,微软官方主力推行的编程语言与API有四个分水岭 ...

  9. iOS开发技术分享(1)— iOS本地数据存储

    iOS开发技术分享(1)— iOS本地数据存储 前言: 我本是一名asp.net程序员,后来加入了iOS游戏开发队伍,到现在也有一年多的时间了.这一年来,每天都干到2.3点钟才睡觉,不为别的,只为了学 ...

随机推荐

  1. Mlecms Getshell

    参考来源:https://bbs.ichunqiu.com/thread-13703-1-1.html 位于:/inc/include/globals.php 第24-28行.有个任意变量覆盖. fo ...

  2. [WC 2011]Xor

    Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 ...

  3. [APIO 2012]派遣

    Description 在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿. 在这个帮派里,有一名忍者被称之为Master.除了Master以外,每名忍者都有且仅有一个上级.为 ...

  4. NOIP 2011 观光公交

    题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第 0 分钟出现在 1号景点,随后依次前往 2 ...

  5. 【luogu3384】【模板】树链剖分

    省选被暴虐,成功爆0...顺便ditoly差点全省总分Rank1 orz..... 于是开始赶进度学新算法.... 然后决定开始学习树剖orz... 发现树剖很好用啊!!!! 然后做了模板题. 题目就 ...

  6. 2015 多校联赛 ——HDU5334(构造)

    Virtual Participation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Ot ...

  7. hdu 3016 dp+线段树

    Man Down Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  8. VK-Cup2017 Wild Card Round 2

    来自FallDream的博客,未经允许,请勿转载,谢谢. Cf的Vkcup外卡赛2  上次round2和ditoly翻车了 所以只好来打打了  规则是给一道比较特殊的题目,你要找出较优的解 Unive ...

  9. prop与attr的区别

    与prop一样attr也可以用来获取与设置元素的属性. 区别在于,对于自定义属性和选中属性的处理. 选中属性指的是 checked,selected 这2种属性 1. 对于自定义属性 attr能够获取 ...

  10. js将当前时间格式化为年-月-日 时:分:秒

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...