Stimulsoft reporting provides a set of powerful reporting tools for Microsoft Visual Studio .NET 2008 and 2010; these tools are available for windows forms as well as web forms. They provide many useful features such as an easy to use report designer and native support for exporting to PDF, Word, Excel, XPS and many other formats. Stimulsoft reporting now supports binding to any .NET class; this feature is called business objects in the report designer. Crystal Report and Microsoft reports are great for day to day reporting, but if you need to create reports with cross-tabs and drill down, Ajax, support for barcodes and connecting to more than one report source at the same time, then Stimulsoft reporting is a very good solution. They also have a feature where end users can create their own reports for Adhoc reporting. All these features make Stimulsoft reports a good choice for business intelligence reporting.

In this tutorial I will show you how to create a Master Detail report using the Business Objects (.NET classes). Show how to create an ADO.NET data model, register entities as business objects with Stimulsoft report designer and design a tabular report and save the report definition file to run the newly created report.

The data for this sample report will come from the Northwind sample database provided by Microsoft.

The demo version of Stimulsoft reporting tools can be downloaded from the website at: http://www.stimulsoft.com/en/downloads

Stimulsoft reporting tools

Steps are required in order to create a Master Detail report using Business Objects


1. Add an ADO.NET data model to your project
2. Generate Entity Model for Northwind database
3. Register Business Objects with Report Designer
4. Design new report using Business Objects
5. Associate Customers to child orders
6. Add Master and Detail tables to the report layout
7. Run new report using Business Objects


1. Add an ADO.NET data model to your project

  • Make sure you are targeting .NET Framework version 3.5 SP1 or higher;
  • Right-click on project name in Solution Explorer;
  • Select Add and then select New Item;
  • Select ADO.NET Entity Date Model;
  • Type the name of the model file, for this tutorial it is going to be Northwind.edmx;
  • Click on Add button.

Add an ADO.NET data model to your project
Add an ADO.NET data model to your project

2. Generate Entity Model for Northwind database

  • Select Generate from database and click Next;
  • Choose the connection string for Northwind or build our own connection string using instructions given on http://www.connectionstrings.com;
  • Select all database objects that you want to report on. For this tutorial we are going to select only the tables;
  • Type the namespace of the ADO.NET entity model as NorthwindModel or any other namespace or our choice and click on Finish;
  • Visual studio will now scan the database schema and generate all required Entity model classes and definitions;
  • Browse the Entity model to see various entities that are created;
  • We will be using Customers entity to list all customers in our report.

Generate Entity Model for Northwind database
Generate Entity Model for Northwind database
Generate Entity Model for Northwind database

3. Register Business Objects with Report Desinger

  • Create a new form in your project;
  • Make sure you have added the reference to required Stimulsoft Reports.Net dlls by right-clicking on the project and selecting add reference;
  • Add a button called Design Report and another button called Run Report;
  • Create an event handler for the Design Report button;
  • Add some code to get a list of customers and list of orders from those customers using Northwind entity model (For simplicity we are getting list of all customers, in practice you would be using LINQ to form a query by following tutorials provided Microsoft at http://msdn.microsoft.com/en-us/library/bb738636.aspx);
  • The Entity Data Model shows that Customers has a property classes Orders, it also shows there are 1 to many relationship between customers and orders;
  • Create a new StiReport object and load the report definition from 'C:\MyReport.mrt' if the file exists (For this tutorial we have fixed the location of report file for simplicity);
  • Register the list of customers and list of orders with the report object;
  • Stimulsoft report designer scans the definition of customer and determines that it has child orders, this will be very helpful while designing the report;
  • Call the Design function of the report object to launch the designer.

Register Business Objects with Report Desinger
Register Business Objects with Report Desinger
using Stimulsoft.Report

///
/// Event Handler for Design Report button
///
private void Design_Click(object sender, EventArgs e)
{
	// Get Report Object
	StiReport report = GetReport();
	// Launch Report Deginer for the report
	report.Design();
}

///
/// This function Loads report definition from a fixed location
/// and registers all Business Objects in the report definition
///

///
/// StiReport object for the report
///
private StiReport GetReport()
{
	// Create a new object of StiReport Class
	StiReport report = new StiReport();
	
	// Load the report definition file from C:\MyReport.mrt if the file exists
	// This tutorial assumes you have are storing the report definition in a fixed location
	// If the file does not exists then Designer will allow you to save the your newly created report
	// in the location
	if (File.Exists("C:\\MyReport.mrt"))
	{
		report.Load("C:\\MyReport.mrt");
	}
	
	// Get of List of all customers and List of all orders from database using ADO.net Enity data model
	NorthWindEntities nw = new NorthWindEntities();
	List customers = nw.Customers.ToList();
	List orders = nw.Orders.ToList();
	nw.Dispose();
	// Register Business Objects for Customers and Orders in the report
	report.RegBusinessObject("Northwind", "Customers", customers);
	report.RegBusinessObject("Northwind", "Orders", orders);
	// Return report to calling function
	return report;
}
4. Design new report using Business Objects

  • On run the project by pressing F5 on your keyboard or click on Start Debugging button in Visual Studio;
  • Click on Design Report button to show the Stimulsoft report designer;
  • Brower to Dictionary and Expand Business Objects;
  • Northwind is shown here because we specified category of Customers while registering business objects using RegBusinessObject function;
  • Expand Northwind to see customers and orders;
  • Expand Customers to see all the fields that belong to customers;
  • Expand Orders to see all the fields that belong to orders.

Design new report using Business Objects

5. Associate Customers to child orders

  • In order to associate Customer to their child orders we need to show orders under customers;
  • Right click on Customers and select New Business Object;
  • Select Child of Business Object;
  • Select Orders from the list of children of Customers;
  • Make any changes alias of orders or to columns inside Orders or add new calculated columns;
  • Click Ok to continue.

Associate Customers to child orders
Associate Customers to child orders
Associate Customers to child orders

6. Add Master and Detail tables to report layout

  • Drag Customers and drop into the report layout to add customers table to the design;
  • Select all the fields that you want to show in the report;
  • Drag Orders under customers and drop into the report layout to add orders table to the design;
  • Select all the fields that you want to show in the report;
  • Report designer automatically shows details grouped by master;
  • Change background color of Customers to differentiate it from details;
  • Click on Preview tab to see the report preview;
  • Click on Save Report icon save to 'C:\MyReport.mrt';
  • Close the report designer.

Add Master and Detail tables to report layout
Add Master and Detail tables to report layout
Add Master and Detail tables to report layout
Add Master and Detail tables to report layout
Add Master and Detail tables to report layout
Add Master and Detail tables to report layout

7. Run new report using Business Objects

  • Add a event handler for Run Report button;
  • Create new StiReport object and load the report definition from 'C:\MyReport.mrt' if the file exists (For this tutorial we have fixed the location of report file for simplicity);
  • Add code to get a list of customers and list of orders from those customers using Northwind entity model (For simplicity we are getting list of all customer, in practice you would be using LINQ to form a query by following tutorials provided Microsoft at http://msdn.microsoft.com/en-us/library/bb738636.aspx);
  • The Entity Data Model shows that's Customers has a property classes Orders, it also shows there are a 1 to many relationship between customers and orders;
  • Create new StiReport object and load the report definition from 'C:\MyReport.mrt' if the file exists (For this tutorial we have fixed the location of report file for simplicity);
  • Register the list of customers and list of orders with the report object;
  • Call the Show function of the report object to launch the report viewer.
using Stimulsoft.Report;

///
/// Event Handler for Run Report button
///
private void btnRun_Click(object sender, EventArgs e)
{
	// Get Report Object
	StiReport report = GetReport();
	// Show report to user
	report.Show();
}

///
/// This function Loads report definition from a fixed location
/// and registers all Business Objects in the report definition
///

///
/// StiReport object for the report
///
private StiReport GetReport()
{
	// Create a new object of StiReport Class
	StiReport report = new StiReport();
	// Load the report definition file from C:\MyReport.mrt if the file exists
	// This tutorial assumes you have are storing the report definition in a fixed location
	// If the file does not exists then Designer will allow you to save the your newly created report
	// in the location
	if (File.Exists("C:\\MyReport.mrt"))
	{
		report.Load("C:\\MyReport.mrt");
	}
	
	// Get of List of all customers and List of all orders from database using ADO.net Enity data model
	NorthWindEntities nw = new NorthWindEntities();
	List customers = nw.Customers.ToList();
	List orders = nw.Orders.ToList();
	nw.Dispose();
	
	// Register Business Objects for Customers and Orders in the report
	report.RegBusinessObject("Northwind", "Customers", customers);
	report.RegBusinessObject("Northwind", "Orders", orders);
	
	// Return report to calling function
	return report;
}
Stimulsoft reporting provides a tool that checks your reports for problems which you may miss. This tool is unique to Stimulsoft and can be a very helpful feature for quality control. Users can run checks for warnings, compilation errors, recommendations and even advice. In many cases the report checker can show you a preview of the report with the problem area highlighted and also provides ways to fix the issues in the report definition file.

In this tutorial I will show you how to create shipping label report in Stimulsoft Reports.Wpf and check it in Report Checker.Wpf and fix the errors, warnings and recommendations.

The data for this sample report will come from the Northwind sample database provided by Microsoft.

The demo version of Stimulsoft reporting tools can be downloaded from the website: http://www.stimulsoft.com/en/downloads

Stimulsoft reporting tools
Steps are required in order to create a simple report:


1. Add a connection to your report
2. Add required data sources to report
3. Add Orders to the report
4. Fix report in Report Checker


1. Add a data source to your report

  • Open Stimulsoft Reports.Wpf Designer from start menu, the WPF designer is big improvement of the windows forms designer and looks very similar to the office 2010 interface;
  • Select Dictionary Tab in the right pane;
  • Select New Item and click on New Connection;
  • The new connection wizard gives you various options for different types of connections, namely SQL connection, OleDB connection, XML data and ODBC connection;
  • Select SQL connection for this tutorial;
  • Give the connection any name that represents the database. For our example I will name it Northwind;
  • Click on Build button to create a connection string or paste it into the connection string text area. You can also create your own connection string using instructions given on http://www.connectionstrings.com;
  • Click on the test button to make sure that the connection string works.

Add a data source to your report
Add a data source to your report
Add a data source to your report
Add a data source to your report

2. Add required data sources to report

  • Right-click on the newly created Northwind connection and select New Data Source;
  • Select Northwind and click OK;
  • Stimulsoft reports will display all data objects that are available for reporting;
  • For our example we will selected Orders and Order details tables and click OK;
  • Orders and Order Details tables as now available under Northwind connection.

Add required data sources to report
Add required data sources to report

3. Add Orders to the report

  • Find Data Band in Toolbox on Left side of report designer;
  • Drag and drop the data band from toolbox into the report to create a new data band. When prompted for data source selection just click ok;
  • Move your mouse to top right corner of data and to see various small buttons, click on the left most to select data source;
  • Select orders to assign orders as the data source of the data band;
  • Drag and Drop Text object into the Header to display Orders header;
  • We will use HTML formatting to display Orders in Bold. Type <B>Orders</B> to display it in Bold;
  • Drag and Drop Order Date, Ship Name, Ship Address, Ship City, Region, Country and Postal Code to the Data Band;
  • This report will help users print shipping labels so we will need to a bar code also;
  • Drag and Drop the bar code object into the data band;
  • Right click on the barcode and select properties;
  • Find the Code Property and click on ... button on right most corner of the property;
  • Drag and Drop the Order.Freight property into the text edit, this tells the report designer to generate barcodes based on value of freight;
  • Click on the preview tab to see how the report looks with real data;
  • Save the file as Order.mrt as a known location.

Add Orders to the report
Add Orders to the report
Add Orders to the report
Add Orders to the report
Add Orders to the report
Add Orders to the report

4. Fix report in Report Checker

  • Open report checker from start menu;
  • Click on the Open button and browse to Orders.mtr and click on Open;
  • Report Checker will scan Order.mrt and display its findings;
  • We can see that there are 2 warnings;
  • The first warning shows as one of the components in the report is outside the page;
  • To view which component is outside the page, simple move your move over to the magnifying glass to see a preview;
  • We can clearly see that the bar code is highlighted in Red and is outside the page;
  • I don't need to go back to the report designer to fix, I can simply click on Move to page or To Print Area to fix this;
  • Now I can go back to the report designer to see that the bar code has been moved inside the margin;
  • The second warning shows that AllowHtmlTags property is set to False;
  • Move your move over the magnifying glass to see that Orders header is highlighted;
  • To fix this error simply click on the On button;
  • When we go back to report designer we can see that the ugly <B> tags are gone and Orders text is displayed in bold;
  • Now we can go to preview tab to see the final result.

Fix report in Report Checker
Fix report in Report Checker
Fix report in Report Checker
Styles are arguably the most important feature in Stimulsoft reporting. Why? Because element of a report has a style attached. The definition of a style is two-fold. First, you can think of a style as a set of pre-defined formatting instructions that you can use repeatedly throughout all reports in your application. Let's say each report header must be centered, uppercase, bold, and a slightly larger font size. Each time you need to apply formatting to the heading, you have to go through the entire process to get the text the way you want it. If you store the formatting commands in a style, you can apply that style any time you need it without having to do all of the reformatting.

Possibly more important however is that styles are used to "tag" or identify parts of a report. An example of this is whether text is of data type Numeric, a String, a DateTime, or an Expression. Styles can be created for complex controls such as Charts and Cross-Tab. These are all examples of styles in Stimulsoft reports.

If you're concerned about whether or not you need to learn styles, we can put it rather simply: you do. Styles allow for quick formatting modifications throughout the report and can be tied into columns or even particular data values to make working with conditional formatting much easier.

There are several reasons for using styles in a report:
a) Consistency - when you use styles to format your report, each section is formatted the same and therefore, provides a professional, clean-looking report. Moreover, these styles definitions can be shared among all reports in your application to given each report a consistent look and feel.
b) Easier to Modify - If you use styles in your report consistently, you only need to update a given style once if you want to change the characteristics of all text formatted in that style.
c) Efficiency - you can create a style once, and then apply it to any report without having to format each report individually.

Steps for Creating and Applying Styles:


1. Create a style in Ribbon GUI
2. Set a style for a report in Ribbon GUI
3. Create a style in Standard UI
4. Set a style for a report in Standard UI
5. Apply Style to report header


1. Create a style in Ribbon GUI

  • Click on Style Designer Icon on the Home Ribbon;
  • In the style designer, click on Add Style and select Component;
  • Type the name as Report header;
  • Type the description as This style will be applied to all report headers;
  • Select the text brush color to any color of your choice as per user requirements;
  • Select Brush of the background of the text as your choice, I selected glass to make it look cool;
  • Set the border if required;
  • Set Font and size;
  • Set Horizontal and Vertical Align;
  • Notice that the style preview changes as you make your selections;
  • Hit Save button to save this style definition to used in other reports.

Create a style in Ribbon GUI
Create a style in Ribbon GUI
Create a style in Ribbon GUI
Create a style in Ribbon GUI
Create a style in Ribbon GUI
Create a style in Ribbon GUI

2. Set a style for a report in Ribbon GUI

  • Report styles are stored with extension .sts;
  • Open style designer to style as style for the report;
  • Click on Open Style;
  • Browse to the location where your report style has been stored and select it;
  • Now Stimulsoft report designer loads all the style definitions.

Set a style for a report in Ribbon GUI
Set a style for a report in Ribbon GUI
Set a style for a report in Ribbon GUI

3. Create a style in Standard UI

  • Make sure that you have the style toolbar visible by going to View -> Toolbars -> Style;
  • Once you have the style toolbar visible in your report designer click on the Style Designer Icon;
  • In the style designer, click on Add Style and select Component;
  • Type the name as Report header;
  • Type the description as This style will be applied to all report headers;
  • Select the text brush color to any color of your choice as per user requirements;
  • Select Brush of the background of the text as your choice, I selected glass to make it look cool;
  • Set the border if required;
  • Set Font and size;
  • Set Horizontal and Vertical Align;
  • Notice that the style preview changes as you make your selections;
  • Hit Save button to save this style definition to used in other reports.

Create a style in Standard UI
Create a style in Standard UI
Create a style in Standard UI

4. Set a style for a report in Standard UI

  • Report styles are stored with extension .sts;
  • Open style designer to style as style for the report;
  • Click on Open Style;
  • Browse to the location where your report style has been stored and select it;
  • Now Stimulsoft report designer loads all the style definitions.

Set a style for a report in Standard UI
Set a style for a report in Standard UI
Set a style for a report in Standard UI

5. Apply Style to report header

  • Add a report title to your report;
  • Add a text label inside the report title;
  • Change the text to Sales Report and increase the width of the style to span the width of the report;
  • Go to Appearance section of the properties of the label and select custom styles;
  • Select Report Header;
  • No we find that the report title has been formatted as per our style specifications.

Apply Style to report header
Apply Style to report header
Apply Style to report header
Apply Style to report header
1. Steps required for uploading the final version of the product (with Stimulsoft Reports.WinRT assemblies) into the AppStore.

To design and display a variety of reports, different icons are used (indicators, interactions, etc.). Since there is a problem with adding them directly to the assembly (dll), we will store them on the hard drive in a folder given optionally and load them automatically when running the application. The folder will be called StimulsoftWinRT. It is done in order not to increase the size of the final assembly, because there can be problems when testing the final application through the WACK (WindowsAppCertificationKit). Initially the application will search these resources in the folder My Images (our installation will copy them into). The path can be changed optionally by setting the value for the property when loading the application: Stimulsoft.Helper.RT.ResourceLoader.StiResourceLoaderOptions.ResourcesStorageFolder.

When the AppStore will be available for public use, and you will finish your application and be ready for placing it in the store, then, when creating the installation, you will need to add these resources into it, and set in the application the StiResourceLoaderOptions.ResourcesStorageFolder property to Windows.Storage.ApplicationData.Current.TemporaryFolder. Then, when running the installed application, it will seek resources from the folder where the product AppStore is installed.

2. Loading our resources with your application when running.

When loading your application you must load the resources used by our components. To do this, when loading, execute the following code. For the viewer: await StiReportImagesStore.InitStoreAsync(); await StiIndicatorsImagesStore.InitStoreAsync();

For example, you can see any sample (delivered in the installation pack) from the folder Samples. See the sample Demo.RT. In all test samples, we have implemented the application splash screen (Splash\StiSplashControl.xaml), which loads and all the necessary resources. Speaking of splash screens, they are needed in all applications, or you will simply not pass the test through WACK and will not be able to put your application in the AppStore.

3. Additional features of our control.

The pages of Metro application support the AppBar panels which are placed top and bottom of the page. Details can be found here at http://msdn.microsoft.com/en-US/library/windows/apps/hh761499. We use the panels optionally, in order to please all users. Placing our control (StiViewerControl) you can enable or disable integration using the IntegrateToTheTopAppBar and IntegrateToTheBottomAppBar properties. By default, these properties are set to false and integration does not occur, because the user can use them for his/her own needs. Please see the sample IntegrationOfTheAppBarViewerOnTheUserPage delivered with the product installation.
Do you need a reporting tool that meets all your requirements and relevant to recent developments in the world of reporting? If you are reading this article, then you are on the right way in solving the problem. Reporting tools from Stimulsoft Company are exactly what you need! And it is not our point of view; this is the point of view of thousands of our customers.

If you are already collaborating with our company, then you will not have problems with a choice of interesting products. But what if you first approached Stimulsoft? Which product is right for you? After all, you have to choose the product not out of two or three ones but ELEVEN! Do not be afraid and do not despair! It's very simple! Perhaps, on the other web-sites of other vendors you have to:

1) Re-read the documentation for each product, looking for the necessary items matching your needs with current capabilities. It's not bad if you have a lot of time and you like reading, but ...

2) Go deeper into the vendor’s forum. In this section of the web-site you can find everything about the product. Throw away all the extra questions, and after a few days to make a choice! Dubious pleasure, isn’t it?

3) Technical support service will help you! Send a mail describing all the necessary items and features are waiting, waiting, waiting and again waiting for a response. This option is not good too.

In fact you really have to go through all these steps, if you are not acquainted with us.

Stimulsoft Company is known for its approach to work: make the client feel most comfortable. And where else we need help then on first steps of acquaintance with the software? Let's go back to the beginning of this article.

Do you need a reporting tool that meets all your requirements and relevant to recent developments in the world of reporting? And we have something to offer. In order not to spend too much time looking for the necessary information through the web-site you will find very attractive wizard "Help me choose product". Here's what you need! With it easy mouse click you run it and choose the points with the specified characteristics of reporting tools. At the end you get the name of a right product. It's really easy and, believe me, this is only the first pleasant surprise to work with us!

How to find the wizard?

Just go http://www.stimulsoft.com/Purchase.aspx. On the bottom of page you will find a range of images. Click the icon “Choose Your Product” and enjoy!

wizard 1
wizard