c# parse pdf table : Export pdf bookmarks to excel software control dll windows web page wpf web forms CrystaltoBIP0-part1388

Converting reports from  
Business Objects Crystal Reports 
to Oracle BI Publisher 
An Oracle White Paper 
February, 2008 
Export pdf bookmarks to excel - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
create bookmarks in pdf reader; editing bookmarks in pdf
Export pdf bookmarks to excel - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
how to add a bookmark in pdf; add bookmarks to pdf file
Converting reports from  
Business Objects Crystal Reports  
to Oracle BI Publisher 
Introduction.......................................................................................................3
High level comparison of Crystal Reports with BI Publisher....................3
Step-by-step conversion of Crystal Reports..................................................4
1. Convert Connection and Data Model...................................................5
1.1: Convert Connection to Data Source.............................................5
1.2: Convert Crystal SQL to BI Publisher Data Model......................5
1.3: Convert Parameters..........................................................................6
1.4: Convert Summary Fields, Running Total Fields, Built-in 
Functions, Custom Functions and Formula Fields.............................7
2. Convert Layout.........................................................................................9
2.1: Open a Blank RTF............................................................................9
2.2: Get Sample data................................................................................9
2.3: Create layout template......................................................................9
2.4: Preview and Upload Report..........................................................10
Crystal report conversion example...............................................................10
EmployeeSalaryReport...............................................................................10
1. Analyze Connection and Data Model.................................................12
1.1: Connection to Data Source...........................................................12
1.2: SQL query........................................................................................14
1.3: Parameters........................................................................................15
1.4: Summary Fields, Running Total Fields, Built-in Functions, 
Custom Functions and Formula Fields...............................................18
Convert Connection and Data Model.....................................................19
1.1: Convert Connection to Data Source...........................................19
1.2: Convert SQL to Data Model.........................................................19
1.3: Convert Parameters........................................................................21
1.4: Convert Summary Fields, Running Total Fields, Built-in 
Functions, Custom Functions and Formula Fields...........................24
2.  Analyze Report Layout.........................................................................26
Convert Report Layout..............................................................................31
2.1: Open a blank RTF..........................................................................31
2.2: Get Sample data..............................................................................31
2.3: Create Layout Template.................................................................32
2.4: Preview and Upload Report..........................................................44
Conclusion........................................................................................................45
Converting reports from Business Objects Crystal Reports to Oracle BI Publisher          Page 2 
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
document file. Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. Also a preview
create pdf bookmark; how to create bookmark in pdf with
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Demo Code in VB.NET. The following VB.NET codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
copy bookmarks from one pdf to another; creating bookmarks in pdf files
INTRODUCTION 
Oracle Business Intelligence Publisher (BI Publisher), formerly known as Oracle XML 
Publisher, has been included as part of the Oracle Enterprise Business Suite for over 
four years, and has successfully evolved to meet a wide range of business document 
requirements.  After its release as an independent product and option to the Oracle 
Application Server in 2006, many companies have implemented it as a stand-alone 
system to author, manage and deliver reports and critical business documents.  In 
addition, BI Publisher is included in Oracle Business Intelligence Enterprise Edition, 
Oracle PeopleSoft Enterprise, and Oracle JD Edwards EnterpriseOne as a way to 
easily create, generate, and maintain highly formatted documents. Now that the 
benefits of this product have been proven, there is a lot of interest in how to convert 
reports from different reporting tools into BI Publisher. This paper provides a step-by-
step approach and an example on how to manually convert reports from Crystal 
Reports® into Oracle BI Publisher reports.  
HIGH LEVEL COMPARISON OF CRYSTAL REPORTS WITH BI 
PUBLISHER 
Oracle BI Publisher, with its unique architecture of separating the data model from 
layout enables multiple layouts per report and reduces the time and cost to create and 
manage reports. Crystal Reports combines data query and layout definition into a single 
.RPT file and a new report has to be created every time a requirement for new layout 
arises even if another report already has the same data.  
Oracle BI Publisher leverages familiar desktop applications – Microsoft Office Word, 
Adobe Acrobat, and Microsoft Office Excel to create layouts, enabling non-technical 
users to comfortably create layouts for their reports. Crystal Reports has a proprietary 
developer-oriented tool to create reports. 
With the use of XML Localization Interchange File Format (XLIFF), an open standard 
technology for language translation, Oracle BI Publisher supports up to 185 languages 
and 244 territories. Users do not need to install Oracle BI Publisher in a specific 
language to build or view a report in that language. Crystal Reports has limited language 
Converting reports from Business Objects Crystal Reports to Oracle BI Publisher          Page 3 
C# PDF File Split Library: Split, seperate PDF into multiple files
Split PDF file by top level bookmarks. The following C# codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
bookmarks pdf; bookmarks pdf file
C# PDF File Compress Library: Compress reduce PDF size in C#.net
NET framework. Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. C# class demo
how to create bookmarks in pdf file; excel pdf bookmarks
support (11 languages) and users may have to install separate report servers for each 
language they want to support. 
Oracle BI Publisher supports multiple delivery channels – email, ftp, secured ftp, 
printer, fax, webDAV, AS2, CUPS server. Crystal Reports only supports email, ftp, 
printer and Inbox delivery channels. 
Despite the differences in architecture, design, translation and delivery, Oracle BI 
Publisher enables you to create documents and reports equivalent to those you can 
create with Business Objects’ Crystal Reports.   
STEP-BY-STEP CONVERSION OF CRYSTAL REPORTS 
Note:  
1.
The sample reports used in this white paper were created in Crystal Reports 
XI version. Even so, these steps are also generally applicable to reports 
created with other editions and earlier versions of Crystal reporting tools. 
2.
Pre-requisites for converting reports are BI Publisher Template Builder and 
BI Publisher Enterprise Server. The Server and Template Builder can be 
installed on separate systems and downloaded from : 
http://www.oracle.com/technology/software/products/pu
blishing/index.html
3.
Some of the steps assume that you have appropriate access to view Crystal 
Reports Designer Environment, Administrator level access to BI Publisher 
Enterprise Server, and Administrator or Developer level access to Template 
Builder. 
We can separate the conversion steps into two phases: 
1.
Convert Connection and Data Model 
1.1.
Convert Connection to Data Source 
1.2.
Convert Crystal SQL to BI Publisher Data Model 
1.3.
Convert Parameters
1.4.
Convert Summary Fields, Running Total Fields, Built-in Functions, Custom 
Functions and Formula Fields.
2.
Convert Layout  
2.1.
Open a blank RTF 
2.2.
Get sample data 
2.3.
Create Layout Template 
2.4.
Preview and Upload Template
Converting reports from Business Objects Crystal Reports to Oracle BI Publisher          Page 4 
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
Export PDF images to HTML images. The HTML document file, converted by C#.NET PDF to HTML SDK, preserves all the original anchors, links, bookmarks and font
bookmark pdf documents; bookmark pdf in preview
How to C#: Basic SDK Concept of XDoc.PDF for .NET
C# programmers can convert Word, Excel, PowerPoint Tiff, Jpeg, Bmp, Png, and Gif to PDF document. This class describes bookmarks in a PDF document.
display bookmarks in pdf; create bookmarks pdf files
1. Convert Connection and Data Model 
Crystal Reports supports various types of data sources.  The following steps assume a 
database as data source. 
1.1: Convert Connection to Data Source. 
The first step in converting a report is to get the details of the data source for the 
report.  In Crystal Reports Developer ®, use the Data Explorer to view the database 
connection information. Crystal Reports Developer supports several data sources – 
ODBC, Oracle Server, XML, etc. Once you connect, the Data Explorer displays the 
database current connection, and on right click displays the properties option. The 
properties dialog shows the database type (ODBC (RDO) or Oracle Server etc.), Data 
Source Name or Service, User Id, and other related information. For ODBC (RDO) 
data source type, you need to look at the Windows ODBC Administrator and locate 
the DSN name to get the database server information. For Oracle Server data source 
type, you need to locate the service name in TNSNames.ora file to read the database 
server information. Crystal also supports JDBC (JNDI) data source type i.e., you can 
choose either a JDBC or a JNDI connection. The details of this connection are 
prompted from the Data Explorer or Database Expert. 
To create a database connection in BI Publisher, logon and navigate to the Admin tab 
of Oracle BI Publisher Enterprise. Create a JDBC data source using the database detail 
that you captured. You can also create a JNDI data source by adding a JNDI service in 
the Server to connect to the database and then by referring to the JNDI name from BI 
Publisher JNDI set up.  
1.2: Convert Crystal SQL to BI Publisher Data Model 
Now that you know the data source, you need to investigate and convert the data logic. 
In BI Publisher each report has a Data Model.  A Data Model is composed of one or 
more Data Sets.  Data Sets can be one of several types such as a SQL query, a call to a 
web service, or a reference directly to a file containing XML data.  A Data Template is 
a type of custom Data Set that provides more sophisticated control over report data 
such as merging data from multiple queries, calling procedural routines, and defining a 
hierarchy for the resulting XML data. 
In Crystal Reports Developer, the data logic definition is found in the Database Expert. 
Here it shows all the tables, commands or any other data source used in the report. 
Also the commands can be viewed in the Database Expert. The query which fetches 
data for the report can be viewed by opening the ‘Show SQL Query’ dialog under the 
‘Database’ menu. This generally prompts for entering the parameters and the SQL 
query includes the parameter value. 
Converting reports from Business Objects Crystal Reports to Oracle BI Publisher          Page 5 
C# Create PDF Library SDK to convert PDF from other file formats
create searchable PDF document from Microsoft Office Word, Excel and PowerPoint. Create and save editable PDF with a blank page, bookmarks, links, signatures
adding bookmarks in pdf; bookmarks pdf files
VB.NET PDF: Basic SDK Concept of XDoc.PDF
VB.NET programmers can convert Word, Excel, PowerPoint Tiff, Jpeg, Bmp, Png, and Gif to PDF document. This class describes bookmarks in a PDF document.
convert word to pdf with bookmarks; adding bookmarks to pdf
In BI Publisher, you can add a new data set under data model and select data source 
type as SQL Query. Copy the SQL query from Crystal Reports ‘Show SQL Query’ 
dialog window and paste it in the text area of BI Publisher data set.  
Crystal reports supports database function as a data source, where the data logic is 
defined in a function and the report simply calls the function. In such a case, you 
should examine the function to determine what the function does. A Function 
returning a single value can be handled by a SQL Query Data Set or a Data Template 
but a complex function is best handled by a Data Template. If the Crystal report uses 
REF CURSOR to retrieve a recordset, then you will need to use a Data Template. REF 
CURSOR as a return value of a function is supported by BI Publisher but if the 
function has a REF CURSOR as OUT or IN OUT parameters then you will need a 
wrapper function with a return type as REF CURSOR or you can modify the original 
function to return a REF CURSOR. 
If the function contains a DML statement for data insert, update, or delete then you 
should split the function into two parts; one part to handle the DML statements and 
the other to handle the select query of the function. Any calculation or any DML 
statement that needs to be executed before the select query is executed should be done 
using beforeReport trigger. Similarly, any calculation or DML statement, which needs 
to be executed after the query is executed and XML data is received on the Server, 
should be done using an afterReport trigger. 
1.3: Convert Parameters
Note: This is an optional step and is required only for reports that have parameters. 
To find the parameters in Crystal Report, expand the Parameter Fields in the Field 
Explorer. There can be several parameters defined in a report, but only those with a 
check symbol are attached to the report. The details of each parameter can be viewed 
by right clicking on the parameter and selecting edit option. The Formula Workshop 
shows the role of these parameters in record selection.  
Parameters in BI Publisher are defined in the Report Editor along with the Data 
Model. These parameters can be passed to the database query or can be passed to the 
layout for dynamic layout formatting.  
Crystal Reports support parameters as input box, List of Values (LOV), range bound 
parameters, cascading parameters, date parameter using a date picker. 
In BI Publisher, input box is defined in the report editor as parameters with parameter 
type as text. List of Values can be defined in the Report Editor as well; both static and 
dynamic list can be created. Dynamic LOV is defined by writing an SQL query.  
For range bound parameters, you can define two separate parameters; one input box to 
enter the lower range and the other input box to enter the upper range. In case this 
range has to be displayed in the report output, these two parameters can be 
concatenated and displayed on the RTF template. Cascading prompt behavior can be 
achieved in BI Publisher by defining parameters and associating each of them with a 
List of Value. Since the List of Value gets data from a query the cascading relationship 
should be built at the SQL query level where one LOV binds with another LOV. On 
Converting reports from Business Objects Crystal Reports to Oracle BI Publisher          Page 6 
the UI of Parameter definition page, there is a check the box for ’Refresh other 
parameters on change’ which enables the cascading behavior. The date parameter with 
a date picker UI is also supported in BI Publisher. 
Finally, to allow these parameters to associate with the report data, you will have to edit 
the report SQL query which you copied from Crystal. The parameters passed will 
become host variables in the report SQL query. In case of Data Template, the report 
SQL query will be treated the same way and additionally you will have to include the 
parameter names in the parameters section.  
1.4: Convert Summary Fields, Running Total Fields, Built-in Functions, Custom Functions 
and Formula Fields  
Summary Fields, Running Total Fields, Built-in Functions, Custom Functions and 
Formula Fields are very common in Crystal Reports. It is important to understand the 
role of these features in every report before converting them. Summary Fields and 
Running Total Fields are purely data calculation fields, but Built-in Functions, Custom 
Functions and Formula Fields may apply to Report layout formatting as well. 
Therefore, your first step should be to separate the Built-in functions, Custom 
functions and Formula Fields into data calculation function and layout formatting 
function categories. You need to evaluate whether these Formulae or Functions can be 
handled at the time of Data Extraction, if so they would fall into data calculation 
function category. If the formula field is a simple calculation then you can allow it to be 
handled on RTF template as well, but most of the complex formula fields, custom and 
Built-in functions should be converted into a PL SQL function. The formula fields and 
Custom or Built-in Functions that contribute to the layout formatting of the report 
would fall into layout formatting function category and they should be handled on the 
RTF template.  
Summary Fields:    
A Summary Field in Crystal Report is used to create summary data within the group 
footer or header. The summary Field allows you to create different types of calculation 
– sum, average, count etc. – on any report field. You can check the details of 
calculation by right clicking on the Summary Field and then selecting Edit Summary. 
In BI Publisher, a Summary Field can be handled at the time of data extraction using 
Data Template, where you can define an aggregate function (SUM, AVG, COUNT, 
MIN, MAX) at group level in dataStructure section.  
Also a Summary Field can be handled in the RTF  template in BI Publisher by using 
the Insert Fields from toolbar or Menu bar of the BI Publisher Template Builder by 
selecting the calculation function from dropdown list and checking the ‘On Grouping’ 
checkbox. For the summary functions that are not available from the drop down list 
you will have to modify the code beneath the inserted placeholder in the RTF template.  
Converting reports from Business Objects Crystal Reports to Oracle BI Publisher          Page 7 
Running Total Fields: The Running Total Fields in Crystal Reports are an advanced 
version of Summary Fields. It evaluates the running total at different levels – for each 
record, on change of field, on change of group, or based on a formula. Also it allows 
the user to reset the running total value at different levels – for each record, on change 
of field, on change of group, or based on a formula. Running Total Fields can be 
created on any database column or a formula field.  
To handle Running Total Fields in BI Publisher you should use the concept described 
under title “Page-Level Calculations”, subtitle “Running Totals” in the BI Publisher 
Users Guide. Use the updateable variable. The Running Total Fields that are reset on 
change of group can be treated as Summary Fields and converted as described for 
Summary Fields on the RTF template. If the Running Total Fields is built over a 
Formula Field, then you can use a PL SQL function to define the Formula field. The 
PL SQL function, when included in SQL query, will return data as XML element that 
can be treated like any other XML elements for Running Totals. Another way to handle 
Formula Fields under Running Total Field is to write the formula using XSL or BI 
Publisher syntax on the RTF template.  
Built-in Functions and Operators: There are several built-in functions and operators 
provided by Crystal Reports. Some of them already exist as an equivalent function or 
operator in BI Publisher; however, you will not find an equivalent function for several 
of them. You will need to identify the complex Built-in functions that are related to 
data calculation and convert them into PL SQL function. The simple built-in functions 
can be handled at RTF template using BI Publisher code syntax.   
Custom Functions: Custom Functions can be found at three places within Crystal 
Reports Formula Workshop 
ɷ
Report Custom Functions 
ɷ
Repository Custom Functions 
ɷ
Under Built-in Functions - Additional Functions (Plug-in Functions) 
First check if an equivalent function is already available in BI Publisher. For example, 
Date, Number or Currency formatting etc. is already available in BI Publisher for 
which you may have written a custom function in Crystal Reports. If the function does 
not exist in BI Publisher then you should convert those functions that are related to 
data calculation into a PL SQL function and should be called with in the SQL query 
statement. 
Formula Fields: The formula fields, as mentioned earlier, need to be evaluated and 
separated out into the data calculation and layout formatting formulae categories. The 
ones that fall into data calculation formulae category should be included as part of data 
model in BI Publisher. You can create PL SQL function to handle such formulae and 
Converting reports from Business Objects Crystal Reports to Oracle BI Publisher          Page 8 
they will be processed at database level. The PL SQL function can be called from the 
SQL query and the corresponding calculated data will be part of the XML data. 
It is a common practice to use custom Functions or Built-in Functions and Operators 
in a Formula Field for code re-use. The same code reusability approach can be used 
while converting them into PL SQL function.  
2. Convert Layout 
See the user guide of Oracle BI Publisher 
10.1.3.3.2 for details on supported features 
related to layout design. 
2.1: Open a Blank RTF 
To start layout design open a blank document in Microsoft Word.  
Note: In general starting with blank RTF is easier but in some situations you might 
want to start with the editable RTF output from Crystal Reports and use it as the initial 
template for BI Publisher. This technique may be helpful when the editable RTF 
output file has not lost any formatting feature and the report has complex layout 
formatting. For dynamic column reports and cross-tab reports blank RTF is the best 
approach. 
2.2: Get Sample data 
Log on to the BI Publisher server from the Template Builder Add-in to Word and 
open the newly created report to load XML data for template design.   
Alternatively, you can log in to the BI Publisher server, view the report output data and 
export the XML data.  This XML data can be loaded from the BI Publisher Template 
Builder.  
2.3: Create layout template 
At a high level we can categorize a Crystal Report layout into three categories – layout 
design, calculations and formatting. 
2.3.1:  Layout Design 
Layout Design includes identification of report format – tabular, form or free form, 
identification of data elements, hierarchy, grouping, sorting, and filtering. These 
contents acts as the backbone of the report layout design. 
To build the data organization in BI Publisher, you can select a wizard in Template 
Builder. The ‘Table Wizard’ can handle most of the simple data organizations and the 
Table/Form wizard can handle some complex formats involving nested grouping. You 
can use the ‘Cross Tab’ wizard to build cross tab reports and ‘chart’ tool to insert 
various types of charts. The Insert Field dialog allows you to simply insert one field at a 
time.   This can work along with the ‘Repeating Group’ feature in the Insert Menu of 
toolbar to create complex formats. 
2.3.2: Calculations 
Converting reports from Business Objects Crystal Reports to Oracle BI Publisher          Page 9 
Calculations refer to all the indirect data values which are obtained from a built-in 
function, Summary Field, expression, formula fields, custom functions or conditional 
display logic, Parameters, etc.  
In BI Publisher, first check if an equivalent built-in function exists. Next you can check 
whether the layout formatting is available as Native Microsoft Word or RTF formatting 
feature. If so, just apply the desired formatting using equivalent Word or RTF 
formatting feature. If such a function does not exist then they need to be written as 
code in the Text Form Fields or directly on RTF page using either BI Publisher syntax 
or XSL syntax.  
A sub-template can replace a complex formatting function or a re-usable formatting 
function. Similar to functions parameters can be passed to these sub-templates and 
variables can be shared between the main report and the sub-templates. These sub-
templates can even replace the sub-reports used for condition based formatting.   
2.3.3: Formatting 
Formatting refers to the visual display of data elements, table size, table borders, table 
background, static text, images, background color, font size, font color, font style, 
alignment, header and footer contents etc.  Since BI Publisher can leverage Microsoft 
Office Word for creating RTF templates, you have the access to all the formatting 
functionality available in Word.   
2.4: Preview and Upload Report 
At anytime while creating the RTF layout you can preview what the final report will 
look like in the desired output format.  Navigate to ‘Preview Template’ under Oracle 
BI Publisher menu or Toolbar to view the report in PDF, HTML, RTF or Excel 
formats.  Inspect the preview version of the report to check that you have replicated 
the layout and formatting you want in the report.  If not, continue to modify and then 
preview until the report looks the way you want. 
Once the template is complete, navigate to ‘Publish Template As’ under Oracle BI 
Publisher menu.  Enter a template Name and click OK on the next prompt to 
complete the upload. 
CRYSTAL REPORT CONVERSION EXAMPLE 
EmployeeSalaryReport 
This is a very simple report covering some of the basic features to outline the 
conversion steps. At a glance the output shows that the report data has been grouped 
by Department and then by Manager. Total salary is the sum of annual salary of 
employees reporting to a Manager and this is displayed as the last row of data under 
each Manager. The report uses a banded format with alternate rows shaded in grey 
background.  
Converting reports from Business Objects Crystal Reports to Oracle BI Publisher          Page 10 
Documents you may be interested
Documents you may be interested