Stimulsoft reporting为Microsoft Visual Studio.net 2008和2010开发了一个强大的报表工具,它既可以在Winforms环境下运行又可以在Webforms坏境下运行。它拥有许多很实用的功能,比如报表设计器的使用更加便捷,支持本地导出PDF格式、Word格式、Excel格式和其他各种格式。Stimulsoft reporting现在支持绑定任意的.net类,这一功能在报表设计器中被称为商业对象。水晶报表和Microsoft报表在做日常报表方面非常强大,但如果您需要创建交叉报表、向下钻取、Ajax、支持条形码,并且在同一时间连接到多个报表源,那么Stimulsoft reporting将是一个非常好的选择。它还有一个功能,即最终用户可以创建自己的临时报表。所有的这些功能使得Stimulsoft reports成为制作商业智能报表的绝佳选择。
在本次教程中,我将为您演示如何使用Business Objects (.net类)创建一个Master Detail报表,演示如何创建一个ADO.NET数据模型,注册实体作为Stimulsoft report设计器的商业对象,以及如何设计一个表格报表和保存报表定义文件以运行这个新建的报表。
用Business Objects创建一个Master Detail报表的必备步骤:
- 为您的对象添加一个ADO.NET数据
- 为Northwind数据库生成实体模型
- 用报表设计器注册Business Objects
- 使用Business Objects设计新的报表
- 将Customers连接到子订单
- 将主表和详细表格添加到报表设计中
- 使用Business Objects运行新的报表
1、为您的对象添加一个ADO.NET数据模型
- 确保您的对象.NET框架的版本是3.5SP1或者更高;
- 在对象名字上右键单击Solution Explorer;
- 选择Add,然后选择New Item;
- 选择ADO.NET Entity Date Model;
- 输入模型文件的名称,在本次教程中,名称是Northwind.edmx;
- 单击Add按钮。


2、为Northwind数据库生成实体模型
- 选择Generate from database并单击Next;
- 为Northwind选择连接字符串,或根据网站http://www.connectionstrings.com的指示建立自己的连接字符串;
- 选择所有您想添加在报表中的数据库对象(在本次教程中,我们只选择tables);
- 在名称框中输入ADO.net实体模型的名称为NorthwindModel或者其他任意名称,然后单击Finish;
- Visual studio现在将扫描数据库架构并生成所有必要的实体模型类和定义;
- 浏览实体模型查看创建的各种实体;
- 我们将使用Customers entity以把所有的客户罗列到我们的报表中。



3、用报表设计器注册Business Objects
- 在您的对象中创建一个新的样式;
- 确保您已经右键单击对象并且选择了Add Reference,以添加参考到所需的stimulsoft.net dlls ;
- 添加一个名为Design Report的按钮和一个名为Run Report的按钮;
- 为Design Report按钮创建一个事件处理程序;
- 添加一段代码以获得一个使用Northwind实体模型的客户名单(为简单起见,我们将获取所有的客户名单;在实践中,您将使用LINQ以建立查询,请参考由Microsoft在 http://msdn.microsoft.com/en- us/library/bb738636.aspx上提供的教程);
- 实体数据模型显示Customers有一个Orders类属性,同时显示客户和订单之间有一对多的关系;
- 创建一个新的StiReport对象并从"C:\MyReport.mrt"(如果这个文件存在的话)中获取报表定义(为简单起见,本教程已经修复了本地的报表文件);
- 向报表对象中登记客户列表和订单列表;
- 调用报表对象中的Design功能以启动设计器。



4、使用Business Objects设计新的报表
- 按下键盘上的F5键启动对象,或单击Visual Studio中的Start Debugging按钮;
- 单击Design Report按钮以显示出Stimulsoft报表设计器;
- 找到Dictionary和Expand Business Objects;
- Northwind之所以在这里显示是因为当我们登记商业对象的时候使用了RegBusinessObject功能以指定客户类别;
- 展开Northwind查看客户和订单;
- 展开Customers查看属于客户的所有字段;
- 展开Orders查看属于订单的所有字段。

5、将Customers连接到子订单
- 为了将Customers连接到子订单,我们需要显示客户下的订单;
- 右键单击Customers并选择New Business Object;
- 选择Child of Business Object;
- 选择Customers子列表中的Oders;
- 对订单的名字做任意改变或改变Orders里的列或者添加新的计算列;
- 然后单击OK。



6、将主表和详细表格添加到报表设计中
- 拖拽Customers并放到报表设计中以添加客户表格到设计栏;
- 选择你想显示在报表中的字段;
- 拖拽客户下面的Orders并放到报表设计中以添加订单表格到设计栏中;
- 选择所有你想显示在报表中的字段;
- 报表设计器会自动显示被主表分组的细节;
- 改变Customers的背景色以把它和细节区别开来;
- 单击Preview选项卡预览报表;
- 单击Save Report图标保存到"C:\MyReport.mrt";
- 关闭报表设计器。






7、使用Business Objects运行新的报表
- 为Run Report按钮添加一个事件处理程序;
- 创建一个新的StiReport对象并从"C:\MyReport.mrt"(如果这个文件存在的话)中获取报表定义(为简单起见,本教程已经修复了本地的报表文件);
- 使用Northwind实体模型添加一段代码以获取客户列表和订单列表(为简单起见,我们将获取所有的客户名单;在实践中,您将使用LINQ以建立查询,请参考由Microsoft在http://msdn.microsoft.com/enus/library/bb738636.aspx上提供的教程);
- 实体数据模型显示Customers有一个Orders类属性,以及客户和订单之间有一种一对多的关系;
- 创建一个新的StiReport对象并从"C:\MyReport.mrt"(如果这个文件存在的话)中获取报表定义(为简单起见,本教程已经修复了本地的报表文件);
- 向报表对象中登记客户列表和订单列表;
- 调用报表对象中的Show功能以启动报表查看器。
