c# itextsharp append pdf : Saving pdf forms in acrobat reader Library software component .net winforms wpf mvc integrating-forms11g-and-reports11g-19052041-part1211

Oracle Fusion Middleware 11 - Integrating Oracle Reports with Oracle Forms  
Note that if you are using the REPORT_OTHER built-in to pass application parameters to Oracle 
Reports, the application parameters must also be contained in the pfaction parameter. 
Using PL/SQL Functions to Encode URL Parameters 
Because the “pfaction” parameter is added as an ACTION parameter to the Oracle Reports HTML 
parameter form, it is important to ensure that no un-encoded characters are included or errors may 
result.  One example that may cause problems when embedded in a URL is a blank (space). Therefore, 
most developers URL-encode blank as “%20”. The PL/SQL function “ENCODE”, as listed below, is 
an example that encodes the following characters: “;”, “/ ”, ”?”, ”:”, ”@”, ”+”, ”$”, ”,” and “ “ 
(semicolon, forward slash, question mark, colon, at, plus sign, dollar sign, comma, and blank space).  
FUNCTION ENCODE (URL_PARAMS_IN Varchar2) RETURN VARCHAR2 IS 
v_url  
VARCHAR2(2000) := URL_PARAMS_IN; -- Url string 
v_url_temp  
VARCHAR2(4000) :=‘‘; -- Temp URL string 
v_a  
VARCHAR2(10); -- conversion variable 
v_b  
VARCHAR2(10); -- conversion variable 
c  
CHAR; 
i  
NUMBER(10); 
BEGIN 
FOR i IN 1..LENGTH(v_url) LOOP 
c:= substr(v_url,i,1); 
IF c in (‘;’, ‘/’,’?’,’:’,’@’,’+’,’$’,’,’,’ ‘) THEN 
v_a := ltrim(to_char(trunc(ascii(substr(v_url,i,1))/16))); 
IF v_a = ‘10’ THEN v_a := ‘A’; 
ELSIF v_a = ‘11’ THEN v_a := ‘B’; 
ELSIF v_a = ‘12’ THEN v_a := ‘C’; 
ELSIF v_a = ‘13’ THEN v_a := ‘D’; 
ELSIF v_a = ‘14’ THEN v_a := ‘E’; 
ELSIF v_a = ‘15’ THEN v_a := ‘F’; 
END IF; 
v_b := ltrim(to_char(mod(ascii(substr(v_url,i,1)),16))); 
IF v_b = ‘10’ THEN v_b := ‘A’; 
ELSIF v_b = ‘11’ THEN v_b := ‘B’; 
ELSIF v_b = ‘12’ THEN v_b := ‘C’; 
ELSIF v_b = ‘13’ THEN v_b := ‘D’; 
ELSIF v_b = ‘14’ THEN v_b := ‘E’; 
ELSIF v_b = ‘15’ THEN v_b := ‘F’; 
END IF; 
v_url_temp := v_url_temp||’%’||v_a||v_b; 
ELSE 
v_url_temp :=v_url_temp||c; 
END IF; 
END LOOP; 
return v_url_temp; 
END; 
Figure 7:  PL/SQL function to URL-encode strings 
Saving pdf forms in acrobat reader - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
exporting pdf form to excel; exporting pdf data to excel
Saving pdf forms in acrobat reader - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
make pdf form editable in reader; how to save editable pdf form in reader
Oracle Fusion Middleware 11 - Integrating Oracle Reports with Oracle Forms  
Building a Procedure to Call Reports with Parameter Forms 
Calling Oracle Reports using RUN_REPORT_OBJECT is best handled by a generic PL/SQL 
procedure in Forms.  To successfully call a report from Oracle Forms, the following minimum 
information needs to be passed to the Reports pfaction command: 
Desformat, to determine the Reports output format 
Destype, to determine the output device, (printer or cache) 
Userid, to connect Reports to the database 
Reports file name, to specify the Reports module to be executed 
Paramform = yes, to enable the Reports parameter form to be shown in the client browser 
The generic PL/SQL procedure handling calls to Oracle Reports using RUN_REPORT_OBJECT 
requires a Reports Object node to be created in Forms as mentioned earlier in this paper. One Reports 
Object node can be used to run any Report.
The following arguments are expected by this procedure:
report_id 
The Report Object as obtained by a call to 
FIND_REPORT _OBJECT(‘<name>‘);
report_server_name 
The name of the Reports Server, for example:  “repserv11g” 
report_format 
HTML, HTMLCSS, PDF, RTF, XML
4
report_destype_name
CACHE, FILE, MAIL, PRINTER
4
report_file_name 
The Reports source module with or without extension 
report_other_param 
Any other parameter like paramform or custom application parameters. If printing 
to FILE or MAIL, desname needs to be provided as ‘otherparam’ 
report_servlet 
The virtual path for the Reports Servlet. The virtual path, if not specified as 
relative, must contain the protocol (http or https), the host name, the port, the 
Reports context root (i.e. /reports) and the name of the Servlet (i.e. rwservlet). 
Figure 8:  Parameters passed in by the generic procedure example 
_________________________________ 
4.  Additional DESTYPE and DESFORMAT values can be found in the Oracle Reports deployment guide, titled “Publishing Reports 
with Oracle Reports Services” 
10 
VB.NET PDF: How to Create Watermark on PDF Document within
angle and orientation and even saving the created ASP.NET AJAX, Silverlight, Windows Forms as well powerful & profession imaging controls, PDF document, image
collect data from pdf forms; extract table data from pdf
PDF to WORD Converter | Convert PDF to Word, Convert Word to PDF
for the users; Offer the function of saving conversion preference. More PDF Related Converters. available for ASP.NET AJAX, Silverlight, Windows Forms as well as
extracting data from pdf into excel; how to save fillable pdf form in reader
Oracle Fusion Middleware 11 - Integrating Oracle Reports with Oracle Forms  
PROCEDURE RUN_REPORT_OBJECT_PROC ( 
report_id    
REPORT_OBJECT, 
report_server_name   VARCHAR2, 
report_format  
VARCHAR2, 
report_destype_name  NUMBER, 
report_file_name  
VARCHAR2, 
report_otherparam   VARCHAR2, 
reports_servlet  
VARCHAR2)  IS 
report_message  
VARCHAR2(100) :=‘‘; 
rep_status   
VARCHAR2(100) :=‘‘; 
vjob_id    
VARCHAR2(4000) :=‘‘; 
hidden_action  
VARCHAR2(2000) :=‘‘; 
v_report_other  
VARCHAR2(4000) :=‘‘; 
i  
number (5); 
 
char; 
c_old  
char; 
c_new  
char; 
BEGIN 
-- Set up Reports runtime parameters 
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_COMM_MODE,SYNCHRONOUS); 
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_FILENAME,report_file_name); 
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_SERVER,report_server_name); 
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESTYPE,report_destype_name); 
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESFORMAT,report_format); 
-- Set up string for pfaction parameter 
hidden_action := hidden_action ||’&report=‘|| 
GET_REPORT_OBJECT_PROPERTY(report_id,REPORT_FILENAME); 
hidden_action := hidden_action||’&destype=‘|| 
GET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESTYPE); 
hidden_action := hidden_action||’&desformat=‘|| 
GET_REPORT_OBJECT_PROPERTY (report_id,REPORT_DESFORMAT); 
-- Note that the username and password information will be visible within the html source 
-- of the parameter form.  This can be prevented by enabling single sign-on.  
IF get_application_property (sso_userid) IS NULL Then 
-- No SSO user 
hidden_action := hidden_action||’&userid=‘|| 
get_application_property(username)||’/’|| 
get_application_property(password)||’@’|| 
get_application_property(connect_string); 
ELSE 
-- SSO user identified 
hidden_action := hidden_action || ‘&ssoconn=‘ ||  get_application_property(config); 
End if; 
-- The Reports “other” parameters are passed as key value pairs.  For example:   “key1=value1 key2=value2…” 
Figure 9:  Generic procedure to call reports which use parameter forms. (part 1 of 2) 
11 
Oracle Fusion Middleware 11 - Integrating Oracle Reports with Oracle Forms  
-- The following loop replaces the delimited blank with an “&” used on the web.  This replacement only works for 
-- values that don’t include blanks themselves.  If this is a requirement, then you need to customize this code accordingly. 
-- c_old is initialized with a dummy value 
c_old :=’@’; 
FOR i IN 1..LENGTH(report_otherparam) LOOP 
c_new:= substr(report_otherparam,i,1); 
IF (c_new =‘ ‘) THEN 
c:=‘&’; 
ELSE 
c:= c_new; 
END IF; 
-- eliminate multiple blanks 
IF (c_old =‘ ‘ and c_new = ‘ ‘) THEN 
null; 
ELSE 
v_report_other := v_report_other||c; 
END IF;  
-- save current value as old value 
c_old := c_new;  
END LOOP; 
hidden_action := hidden_action ||’&’|| v_report_other; 
--“reports_servlet” contains the path to the Reports Servlet 
-- Example 1: 
-- 
Forms and Reports are on the same host and accessed using the same port (e.g. 8888) 
-- 
reports_servlet := ‘/reports/rwservlet’ 
-- Example 2: 
-- 
Forms and Reports are on separate hosts and/or are accessed using a different port (e.g. 9001 & 9002) 
-- 
reports_servlet := ‘http://host:port/reports/rwservlet’ 
hidden_action := reports_servlet||’?_hidden_server=‘||report_server_name|| encode(hidden_action); 
SET_REPORT_OBJECT_PROPERTY  (report_id,REPORT_OTHER,’pfaction=‘|| 
hidden_action||’ ‘||report_otherparam); 
-- call Reports 
report_message := run_report_object(report_id); 
rep_status := report_object_status(report_message); 
IF rep_status=‘FINISHED’ THEN 
vjob_id :=substr(report_message,length(report_server_name)+2,length(report_message)); 
WEB.SHOW_DOCUMENT(reports_servlet||’/getjobid’||vjob_id||’?server=‘||report_server_name,’ _blank’); 
ELSE 
-- handle errors here 
message(rep_status); 
END IF; 
END; 
Figure 10:  Generic procedure to call reports which use parameter forms. (part 2 of 2) 
12 
Oracle Fusion Middleware 11 - Integrating Oracle Reports with Oracle Forms  
Examples of How to Call the Generic Procedure 
Assuming that a Reports Object “reptest” exists in the Forms module, the following code can be used 
in a WHEN-BUTTON-PRESSED trigger to execute a Report that has a parameter form. 
The generic PL/SQL procedure requires the Reports Object to be passed as an argument. The Reports 
Object of a given Reports Object name can be obtained using the FIND_REPORT_OBJECT built-in. 
Because it is assumed that the server running Forms Services also hosts the Reports Services, no host 
name needs to be passed as an argument for the Reports Servlet path variable. Instead ‘/reports/ 
rwservlet’ can be used as a relative path.  Paramform=yes makes Reports first expose its parameter 
form. The parameter form will always display in HTML even if the Reports destination format is PDF. 
(...) 
-- Find the id of the Reports Object in Forms 
report_id:=FIND_REPORT_OBJECT(‘reptest’); 
--  Call the generic PL/SQL procedure to run the Reports 
--  Remember that, in this example the value of reports_server can only be a  
--   relative path if the same host and port are used to access both Forms and Reports. 
RUN_REPORT_OBJECT_PROC( report_id, 
‘repserv1-pc’, 
‘HTMLCSS’, 
CACHE, 
‘REPTEST’, 
‘paramform=yes’, 
‘/reports/rwservlet’); 
(...) 
Figure 10:  Generic procedure to call reports which use parameter forms. 
In the example below, an additional parameter is passed to Reports. Note that the delimiter is a blank 
character between the first key-value pair and the second. 
(...) 
-- Find the id of the Reports Object in Forms 
report_id:=FIND_REPORT_OBJECT(‘reptest’); 
--  Call the generic PL/SQL procedure to run the Reports 
--  Remember that, in this example the value of reports_server can only be a  
--   relative path if the same host and port are used to access both Forms and Reports. 
RUN_REPORT_OBJECT_PROC( report_id, 
‘repserv1-pc’, 
‘HTMLCSS’, 
CACHE, 
‘REPTEST’, 
‘paramform=no p_deptno=10’, 
‘/reports/rwservlet’); 
(...) 
Figure 11:  Calling a report that has no parameter form, but requires p_deptno to be passed as a runtime parameter. 
13 
Oracle Fusion Middleware 11 - Integrating Oracle Reports with Oracle Forms  
If the Reports Services runs on a different machine or with a different port number than Forms 
Services, you’ll need to provide the fully qualified URL for the Reports Servlet.  Note that these 
examples work with the PL/SQL procedure RUN_REPORT_OBJECT_PROC, which is explained 
earlier in this document. You are free to create your own PL/SQL code to handle the “pfactions” 
command in your applications. 
(...) 
-- Find the id of the Reports Object in Forms 
report_id:=FIND_REPORT_OBJECT(‘reptest’); 
--  Call the generic PL/SQL procedure to run the Reports 
--  Remember that, in this example the value of reports_server can only be a  
--   relative path if the same host and port are used to access both Forms and Reports. 
RUN_REPORT_OBJECT_PROC( report_id, 
‘repserv1-pc’, 
‘HTMLCSS’, 
CACHE, 
‘REPTEST’, 
‘paramform=yes’, 
‘http://someServer:9002/reports/rwservlet’); 
(...) 
Figure 12:  Calling a report which has a parameter form, but whose Reports Servlet listens on a different port (or host). 
The Oracle Forms WEB.SHOW_DOCUMENT Built-in 
Use the WEB.SHOW_DOCUMENT built-in to access any web site (URL) from a Forms application.  
This built-in passes the provided URL to the client’s default web browser.  Oracle Forms has no 
control over the receiving browser.  The built-in simply passes the URL to the browser.  It is 
recommended that only web protocols be used with this built-in although it is possible to access some 
local content.  For example, this built-in works best with protocols like HTTP, HTTPS, FTP, etc.  You 
can use others such as, MAIL, MAILTO, FILE, but these are not recommended.  These others should 
be accessed using other means such as WebUtil.  Refer to the Forms Builder Online Help for 
information about WebUtil. 
14 
Oracle Fusion Middleware 11 - Integrating Oracle Reports with Oracle Forms  
WEB.SHOW_DOCUMENT Syntax
WEB.SHOW_DOCUMENT (URL, DESTINATION); 
URL 
The URL is passed as a string (‘http://www.oracle.com’), in a variable, or as a 
combination of both. If the addressed web page is located on the same host as 
the Forms Server, a relative path could be used (‘/virtual_path/’). 
DESTINATION (aka TARGET) 
Definition of the target where the addressed web page should be displayed.  
Values must be single-quoted and lower case. 
_blank (default)  
Loads the document into a new, unnamed top-level window. 
‘windowName’.  Displays the document in a window named 
windowName. This window is created if necessary.  
_self 
Loads the document into the same frame or window as the source 
_parent  
Load the document into the parent window or frameset containing the 
hypertext reference. If the reference is in a window or top-level 
frame, it is equivalent to the target _self.  
_top  
Loads the document into the window containing the hypertext link, 
replacing any frames currently displayed in the window.  
<target name> 
Displays the Web page in a frame specified by the target_name. 
Figure 13:  WEB.SHOW_DOCUMENT syntax 
Calling Reports using WEB.SHOW_DOCUMENT 
In the previous examples, it was illustrated how RUN_REPORT_OBJECT could be used to request 
that a report be generated then have its output opened by calling the Reports GETJOBID command 
in a WEB.SHOW_DOCUMENT call.  For example: 
WEB.SHOW_DOCUMENT(reports_servlet||’/getjobid’||vjob_id||’?server=‘||report_server_name,’ _blank’); 
Another option for calling Oracle Reports from Oracle Forms is to access the Reports Servlet directly 
using the form using WEB.SHOW_DOCUMENT.  The necessary URL would use the following 
syntax example: 
http://<hostname>:<port>/reports/rwservlet?server=<reportserver>&report=<report>.rdf&desformat=[htmlcss|pdf|xml|delimit
ed|]&destype=cache&userid=<user/pw@database>&paramform=[no|yes] 
15 
Oracle Fusion Middleware 11 - Integrating Oracle Reports with Oracle Forms  
The following example calls a report from a form. It assumes that the user parameter “p_deptno” is 
read from a form’s item “deptno” in the block “dept.”. 
/* WHEN-BUTTON-PRESSED */ 
DECLARE 
vc_url varchar2(200); 
BEGIN 
vc_url:=‘http://<hostname><port>/reports/rwservlet?server=‘|| 
‘Repsrv&report=reptest.rdf&desformat=htmlcss&destype=cache‘|| 
‘&userid=user/pw@database&p_deptno=‘||:dept.deptno||’&paramform=no’; 
WEB.SHOW_DOCUMENT(vc_url,’_blank’); 
END; 
Figure 14:  General use of WEB.SHOW_DOCUMENT calling the Reports Servlet 
Here is an example of how to use relative addressing if the Oracle Reports Server is installed on the 
same host as Oracle Forms. 
/* WHEN-BUTTON-PRESSED */ 
DECLARE 
vc_url varchar2(100); 
BEGIN 
vc_url:=‘/reports/rwservlet?server=Repsrv&report=reptest.rdf&desformat=htmlcss’|| 
‘&destype=cache&userid=user/pw@database&p_deptno=‘||:dept.deptno||’&paramform=no’; 
WEB.SHOW_DOCUMENT(vc_url,’_blank’); 
END; 
Figure 15:  Using a relative path to access the Reports Servlet from Forms 
Hiding the Username and Password 
To execute a report in this manner, the database connect information must be passed as part of the 
request URL.  Adding sensitive user information to any URL request is a serious security issue because 
all URLs requested by a user can be looked up in the Browser’s URL history or easily captured in 
network traffic.  To avoid this, implement single sign-on and omit the username and password from 
the request. 
For more information on how to implement a single sign-on solution, refer to the Fusion Middleware 
documentation library for your version.
16 
Oracle Fusion Middleware 11 - Integrating Oracle Reports with Oracle Forms  
17 
Summary
Oracle Forms and Oracle Reports can be integrated using either the RUN_REPORT_OBJECT built-
in or the Forms WEB.SHOW_DOCUMENT built-in. Use the RUN_REPORT_OBJECT built-in to 
securely pass reports parameters to Oracle Reports Services.  Using RUN_REPORT_OBJECT is also 
a good way to seamlessly request reports which will not immediately provide output to the end-user.  
WEB.SHOW_DOCUMENT is preferred for simple requests and those which do not require the 
passing of any sensitive data or user information. 
Using single sign-on, users are automatically authenticated to run Oracle Reports Services if they have 
already been authenticated to access the Oracle Forms application which called the report.   
Additional information about this topic can be found in the Forms Builder Online Help and the Forms 
Deployment Guide. 
Oracle Fusion Middleware 11gR1 and 11gR2 –  
Integrating Oracle Reports with Oracle Forms 
February 2013 
Author: Michael Ferrante 
Contributing Authors: Frank Nimphius 
Oracle Corporation 
World Headquarters 
500 Oracle Parkway 
Redwood Shores, CA 94065 
U.S.A. 
Worldwide Inquiries: 
Phone: +1.650.506.7000 
Fax: +1.650.506.7200 
oracle.com
Copyright © 2013, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only and the 
contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other 
warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or 
fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are 
formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any 
means, electronic or mechanical, for any purpose, without our prior written permission. 
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.  
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and 
are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are 
trademarks or registered trademarks of Advanced Micro Devices.  UNIX is a registered trademark of The Open Group. 0612 
Documents you may be interested
Documents you may be interested