• 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;
    


     

  • 相关阅读:
    tar 只解压tar包中某个文件
    mui项目中如何使用原生JavaScript代替jquery来操作dom
    uploadify3.2.1的参数设置
    String扩展 让你在PadLeft和PadRight时不再受单双字节问题困扰
    Eziriz .NET Reactor(.net混淆器) v5.9 完美安装破解版(附破解文件)
    小程序要求的 TLS 版本必须大于等于 1.2
    如何在ASP.NET 网站项目中使用C# 6?
    XML 文档(1, 2)中有错误:不应有 <xml xmlns=''>
    导出toolStrip1中的图标
    windows media player 官方修复工具下载及修复方法
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299441.html
Copyright © 2020-2023  润新知