VS自带报表的分组显示

     本例用来显示Northwind中的order details表中的数据交分组

效果:如下


1.建立一WinForm程序,并建立一数据库连接,选择order details表,此时会自动建立一个xsd的数据集类,如下图

2.在项目中右键,新添加一个Report1.rdlc报表文件,并向此空白报表中添加一表格,如下图

数据集属性窗口中的“名称”是此报表的名称,在后面会用到,一定要记住。

以下为添加了表格的报表

3.从“报表数据”中把数据字段拖动到此表格中,行或列可以用右键“插入”功能即可。字段放好后,进行以orderid分组,

“行组”表示和字段显示在同一行中,“列组“是专门起了一列。

  

4.给组头及组尾中的相关属性框进行表达式设计(双击字段或函数就会自动写到表达式下)

  

给Quantity进行汇总,在其下面的对应的文本框中右键,设置其表达式

5.以下为设计好的报表

 

6.在Form1的窗体上放一reportViewer1,在Form1的load事件中写入如下代码:

复制代码
 private void Form1_Load(object sender, EventArgs e)
        {
            using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["myconstr"].ConnectionString))
            {
                SqlDataAdapter sda = new SqlDataAdapter("select * from [order details]", conn);
                conn.Open();
                DataSet ds = new DataSet();
                
                sda.Fill(ds, "Order Details");//表名为xsd中表的名称
                ReportDataSource RD = new ReportDataSource("DataSet1", ds.Tables[0]);//DataSet1为建立报表时用到的数据集名称

                this.reportViewer1.ProcessingMode=Microsoft.Reporting.WinForms.ProcessingMode.Local;
                this.reportViewer1.LocalReport.ReportPath=@"C:\Users\Administrator\Desktop\WindowsFormsApplication2\WindowsFormsApplication2\Report1.rdlc";
                this.reportViewer1.LocalReport.DataSources.Clear();
                this.reportViewer1.LocalReport.DataSources.Add(RD);
                this.reportViewer1.RefreshReport();
            }           
        

  new ReportDataSource表示把现有的数据集和报表原来的数据集进行绑定

7.运行OK。


以上为转载:http://www.cnblogs.com/yagzh2000/archive/2013/07/30/3224826.html


下面补充一些个人的东西,

    做机房用VS自带的报表,已经两次了,第一次的时候发现了一个问题,就是无论代码怎么编写,但是报表中显示的数据根本不是自己要查的数据,而是数据库中原装的数据。自己调试,别人调试,准没有结果。

    在做第二次机房的时候突然找到了元音,原来是自己的数据源的类型有问题,自己用的数据源是泛型,

        Dim rptDataSouce As New ReportDataSource  '实例化一个数据源对象
        rptDataSouce.Name = "DataSet1" '设置报表数据集名称
        rptDataSouce.Value = mylist  '设置报表数据源实例

 

    所以就出现了上述的结果。至于为什么DataTable可以当做数据源实例,但是泛型却不可以?

    个人认为,在设置数据源的时候,即第二的时候加载的是数据库中的表,而在设置数据源实例的时候却用的是泛型,所以不正确。


 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值