rdlc 报表

1、创建一个asp.net 空 Web 应用程序。(当然你喜欢也可以创建网站、Windows窗体应用程序、WPF应用程序。本文以Web项目为例,再附带的源代码中你可以找到Winform和wpf的例子)

2、新建文件夹common添加一个aspx页面。

3、在工具栏-报表选项卡找到ReportViewer控件拖到页面中,并调整控件的大小。

4、组织一个数据源。在新建文件夹DataEntity里添加一个数据源

你可以使用你程序里现有的数据源,也可以直接用类型化的DataSet来连接数据库得到。这里我们使用2这两种方法分别做演示,如果你想使用EF或其他形式的数据源我们以后再做介绍。

    1)选择添加-新建项,创建一个数据集,我们为改名,就使用默认的名称DataSet1.xsd。

      2)使用TableAdapter 配置向导向DataSet1.xsd中添加一个DataTable.(选择一个你数据库中已有的表)下面是我创建的一个DataTable. 

 

   5、接下来我们创建一个报表文件。选择添加-新建项-报表。新建文件夹ReprotTemplate里新建 DistributionReport.rdlc

  1)你可以直接向上面那样用设计器添加一个类型化的DataSet到报表的数据源,但是我发现在Web项目中没有可以让你选择的可视化的操作。如果你使用WinForm做这个练习,很幸运设计器强帮你完成一切。

       2)如果你想使用对象数据源,可以直接修改.rdlc源代码(用右键Report1.rdlc选择打开方式--XML(文本)编辑器要比直接右击-查看代码好一点)

  将下面代码DataSource  Name=“DistributionDataSet” 改为指定的数据源

 

  <DataSource Name="DistributionDataSet">

      <ConnectionProperties>
        <DataProvider>System.Data.DataSet</DataProvider>
        <ConnectString>/* Local Connection */</ConnectString>
      </ConnectionProperties>
      <rd:DataSourceID>30b103ac-eadb-4c8e-9a10-eac014f392eb</rd:DataSourceID>
    </DataSource>
  </DataSources>

 

 

接着将<DataSet Name="DataSet1"> 、<DataSourceName>DistributionDataSet</DataSourceName>、

<rd:DataSetName>Efruit_CN_SHDataSet</rd:DataSetName>

        、<rd:SchemaPath>E:\lixuehuaDEMO\YGReport\YGReport\Efruit_CN_SHDataSet.xsd</rd:SchemaPath> 

改为制定的数据源名称 DistributionDataSet

<DataSet Name="DistributionDataSet"> 、<DataSourceName>DistributionDataSet</DataSourceName>、

<rd:DataSetName>Efruit_CN_SHDataSet</rd:DataSetName>

        、<rd:SchemaPath>E:\lixuehuaDEMO\YGReport\YGReport\DataEntity\DistributionDataSet.xsd</rd:SchemaPath>  


<DataSets>

    <DataSet Name="DataSet1">

      <Fields>

        <Field Name="AreaId">

          <DataField>AreaId</DataField>

          <rd:TypeName>System.Guid</rd:TypeName>

        </Field>

        <Field Name="AreaName">

          <DataField>AreaName</DataField>

          <rd:TypeName>System.String</rd:TypeName>

        </Field>

        <Field Name="Grade">

          <DataField>Grade</DataField>

          <rd:TypeName>System.Int32</rd:TypeName>

        </Field>

        <Field Name="PriorId">

          <DataField>PriorId</DataField>

          <rd:TypeName>System.Guid</rd:TypeName>

        </Field>

        <Field Name="IsLowest">

          <DataField>IsLowest</DataField>

          <rd:TypeName>System.Int32</rd:TypeName>

        </Field>

        <Field Name="HighId">

          <DataField>HighId</DataField>

          <rd:TypeName>System.Guid</rd:TypeName>

        </Field>

        <Field Name="Disabled">

          <DataField>Disabled</DataField>

          <rd:TypeName>System.Int32</rd:TypeName>

        </Field>

        <Field Name="REC_CreateTime">

          <DataField>REC_CreateTime</DataField>

          <rd:TypeName>System.DateTime</rd:TypeName>

        </Field>

        <Field Name="REC_CreateBy">

          <DataField>REC_CreateBy</DataField>

          <rd:TypeName>System.String</rd:TypeName>

        </Field>

        <Field Name="REC_ModifyTime">

          <DataField>REC_ModifyTime</DataField>

          <rd:TypeName>System.DateTime</rd:TypeName>

        </Field>

        <Field Name="REC_ModifyBy">

          <DataField>REC_ModifyBy</DataField>

          <rd:TypeName>System.String</rd:TypeName>

        </Field>

      </Fields>

      <Query>

        <DataSourceName>DistributionDataSet</DataSourceName>

        <CommandText>/* Local Query */</CommandText>

      </Query>

      <rd:DataSetInfo>

        <rd:DataSetName>Efruit_CN_SHDataSet</rd:DataSetName>

        <rd:SchemaPath>E:\lixuehuaDEMO\YGReport\YGReport\Efruit_CN_SHDataSet.xsd</rd:SchemaPath>

        <rd:TableName>Dim_Area</rd:TableName>

        <rd:TableAdapterFillMethod>Fill</rd:TableAdapterFillMethod>

        <rd:TableAdapterGetDataMethod>GetData</rd:TableAdapterGetDataMethod>

        <rd:TableAdapterName>Dim_AreaTableAdapter</rd:TableAdapterName>

      </rd:DataSetInfo>

    </DataSet>

  </DataSets> 

 

在aspx页面cs文件里写的代码

YGReport.DataEntity.DistributionDataSet.Fct_OrderDataTable dataTable = new DataEntity.DistributionDataSet.Fct_OrderDataTable();

            YGReport.DataEntity.DistributionDataSetTableAdapters.Fct_OrderTableAdapter dapter = new DataEntity.DistributionDataSetTableAdapters.Fct_OrderTableAdapter();

            dataTable = dapter.GetData();


            //YGReport.Efruit_CN_SHDataSet.Fct_OrderDataTable dataTable = new Efruit_CN_SHDataSet.Fct_OrderDataTable();

            //YGReport.Efruit_CN_SHDataSetTableAdapters.Fct_OrderTableAdapter dapter = new Efruit_CN_SHDataSetTableAdapters.Fct_OrderTableAdapter();

            //dataTable = dapter.GetData();


            ReportDataSource rds = new ReportDataSource("DistributionDataSet", dataTable.DefaultView);


            // DataSet1_Customers为之前添加的数据集以及对应的数据包,dt就是我们自定义的数据源


            ReportViewer1.LocalReport.ReportPath = "E:/lixuehuaDEMO/YGReport/YGReport/ReprotTemplate/DistributionReport.rdlc";


            //此处就是对应要关联的报表,当然在前台设计的时候也可以直接选择


            ReportViewer1.LocalReport.DataSources.Clear();


            ReportViewer1.LocalReport.DataSources.Add(rds);


            ReportViewer1.LocalReport.Refresh();

            m_currentPageIndex = 0; 

 

转载于:https://www.cnblogs.com/leesa/archive/2010/10/26/1861497.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值