FORM开发技术之动态控制某些item的属性
利用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的属性的更多相关文章
- ios开发——实用技术总结Swift篇&swift常用开发技术总结
swift常用开发技术总结 懒加载:属性,数组(字典),控件... 数组(懒加载): lazy var shops:Array<Dictionary<String, String>& ...
- 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? .Net Web开发技术栈
通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? 什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念 ...
- .NET Web开发技术简单整理
在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...
- Web开发技术发展历史
Web开发技术发展历史 来自:天码营 原文:http://www.tianmaying.com/tutorial/web-history Web的诞生 提到Web,不得不提一个词就是"互 ...
- Autodesk 最新开发技术研讨会 -8月22日-Autodesk北京办公室
为了增进与广大中国地区Autodesk产品的二次开发人员的了解与互动,帮助中国地区的Autodesk产品二次开发人员了解Autodesk最新的二次开发技术动向,并获得Autodesk公司专业开发支持顾 ...
- 转载:.NET Web开发技术简单整理
在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...
- WPF开发技术介绍
本月做了一个小讲座,主要是WPF的开发技术介绍,由于是上班时间,去听的人不多,但对于自己来说至少是又巩固了Winform的知识,抽时间写一篇文章,在此分享给大家,有什么宝贵建议大家也可以提给我,谢谢. ...
- Windows开发技术的历史
原文地址:http://www.kuqin.com/windows/20090315/40172.html Windows已经有22年的历史,这22年来,微软官方主力推行的编程语言与API有四个分水岭 ...
- iOS开发技术分享(1)— iOS本地数据存储
iOS开发技术分享(1)— iOS本地数据存储 前言: 我本是一名asp.net程序员,后来加入了iOS游戏开发队伍,到现在也有一年多的时间了.这一年来,每天都干到2.3点钟才睡觉,不为别的,只为了学 ...
随机推荐
- Spring Cloud Eureka 自我保护机制
Eureka Server 在运行期间会去统计心跳失败比例在 15 分钟之内是否低于 85%,如果低于 85%,Eureka Server 会将这些实例保护起来,让这些实例不会过期,但是在保护期内如果 ...
- mysql之查询
#数据准备drop table if exists class;create table class( class_no int(2) unsigned zerofill primary key ...
- 线程基础(CLR via C#)
1.线程基础 1.1.线程职责 线程的职责是对CPU进行虚拟化.Windows 为每个进程豆提供了该进程专用的线程(功能相当于一个CPU).应用程序的代码进入死循环,于那个代码关联的进程会&quo ...
- POJ2454 Jersey Politics
Description In the newest census of Jersey Cows and Holstein Cows, Wisconsin cows have earned three ...
- [JLOI2015]装备购买
题目描述 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装备有 m 个属性,用向量zi(aj ,.....,am) 表示 (1 <= i <= n; 1 <= j < ...
- USACO 2017 January Platinum
因为之前忘做了,赶紧补上. T1.Promotion Counting 题目大意:给定一个以1为根的N个节点的树(N<=100,000),每个节点有一个权值,对于每个节点求出权值比它大的子孙的个 ...
- 【HDU 2966 k-dimensional Tree 入个门】
·“k-d树是一种分割k维数据空间的数据结构.主要应用于多维空间关键数据的范围搜索和最近邻搜索……”’' ·英文题,述大意: 给出平面内n个点(n<=100000,0<=x, ...
- django-rest-framework 注意事项
注意事项: 在使用django rest framework时候由于网上资料太多,出现了 由一下两个函数导致的问题: from django.views.decorators.csrf import ...
- PTA 邻接矩阵存储图的深度优先遍历
6-1 邻接矩阵存储图的深度优先遍历(20 分) 试实现邻接矩阵存储图的深度优先遍历. 函数接口定义: void DFS( MGraph Graph, Vertex V, void (*Visit)( ...
- Linux学习之CentOS(一)--CentOS6.5环境搭建
一.前言 作为一个从事运维工作好几年的老运维来说,linux系统怎能不学呢?所以,这几天自己准备学习一下linux操作系统.废话不多说,直奔主题. 要学linux开发,首先得要安装linux系统吧,这 ...