CREATE OR REPLACE package demo_pkg is /*--------------------------------------------------------------------* This package includes all the PL/SQL code that is used to demonstrate the use of PL/SQL in WebDB as discussed in the paper #906 "Top Tips and Techniques for WebDB" for IOUG-A Live! 2000. Author : Sameer Jejurkar Hencie Consulting Services *--------------------------------------------------------------------*/ empty_vc_arr owa.vc_arr; /*--------------------------------------------------------------------* This is a sample procedure used as the basis for creating a form as discussed in "Tip # 2: Developing Forms based on Stored Procedures" *--------------------------------------------------------------------*/ procedure form_proc(char_field1 in varchar2, char_field2 in varchar2, number_field in number); /*--------------------------------------------------------------------* This is the procedure that is called when the form in "Tip # 5: Using reports to create special form" is submitted. *--------------------------------------------------------------------*/ procedure report_submit(order_num_list in owa.vc_arr default empty_vc_arr, p_arg_names in owa.vc_arr default empty_vc_arr, p_arg_values in owa.vc_arr default empty_vc_arr, submit in varchar2 default null); /*--------------------------------------------------------------------* This is the procedure can be used to display the initial page in the target frame when frame driver component is run. This is as discussed in "Tip #8: Write your own PL/SQL packages". *--------------------------------------------------------------------*/ procedure init_target_frame_page(item_name in varchar2 default 'link'); /*--------------------------------------------------------------------* This function returns the URL (as a varchar2 string) to call a WebDB form for a specific row. It can be called in a SQL statement and can be used in frame driver and report WebDB components. This is as discussed in "Tip #8: Write your own PL/SQL packages". FORM_OWNER is the name of the schema that owns the WebDB form FORM_NAME is the name of the WebDB form ID_NAME is the name of the column that has been defined as the alternate ROWID in the form ID_VALUE is the value of the alternate ROWID *--------------------------------------------------------------------*/ function target_frame_url(form_owner in varchar2, form_name in varchar2, id_value in varchar2, id_name in varchar2 default 'id') return varchar2; pragma restrict_references(target_frame_url, WNDS, WNPS, RNDS); /*--------------------------------------------------------------------* packaged variable to store the system generated order number used for WebDB master-detail form as discussed in "Tip #7: Master Detail Forms" *--------------------------------------------------------------------*/ generated_order_num number default null; /*--------------------------------------------------------------------* This procedure writes the system generated order number passed from the before-insert-row trigger on ORDER_HEADER table to a packaged variable. This can be a part of your Table API. P_ORDER_NUM is the order number *--------------------------------------------------------------------*/ procedure set_order_number(p_order_num in number); /*--------------------------------------------------------------------* This function reads and returns the system generated order number to the before-insert-row trigger on ORDER_LINE table. This can be a part of your Table API. *--------------------------------------------------------------------*/ function get_order_number return number; END demo_pkg; / CREATE OR REPLACE PACKAGE BODY demo_pkg AS procedure form_proc(char_field1 in varchar2, char_field2 in varchar2, number_field in number) is begin htp.htmlOpen; htp.headOpen; htp.title('Form Based on Stored Proc Successful'); htp.headClose; htp.bodyOpen; htp.header(1,'Field 1 : '||char_field1); htp.header(2,'Field 2 : '||char_field2); htp.header(3,'Number Field : '||number_field); htp.header(4,'Header 4'); htp.bodyClose; htp.htmlClose; end form_proc; procedure report_submit(order_num_list in owa.vc_arr default empty_vc_arr, p_arg_names in owa.vc_arr default empty_vc_arr, p_arg_values in owa.vc_arr default empty_vc_arr, submit in varchar2 default null) is begin --------------------------------------------------------------------- -- please note that the procedures WWV_HEADINGS.SHOW_HEADER and -- WWV.HEADINGS.SHOW_FOOTER is an undocumented internal part -- of WebDB and may not be supported in the future releases of WebDB. -- You can use such calls to achieve a WebDB look and feel for -- your hand-coded components. But keep in mind that Oracle may -- not support some or all of these in the future releases of WebDB. --------------------------------------------------------------------- webdb.wwv_headings.show_header(p_template=>'IOUG_2000.DEMO_TEMPLATE', p_title=>'Report disguised as a Form', p_heading=>'Report as Form' ); htp.bold('Selected Clients are:'); htp.br; for i in 1..order_num_list.count loop htp.bold(order_num_list(i)); htp.br; end loop; webdb.wwv_headings.show_footer(p_template=>'IOUG_2000.DEMO_TEMPLATE'); end report_submit; procedure init_target_frame_page(item_name in varchar2 default 'link') is begin htp.p('<body bgcolor="white" background="http://www.geocities.com/images/world.jpg"><center> <script language="javascript" type="text/javascript" src="//ad.broadcaststation.net/ads/show_ad.php?width=728&height=90"></script> </center> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-4KX380T5BD"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-4KX380T5BD'); </script> <!-- END GOOGLE --> <geoads></geoads> '); htp.p('<b><i>Click on any '||item_name||' to see the details.'); htp.p('</body>'); end init_target_frame_page; function target_frame_url(form_owner in varchar2, form_name in varchar2, id_value in varchar2, id_name in varchar2 default 'id') return varchar2 is begin return(form_owner||'.'||form_name||'.show?p_arg_names=_alt_rowid'|| '&p_arg_names=_rowid&p_arg_values='||id_name||'&p_arg_values='||id_value); end target_frame_url; procedure set_order_number(p_order_num in number) is begin generated_order_num := p_order_num; end set_order_number; function get_order_number return number is begin return(generated_order_num); end get_order_number; END demo_pkg; /
Copyright �2000 by Sameer Jejurkar
Hosted by www.Geocities.ws

1