Crystal Reports





Crystal Reports is a business intelligence application from SAP SE. It is used to graphically design data connections and report layouts from a wide range of data sources including Excel spreadsheets, Oracle, SQL Server databases and Access databases, BusinessObjects Enterprise business views, and local file-system information. Report designers can place fields from these sources on the report design surface, and can also deploy them in custom formulas (using either BASIC or Crystal's own syntax), which are then placed on the design surface. Crystal Reports also supports subreports, graphing, and a limited amount of GIS functionality.

Share tech news, updates, or what's on your mind.

Sign up to Post

I need to verify the driver that is being used for a crystal report. I just want to make sure that the way I am doing it is correct. In looking at all the screenshots I made I thought this might be helpful to those that may not know. This image may also be too cluttered but when taken in pieces might be useful to others. I did not install the drivers but came in after that was done and was told where the data was located. Can someone verify that my description is spot on or want to add anything I would appreciate it. Thank you.

The point of this is to show the commonalities that are present when navigating through the various sections of menus and windows.
Helping a user identify the name of the database, the driver used in the database and the User who has privileges.

1. When in your active Crystal Report go to the Database Menu See fig 1 Click on Set Datasource Location
Here you will find the Current Data Source Section, the Report, the connection (DatabaseName) and the Properties of the connection Expand them all.

Figures 1 2 3
2. Launch the ODBC Administrator of choice. 32 or 64 bit as the case may be. Choose whether the DSN = Data Source Name is either a User DSN, System DSN or File DSN.
User DSN = Data is only accessible by a specific user(s), System DSN = Data is accessible by anyone who has access to the system specified , File DSN = Data anyone who has access to the File specified. See …
I am trying to install just the Microsoft ODBC for Oracle 6.01.7601.23391 MSORCL32.DLL on a
Windows 2012 Server It needs to be able to be installed on the 64 bit ODBC Admin.
I already have one installed on a Windows 7 machine but I did not install it.
When I go to the 2012 Server I notice it does not have it listed in the Drivers Tab of the ODBC Administrator tools.
Since this is going to be used with Crystal Reports and an Oracle Database. I assume it does not matter if it is a 32 bit version?
Currently the report is working and running just fine installed in ODBC Admin 64 bit version on another machine. Windows 7 Pro

I have searched most of today and cannot seem to get the correct file on the correct machine. Is there something unusual I have to do since it is a 32 bit and I need it on the 64 bit ODBC Admin location. Please advise. Thank you.
I have a nested IF in Record selection criteria.
I have two parameters, first parameter can be "" or some value.
My 2nd parameter can be one of 3 values. (SS/CR/COM).  If I comment out the code for 2nd parameter, I am getting results.  If I uncomment the code for 2nd parameter, I am not getting any records.  So, I thought that my NestedIF is incorrect.
Can you please help? Thanks in advance.

My conditions are as below.

({@p_package}="" OR {cmdSO.Parent_package}={@p_package})    //  first parameter

//second parameter below.

   IF {@p_PackType}='SS' Then {cmdSO.Cat_Type_Code} = 'SS'

    ELSE IF {@p_PackType}='CR' Then {cmdSO.Cat_Type_Code} <> 'SS'

         ELSE IF {@p_PackType}='COM' Then ({cmdSO.Cat_Type_Code} <> 'SS' AND {cmdSO.Pub_Cat_Cd}='PLM')

Hi, I have a parameter that's a number which is accepting a year (ex: 2018). But it displays as 2,018.00 when I printed on the report.
I need to pass 2018 to the database rather than 2,018.00 in Record Selection Criteria
I don't want to convert into string because my database field is smallint.
I tried truncate, Round.  It is still displaying as 2,018.00
How can I make this parameter to display as 2018
Please help.
I have an issue with Crystal Report Viewer 2013 on how it runs under IE11.
I installed SAP Crystal Reports runtime engine for .NET framework on our web server (Win 2008 64-bit) and created simple web test (Login.asp, RunReport.aspx).
Login.asp form submits parameters and pass them in RunReport.aspx where Crystal Viewer is called.
Test works, but when report generates multiple pages, page navigation (clicking "Next page" or "Previous page") courses browser history to grow.
As a result to get back to Login.asp using browser back button as many clicking required as how many pages you visited in the report.
Changing Zoom also generates extra page in history.
I tried to run this test under Chrome and experienced performance I need, visited pages were not added to browser history.
Will appreciate any advice on how to achieve the same effect when using IE.
I have 2 Windows Applications which already contains a CrystalReports1.rpt, CrystalReport11 and CrystalReportViewer1 in Form1 design.
1. How do I merge the 2 into 1 Windows Application AND
2. What changes do I need to make (where), so there isn't any confusion between the 2 reports?

Both reports will be accessed via a separate  button for each.

Thank you,

i  am put Crystal Report Selection Formula  in Report Viewer  ASP.NET  but show error in report

"Logon failed. Error in File GDM_Summary_Acc 4876_5784_{94B465AA-E059-4907-BB38-CB4DB4F8BDB8}.rpt: Unable to connect: incorrect log on parameters."

CrystalReportViewer1.SelectionFormula = "{ABC.Group_Name} = '" + G_Name + "' AND {ABC.GM_Date} >= Date(#" + newfromdate + "#)  And {ABC.GM_Date} <=Date(#" + newtodate + "#)";

Open in new window

and Remove this code open report with All Data....

Please Help me...
I have a date field that's stored as a number, I'm aware that some of its value are corrupt, but I need to find a way to convert then extract the good dates, I've so far used various formulas, but to no avail, here's what I used, what do you recommend.

stringvar MyDate:=totext({MyDBDate},0,"");

NumberVar input := {MyDBDate};
If input < 10101
then StringVar input2 := "010110"
else input2 := ToText (input, "000000") ;

NumberVar input := {MyDBDate};
If input < 19590101 then Date (1959, 01, 01) else
Val(ToText(input,0,"") [1 to 4]),
Val(ToText (input, 0 , "") [5 to 6]),
Val(ToText (input, 0 , "") [7 to 8]))

date(mid(totext({MyDBDate},0,''),5,2)+'/'+ right(totext({MyDBDate},0,''),2) + '/' + left(totext({MyDBDate},0,''),4))
Enterprise system HTML can be modified ("hacked"), allowing a user to see data they shouldn't see, by inspecting the page.

I'm no web programmer but generally familiar with HTML. I was really surprised that the HTML could be modified so easily.

The HTML is generated from Oracle Designer, a really old tool that is outdated but we're still using it.

Isn't there some way to mask the code? or make it unchangeable? We've also had issues in the past where SQL code / values are exposed and were able to be changed. That too surprised me. That was fixed with some back-end programming (the HTML could still be modified).

In the screen shot, the ID # can be changed and so the user can see another user's info, by either guessing another's ID or sleuthing to find someone specific's ID.
CRV 11 - I have a report that lists all employee numbers (and other employee demographic data) and their supervisor's employee number.   The EMPLOYEE table has an inner join to the SUPERV table (which has the supervisor's employee number).  I need a formula that will identify if an employee is ALSO a supervisor.  Thanks
As you can probably tell from my question below, I have no experience with Crystal Reports....need some help with one file.
I have a field in Crystal Reports that's pulling info from 2 different fields in Database.
Right now that info shows in one row, and I'm trying to find a way to print those two fields below one another.
Formula looks like this:
:= {WMSalesLine.Description}&" "&{WMSalesLine.ShortDescription}

Displayed text: "text 1  text 2"

Would like it to show like this, even if database field(s) are =""
Text 1
Text 2

Is there a way to modify existing formula to achieve this?

I tried adding a separate field in Crystal Report, but it keeps coming back that "formula didn't compile".
Report is attached...field is "SalesLineDescription" under section :"Details"

      I have a Crystal report that I would like to have the word “Stockroom” print in a field if another field is greater than 0.00 or if yet another field is null. I used the following but it does not seem to work.

if {@adjusted_qty}  > 0.00 or IsNull ({@excess})then "Stockroom"

Any help with this would be appreciated.

Thank you
This is a question that I have little understanding of. I understand what a Equal, Left Outer, Right Outer and Union Join is. As for the rest I am confused. This document  is straight out of Crystal Reports Help file. As you can see there are literally no definitions or examples for it. I do not know how hard this would be to give an example and give some definitive answer to what they mean but I thought I would try. Here it is straight out of the help....

Linking options
Crystal Reports enables you to specify the type of join and type of link you want to use when linking tables. You can also enforce the use of tables in your joins. Joins and links indicates how linked fields in two tables are compared when records are read. Join, enforce, and link options can be specified in the Link Options dialog box. Using the various join enforcement options can ensure that linked tables are included in the SQL query, even when none of the fields in the table are used in the report.

 When you link fields using joins, no indexed fields are required.
The join types are:

Inner join
Left Outer join
Right Outer join
Full Outer join
The enforce join options are:

Not Enforced
Enforced From
Enforced To
Enforced Both
The link types are:

Equal [=] link
Greater Than [>] link
Greater Than Or Equal [>=] link
Less Than [<] link
Less Than Or Equal [<=] link
Not Equal [!=] link
I cannot figure out how to remove the period from a number formatted field in Crystal Reports. So basically here is the situation:

For the amounts.....
  • 501.20
  • 21001.93
  • 792.00

I need them to output like this:

Does anyone have any suggestions on things I can try? I already tried Replace and ToText and a couple others with nosuccess. Thank you in advance.
Hello Experts,

I want to have a clear understanding of how Crystal Reports 2013 processes subreports. I have a main report that includes four subreports linked to the main report by a case_id database field. Two of the subreports reside in a page header b section of the main report. The other two subreports reside in group header 4a and 4c sections of the main report. I want to know how Crystal Reports processes the subreports...either one at a time after processing or pulling all of the data from the database for the main report, or if it pulls the data for the subreports as it's processing each case_id returned by the query in the main report. There are a total of 5 groups in the report...event type, defendant_name, dfndt_id, case_number, and charge_disp. Is it possible for you to provide a general explanation of how Crystal Reports would process the data and generate the report based on the information I've provided here?

Thank you
We have a crystal report that has been in production for a few years, now we want a parameter added to interface which is our erp system syteline.   We have added a simple check box which we have as a binary field 1 true and 0 false.  
Next we need to pass that new value to the crystal report, so we right click and add parameter to be binary to the report and place it in the correct location.   When we open the interface and pass the value we get the below.  We have never been able to add parameters to crystal once is was built without rebuilding it.    I really don't want to rebuilt this report any ideas?

The report calls a sql procedure Sql 2012 R2.  I have attached a screen shot of the added parameter if that helps.

crystal version (crystal reports 2013) .

***** Error [6/26/2018 10:15:12 AM] *****
Experienced an exception while executing [PrepareReportParms]; The types of the parameter field and parameter field current values are not compatible.
   at CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e)
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetParameterValue(String name, Object val)
   at Mongoose.MGReportProcessor.CrystalReportProcessor.PrepareReportParms()
<InnerException>The types of the parameter field and parameter field current values are not compatible.</InnerException>

The process [C:\Program Files …
How to print QR Code in Crystal report 8.5 and Crystal Report 11 ?
Dear Sir , I am using below mention code for pdf generation from crystal report. But in this process every pdf is opening in the pdf reader. I don't want to open the every please suggest solution.

 Report.ExportOptions.ApplicationFileName = Text3.Text & "\" & nFileName & ".pdf"
                Report.ExportOptions.DestinationType = crEDTApplication
                Report.ExportOptions.DiskFileName = Text3.Text & "\" & nFileName & ".pdf"
                Report.ExportOptions.PDFExportAllPages = True
                Report.ExportOptions.FormatType = crEFTPortableDocFormat
                Report.DisplayProgressDialog = False
                Report.Export False
I have an existing application which uses Crystal Reports & remote (on the internet) MySQL. I wish to add an image to the report for each record.
I've got the images saved in a field called photo structured as a LONGBLOB.

1. How do I add the 'photo' field in the Field Explorer, so that it can be included & displayed on the report?

Currently I'm using ADO.NET (XML) to reference the MySQL data.

            sql = "select gate.fullname,, gateaccess.gadate, from gateaccess join gate on = where gadate > '" & datetime & "' and gadate < '" & datetime2 & "' order by gateaccess.gadate, asc;"
            cmd.CommandText = sql

            myAdapter.SelectCommand = cmd

            myData.WriteXml("C:\GateAccess\gateaccessdataset.xml", XmlWriteMode.WriteSchema)


Open in new window

Here is the gateaccessdataset.xml:

<?xml version="1.0" standalone="yes"?>
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Table">
                <xs:element name="fullname" type="xs:string" minOccurs="0" />
How can I do the following using SAP BusinessObjects Enterprise XI 3.1

a. Publish a Crystal Report. (Done)
b. Schedule the report to run once a month. (Done)
c. Save the report (pdf) to a folder in the root of BOE XI 3.1 (To Do)

The pdf should be available for predesignated group of individuals to view at there leisure.

Is this doable?  Please provide detailed steps to make this happen.

I have a stored procedure in Oracle that I wish to use for a query in Crystal Reports for visual Studio.

The procedure is as follows - that works fine for dates.  

Dow, If I wanted to create a parameter for, say, StyleNo, however the styleNo could have multiple paramaters OR be null, i.e. Parameter optional in Crystal, how could I go about doing that?

Thanks a million

create or replace procedure pr_TopMerchSales(DateFrom IN Date, DateTo IN Date, prc out sys_refcursor)
  open prc for
  select  Dept
      , DIV
      , StyleDesc
      , StyleNo
      , vendor
      , Round((select sum(V.qty) from V_TOP_MERCH_SALES V where V.vendor = I.vendor and I.Dept = V.DEPT and I.DIV = V.DIV and I.StyleNo = V.StyleNo and V.CREATED_DATE >= trunc(DateFrom) and V.CREATED_DATE <= trunc(DateTo)),2) as QtySold
where I.ACTIVE = 1
group by DIV , Dept, StyleDesc,StyleNo, I.Vendor

I had this question after viewing How to configure crystal reports viewer activex so that I can open a crystal report from within access..

How to open crystal report 11 with form access 2016 ( code VBA ACCESS )
I have a string field of high school gpa which is 4 characters long, i.e., 4.00
I created the tonumber formula on the field.
I need to pull a range from 2.31-2.40 so I say @hsgpa is between 2.30 and 2.41.
It is pulling students with a high school gpa of 2.41 and I don't know why?
I have a crystal report with decimal number in it (.34) as it is in the report but I want to display it like this (.3400).

Note: I Edit Format Object in  Number Tab to (-1,123.0000) but still NOT working, I still have (.34)  .
I am trying to remove the Aging Basis parameter from the below statement.  
Can anyone tell me why I'm unable to remove the parameter from BooleanVar field?  I don't understand what's defining how many parameters there are...
Global BooleanVar CustomerWillShowDetail := tsarCustomerDetailWithRetainage({@tsDataFolder}, {@tsFileName(ARA)}, {@tsFileName(ART)}, {ART_CURRENT__TRANSACTION.Customer}, {?Aging Date},{?Aging Basis}, {?Include Retainage?}, {?Unpaid only?}, {?Include Finance Charges?});

Crystal Reports





Crystal Reports is a business intelligence application from SAP SE. It is used to graphically design data connections and report layouts from a wide range of data sources including Excel spreadsheets, Oracle, SQL Server databases and Access databases, BusinessObjects Enterprise business views, and local file-system information. Report designers can place fields from these sources on the report design surface, and can also deploy them in custom formulas (using either BASIC or Crystal's own syntax), which are then placed on the design surface. Crystal Reports also supports subreports, graphing, and a limited amount of GIS functionality.

Top Experts In
Crystal Reports