zoukankan      html  css  js  c++  java
  • 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;
    


     

  • 相关阅读:
    30.过滤掉smb.conf配置文件中的空行和注释行和空白行(初级写法很不严谨)
    29. 分析文件内容,判断 fgets 共执行了多少次?
    28. 使用fgetc()/fputc()实现文件的加密与解密,存在溢出风险。
    27.读文件时通过两种方式判断文件结尾
    26. 使用fgetc()/fputc()实现文件的拷贝
    24. 练习定义几种指针及数组
    23. 实现 func()函数,在func()中,通过操作arr,实现修改str1到str2字符串,并打印所有字符串,考察对指针与数组与字符串的基本掌握
    Windows程序设计(Charles Petzold)HELLOWIN程序实现
    jvm 解释器和JIT编译器
    java 创建线程的方法
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299441.html
Copyright © 2011-2022 走看看