CUAO

  最近公司需要打印,所以今日一直在研究ReportView控件的使用。刚开始简单的使用还是可以的,但是最近遇到这样的需求:要显示主表信息和子表信息,而且还是多条,刚开始还在一直考虑使用子报表实现,但是刚开始接触,还是未能实现。后来突然想到表是列数不变,行数改变的,所以就想起来把要显示的数据放到表里,这样就可以在分组的情况下实现多个分类数据的显示。刚刚了解该控件望各位大虾指点,  

  一.Rdlc文件的设计

  基本的就不用介绍啦,添加了报表文件以后,在“报表数据”对话框中选择数据集,该数据集应该是用来配置报表文件所用,选中了数据集以后会将该数据集的字段信息配置到报表的xml配置文件中,所以一定要注意为指向该报表文件的ReportViewer控件。

 <DataSource Name="SE">
      <ConnectionProperties>
        <DataProvider>System.Data.DataSet</DataProvider>
        <ConnectString>/* Local Connection */</ConnectString>
      </ConnectionProperties>
      <rd:DataSourceID>9a9c2070-7af9-4188-a95c-74b055bdd9f6</rd:DataSourceID>
    </DataSource>
  </DataSources>
  <DataSets>
    <DataSet Name="DataSet1">
      <Fields>
        <Field Name="OrderId">
          <DataField>OrderId</DataField>
          <rd:TypeName>System.Int64</rd:TypeName>
        </Field>
        <Field Name="ShopOrderId">
          <DataField>ShopOrderId</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="ShopName">
          <DataField>ShopName</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="OutData">
          <DataField>OutData</DataField>
          <rd:TypeName>System.DateTime</rd:TypeName>
        </Field>
          </Fields>
      <Query>
        <DataSourceName>SE</DataSourceName>
        <CommandText>/* Local Query */</CommandText>
      </Query>
      <rd:DataSetInfo>
      </rd:DataSetInfo>
    </DataSet>
  </DataSets>

下面就是Body的配置信息啦。

二.实现循环显示某些信息的实现

  就如我遇到的问题一样,需要显示多个主表和子表信息,并且按照主表的ID分页,这样的需求如何实现呢。我能想到的有两种方式:

  1)用表的“分组”实现。选中显示信息的任何单元格,选择添加父组,就会出现分组设置对话框,如下图:

      

         选择分组的依据,就相当于sql语句中的Group By。这样的设置还可以对每组的数据进行合计。

  2)将表嵌套到表中,因为表是列是不变,行数改变的,这样就可以使显示不同主表的信息。但是还需要设置分组,以主表的ID分组。如果想每页显示一组数据的话就设置“组属性”的分页符,这样数据就会以组来分页显示啦。

好吧,我就介绍这些吧,小码农都是靠思路完成任务的,给出我的思路后相信会对有需要的帮助难兄难弟们。

                                                                      ---海风提供

 

分类:

技术点:

相关文章: