0
点赞
收藏
分享

微信扫一扫

FORMS进阶之——增加按钮并响应执行数据库包存储过程



2.新建两个按钮(提交,取消),设置属性,把前面笔记建的那两个删掉



   *把两个按钮挨近一点,会变为弧形效果










2.增加两HSS包:



(包规格)


PACKAGE HSS_API IS
      
        g_true CONSTANT VARCHAR2(1) := upper('t');
      
        g_false CONSTANT VARCHAR2(1) := upper('f');
      
        g_miss_num CONSTANT NUMBER :=  9.99e125;
      
        g_miss_char CONSTANT VARCHAR2(1) :=  chr(0);
      
        g_miss_date CONSTANT DATE := to_date('1','j');
      
        
      
        g_ret_sts_success       CONSTANT    VARCHAR2(1)	:=  upper('s');
      
        g_ret_sts_warning	     	CONSTANT    VARCHAR2(1)	:=  upper('w');
      
        g_ret_sts_error	      	CONSTANT    VARCHAR2(1)	:=  upper('e');
      
        g_ret_sts_unexp_error  	CONSTANT    VARCHAR2(1)	:=  upper('u');
      
      END HSS_API; 
   
 
    
 
  

    HSS_FORM_UTL(包规格、包体) 
  
 
  PACKAGE HSS_FORM_UTL IS
      
        PROCEDURE display_errors;
      
      END HSS_FORM_UTL; 
   
 
    
 
  PACKAGE BODY HSS_FORM_UTL IS
      
       

-------------------------------------------------------------------------

--|This procedure is used to display errors from database |

-------------------------------------------------------------------------

PROCEDURE display_errors IS
      
          l_con           BOOLEAN;
      
          l_count         NUMBER;
      
          BEGIN
      
                l_count:=fnd_msg_pub.count_msg;
      
                IF l_count=1 THEN
      
                   fnd_message.set_string(fnd_msg_pub.get(p_msg_index=>1,p_encoded =>upper('f') )); 
      
                   fnd_message.show;
      
               ELSIF   l_count>1 THEN 
      
               	 FOR i IN 1..l_count LOOP
      
                   fnd_message.set_string(fnd_msg_pub.get(p_msg_index=>i,p_encoded =>upper('f') )||' ( '||i||' / '||l_count||' )');   
      
                   l_con:=fnd_message.warn;
      
                   EXIT WHEN NOT l_con;
      
                 END LOOP;
      
               END IF;
      
               fnd_msg_pub.delete_msg;
      
        END display_errors;
      
       
      
      BEGIN
      
         fdrcsid('$header: handstand.pld 115.1 2005/09/26 19:29:00 jim.lin ship $');
      
      END HSS_FORM_UTL;



3、在按钮“提交”新增触发器WHEN-BUTTON-PRESSED


参考代码如下:


 DECLARE
      
          x_return_status VARCHAR2(20);
      
          x_msg_count     NUMBER;
      
          x_msg_data      VARCHAR2(3000);
      
        BEGIN
      
          commit_changed;
      
          go_block('HEADERS');
      
          cux_om_order_10000_pub.submit_order(p_api_version   => 1.0,
      
                                              p_init_msg_list => hss_api.g_true,
      
                                              p_commit        => hss_api.g_true,
      
                                              x_return_status => x_return_status,
      
                                              x_msg_count     => x_msg_count,
      
                                              x_msg_data      => x_msg_data,
      
                                              p_om_header_id  => :headers.header_id);
      
          IF x_return_status <> hss_api.g_ret_sts_success THEN
      
            hss_form_utl.display_errors;
      
            RAISE form_trigger_failure;
      
          END IF;
      
          
      
          :parameter.g_query_find := 'TRUE';
      
          :parameter.header_id := :headers.header_id;
      
           app_find.find('HEADERS');
      
          :parameter.g_query_find := 'FALSE';
      
        END;


举报

相关推荐

0 条评论