ANSWER1
Right click over section. You can see an option Suppress (No drill down). Check that option. Hope this will solve your problem
ANSWER2
if you don't want to suppress the detail section entirely, then you'll need to use conditional suppression:
right click on the detail section left margin,
then to the right of "Suppress (No Drilldown)" left click on the "X+2" box,
a formula window will appear,
then enter the condition that should suppress the row - like "IsNull({Necessary.DetailField}) or ({Necessary.DetailField}=" ")"
ANSWER3
basically when it comes to subreports and suppression the general rule of thumb is:
1. in the header have the subreport. this subreport should set the shared variable = number of rows. all elements (fields, sections) should be suppressed in this subreport. set the subreport to "suppress blank subreport". set the header section to "suppress blank section".
2. in any section AFTER the header - so let's say the footer. put a COPY of the subreport. this subreport will display data if there is data. in the footer section set the "suppress" formula to suppress the footer section if the shared variable from the first subreport returns 0 number of rows.
ANSWER4
You still didn't provide the field name for the detial field that starts "SSR", so I'll call it {table.ssr}. Create a formula {@ssr} like this:
whileprintingrecords;
stringvar array ssr;
numbervar i;
numbervar j := ubound(ssr);
if not({table.ssr} in ssr) then (
i := i + 1;
redim preserve ssr[j+1];
if i <>
ssr[i] := {table.ssr}
);
Then go to the section expert->details->suppress->x+2 and enter:
{@ssr} = ""
ANSWER5
I set up a formula field "issueid", with this formula:
whileprintingrecords;
stringvar array issueid;
numbervar i;
numbervar j := ubound(issueid);
if not ({VSTATEHISTORY.ISSUEID} in issueid) then (
i := i + 1;
redim preserve issueid[j+1];
if i <>
issueid[i] := {VSTATEHISTORY.ISSUEID}
);
I then replaced the database view field {vstatehistory.issueid} that was originally in the Detail section with {@issueid}.
<<<>>>
Then I entered {@ssr} = "" as the formula for Suppress for the Detail section.
The end result was no detail section showing, but I also tried unchecking Suppress, and the result was the same.
ANSWER6
If this isn't possible, then use Section Suppression, using a formula. Right-click on the section and choose Format Section. Then choose the formula icon (x+2 and a pencil) for suppression.
ANSWER7
I don't have a right click option for the 'format section', but I assume you mean go into the section editor and put the expression in the x2 section there. Because I always wanted them suppressed (even though there are no contents in the section) I added a:
{table,field}={table,field}
which seemed to work
But please correct me, in the section editor for the suppress(drill down OK) if I check the box it means always supress(even if there are contents), if I click the x2 box and enter an expression, then it conditionally supressed the area based on the expression?
If this is correct is there something I did wrong in crystal by checking the box?? Some type of hidden field. BTW it's mostly footers that I have the problem with.
With this item checked it still left an area for my subreport even when the subreport is empty-no contents because it is supressed in the subreport itself.
Hopefully, if what I have done is OK, then great.
But if you wouldn't mind answering the question on supression check box and X2, I'd appreciate it as I have seen some with both the check bax checked and contents in the x2 field. I always thought why conditionally supress an item with x2 thats already suppressed with the checkbox??
Thanks again for your help!
Followers
Categories
- Abstract class (1)
- Abstract class vs Interface (1)
- Abstract Properties (3)
- Accessing Data Using Object Data Source (ASP.net 2.0) in C# (1)
- ACID properties (1)
- ActiveX Data Objects (ADO) (1)
- ADO.NET (5)
- ADO.NET 2.0 (4)
- Asp .net 2.0 GridView control.Grid (1)
- Base classes (1)
- Binary Search Algorithm (1)
- Binary search an array (1)
- Bubble Sort Algorithm (1)
- Bubble sort an array (1)
- C# Basics (2)
- C# basics Tutorial (2)
- c# programs (6)
- Concrete class (1)
- Console Application in C# (1)
- Core Java Basics (4)
- Creating First Hello World Application In JAVA (1)
- Cross page posting in ASP.NET 2.0 (1)
- Crystal Reports (2)
- DAO (1)
- Data Access Consumers (4)
- DataBase Basics (3)
- Database Management System (2)
- DBMS (3)
- delete (1)
- Displaying Total in Footer of GridView (1)
- Eclipse Installation In java (2)
- edit and paging in Asp .net 2.0 ? (1)
- GCD Euclidean Algorithm (1)
- Gridview operations in Asp .net 2.0 (1)
- How (3)
- How to convert a decimal value of four pleces to decimal value of two places in a gridview (1)
- How to Convert Date to String in Java (1)
- How to Convert String to Date in Java (1)
- How to Display Sum Total in the Footer of the GridView Control? (1)
- How to format values in column of gridview? (1)
- How to Get Information from the Source Page (1)
- How to Get Public Property Values from the Source Page (1)
- How to insert (1)
- How to Install JDK For Eclipse (2)
- How to Installing Visual Studio 2010 (1)
- How to Running Visual Studio 2010 (1)
- How to String Split Example in Java (1)
- How to suppress blank row(s) in detail section of the report? (1)
- How to use formula in crystal reports 10 (1)
- Installing Eclipse on Windows Linux and mac (1)
- Installing Visual Studio 2010 (1)
- Interfaces (1)
- Introduction To DatabaseManagementSystem (1)
- Iteration (1)
- JAVA (7)
- Java Basic (3)
- Java Development Kit (1)
- Java Program to print Prime numbers in Java (1)
- JAVA Programs (5)
- JDK (1)
- Linear Search Algorithm (1)
- Linear search an array (1)
- Multiple Inheritance (2)
- Namespaces in C# (1)
- Object Data Source in c# (1)
- ObjectDataSource Web Server Control Overview (1)
- Obtaining the Java Development Kit (1)
- ODBC (1)
- Open Database Connectivity (1)
- Overloading (1)
- Overriding (1)
- Passing arguments to base class constructor (1)
- Polymorphism (1)
- Prime Numbers (1)
- Programming logic codes (8)
- RDO (1)
- Recursion (1)
- Remote Data Objects (1)
- Reporting XML data using Crystal Reports and Windows Forms (1)
- Reversing A String (1)
- Running Visual Studio 2010 (1)
- Selection Sort Algorithm (1)
- Selection sort an array (1)
- Single-Tier Architecture (1)
- Spring Operations (1)
- String Operations (3)
- suppress blank section of data field and the label (1)
- Three-Tier Architecture (1)
- Two-Tier Architecture (1)
- Type Of Application Architectures (1)
- update (1)
- Using "Is" and "As" Operators (1)
- Variables in Java (1)
- Virtual functions (1)
- Visual Studio 2010 (2)
- Visual Studio Installation (1)
- Writing Your First Hello World Console Application in C# (1)
Suscribe Us
About Me
How to suppress blank row(s) in detail section of the report?
Reporting XML data using Crystal Reports and Windows Forms
Reporting on data sources such as: MS Access, SQL Server and Oracle, is common with Crystal Reports (CR). How about XML as the data source? Well, sure, you might be wondering how to do that? Is it even possible? Well, with help of this article I’ll show you how to use the XML data source and report on it using CR.
I assume the reader has basic understanding of the Visual Studio (VS) 2005 IDE and Crystal Reports. You should also be comfortable writing code in C#. Basic understanding of XML schema and ADO.NET is desirable.
What is XML Data?
Before we see the demo, let’s get to know what XML data is! Put in simple words, XML stands for Extensible Markup Language. It is an initiative by W3C to allow the exchange of information. XML is easy to understand by both humans and computers. The information stored in XML format can work on cross platform scenarios. For example, if you have information in XML format, it is easy to share them between the UNIX and the Windows platform. The data inside an XML file is presented with user defined tags. Following is the partial listing from the sample XML file which I am using in the demo:
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
As you can see, each tag is equivalent to a row with information related to a CD. Furthermore, each column is uniquely identified as a tag. You can learn more on XML. right, let’s start with our demo and see how easy it is to report on XML data with CR and Windows Forms.
Step 1: Let’s create a Windows Application Project
If VS 2005 IDE is not already started, then you can launch the IDE by clicking on windows Start button -> All programs -> Microsoft Visual Studio 2005 -> click on icon Microsoft Visual Studio 2005. You may have others ways to lunch the IDE, such as clicking it on your desktop and so on.
- Click on menu File -> New-> Project… or you can press the hot key Ctrl + Shift + N
- From New Project dialog box select -> Visual C# -> Windows
- From Templates select -> Windows Application
- Please give a name to the application; I’ve called the project as “XMLCRReport”. You may choose a different location for storing the application files as per your preference. Please see Figure 2 for illustration of the naming process.
- Click on OK button to finish the process. VS 2005 will create a new project and add
Form1to it as default.

Let’s set the properties of the
Form1 according to Table 1. In case the property toolbox is not visible in IDE, you may hit the F4 key to make it visible. Pease make sure to select Form1 before applying changes to properties using the property toolbox.| Property | Value |
|---|---|
| Text | Size |
| Reporting XML data using Crystal Reports | 700,300 |
Step 2: Let’s add CrystalReportViewer to Form1
Crystal Report Viewer (CRV) control is needed for us to show the report to the user. Report Viewer gives life to your reports. Not only it lets you preview the output; it also allows you to generate the information in various popular formats (PDF, Excel, etc.). You can also take a hard copy print of the report while you are viewing the output.
You can add a CRV to the Form1 as follows:
- Make sure
Form1is currently open in designer. - Drag ToolBox -> CrystalReports -> CrystalReportViewer and drop it on
Form1. This step will create a new instance of CRV with the name crystalReportViewer1. You can name it as you prefer; I’ll stick with the default.
After the step 1 and step 2, your project should look similar to Figure
Step 3: Add a DataSet to the project Although there are different ways you can get the data to CRV, I’ll show you here the DataSet technique. So, let’s go ahead and add a DataSet to the project. The following step is needed to have the DataSet added to the project:
Select Add -> New Item -> DataSet from Solution Explorer. Change the name from DataSet1 to dsCDCatalog and click the Add button. Please Cancel the TableAdapter Configuration wizard; we’ll add a DataTable using the DataSet Designer.
Let’s add the DataTable to our newly created DataSet. A DataTable is essential to load the reporting data; we’ll use the information from the DataSet/DataTable while designing the report. The following step is required to have DataTable added to DataSet (dsCDCatalog):
dsCDCatalog from Solution Explorer; this will open the designer view. Right-click the designer surface and select Add -> DataTable. Click the header and change the name to dtCDCatalog
Let’s start adding columns to the
DataTable (dtCDCatalog). Your designer screen should look like Figure 5. Right-click on dtEmployee and select Add -> Column to start adding the columns to the DataTable.
Repeat the action for the following columns: - Title (String)
- Artist (String)
- Country (String)
- Company (String)
- Price (Double)
- Year (String)
string. Go to the Properties windows after selecting a column to change it from string to Int32. After you are done with adding columns, it should look similar to
So far we’ve created the project, and added a CRV and a DataSet. It’s time to work on the report. Following are the steps required to add Report (rptXMLData.rpt): Select Add -> New Item -> Crystal Report from Solution Explorer. Change the name from CrystalReport1.rpt to rpt and click the Add button to complete the action. A dialog box of Crystal Reports Gallery will appear. Select “As a Blank Report” option and click the XMLData.rptOK button to complete the process to add report.
rptXMLData.rpt is open for you in designer mode and its default setting. For this example I’ll make use of only Page Header and Footer. I’ll reduce the height of Report Header and Footer
Adding a report to the project is easy. The challenge is to fill in the empty report layout. Whether this is your first report or you are a reporting junkie like me; we must deal with the most basic building blocks of the report writing. That is, the header, the detail, and the footer. Typically, reports are designed with specific page size and layout in mind. Our report is Letter size and Portrait layout. You can explore various properties attached to the report layout by right-clicking anywhere on the open designer surface (gray area) and selecting Report and Design Properties.
It is always advisable to draw a prototype of your report on paper before you start the design process.we have the report name and report date in the header section. The body section has the employee list information; the footer carries the page numbers.

Header Section
Our header section is consists of fiveText Object, two Line Object and one Special Field. Please drag and drop Text Object and Line Object from Toolbox -> Crystal Reports. You can drag and drop the “Print Date” special field from Field Explorer -> Special Fields -> Print Date. You’ll also notice that I’ve changed the color and font after placing the report object on the designer surface.
Footer Section Footer section is simple; just one special field and one LineObject. As you’ve done with the header section, you can drag and drop a LineObject from Toolbox -> Crystal Reports. Similarly, you can drag and drop “Page N of M” special field from Field Explorer -> Special Fields -> Page N of M. Please see Figure 8 and make sure the Footer look similar.
Detail Section
The Details section of the report will have the CD Catalog list details. Now the question is: From where will we get the data? Well, as you know, at the beginning we added a DataSet to this project. We will use this DataSet as the source of data for our report.
DataSet as source of data for a report is easy. You’ll start with Right-Clicking on any open area on Report Designer -> Database -> Database Expert… As a result of this action, the Database Expert dialog box will appear. You can click on Project Data and expand the node ADO.NET DataSet. Please select the dtCDCatalog DataTable from our DataSet and click on “>” button to move it to selected tables section on right-hand side
Once the report source is specified, all we have to do is drag and drop the fields from DataTable inside Detail section on report designer surface. You can drag and drop all the fields from DataTable starting with “Title” from Field Explorer inside the details section. As you drag and drop the fields inside the detail section, you’ll notice that the title of the field is also added to report designer. Since we’ve already taken care of field header, just delete the default added field header.Step 5: C# interface code
All right; we got all we needed as report design. Please make sure to have following C# code behind Form1.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace XMLCRReport
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
DataSet dsReport = new dsCDCatalog();
// create temp dataset to read xml information
DataSet dsTempReport = new DataSet();
try
{
// using ReadXml method of DataSet read XML data from books.xml file
dsTempReport.ReadXml(@"C:\articles\XmlCrystalReport\cd_catalog.xml");
// copy XML data from temp dataset to our typed data set
dsReport.Tables[0].Merge(dsTempReport.Tables[0]);
//prepare report for preview
rptXMLData rptXMLReport = new rptXMLData();
rptXMLReport.SetDataSource(dsReport.Tables[0]);
crystalReportViewer1.DisplayGroupTree = false;
crystalReportViewer1.ReportSource = rptXMLReport;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
Posted by
Mathai
at
1:19 AM
1 comments
Labels: Crystal Reports, Reporting XML data using Crystal Reports and Windows Forms
