VS2010 rdlc报表 不在依赖 数据源

在传统的VS2005与VS2008中,RDLC报表是必须依赖外在的数据集的, 但是VS2010 RDLC 报表不在需要外在数据集,关键是因为RDLC报表 内建了一个数据集,把RDLC报表 用XML方式打开,自己可以按照XML的方式 设定一个数据集如下方式,其中红色的部分为多余的部分,可以去掉.

<DataSets>
    <DataSet Name="Ftransfer">

      <Fields>
        <Field Name="stcode">
          <DataField>stcode</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="rowno">
          <DataField>rowno</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="cinvcode">
          <DataField>cinvcode</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="cinvcname">
          <DataField>cinvcname</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="cinvstd">
          <DataField>cinvstd</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="intb">
          <DataField>intb</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="st01">
          <DataField>st01</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="lotnumber1">
          <DataField>lotnumber1</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="st02">
          <DataField>st02</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="lotnumber2">
          <DataField>lotnumber2</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="remark1">
          <DataField>remark1</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
      </Fields>
      <Query>
        <DataSourceName>FDataSet1</DataSourceName>
        <CommandText>/* Local Query */</CommandText>
      </Query>
      <rd:DataSetInfo>
        <rd:DataSetName>FDataSet1</rd:DataSetName>
        <rd:SchemaPath>D:\ERP编程\海纳管理软件\KAIERP\FDataSet1.xsd</rd:SchemaPath>
        <rd:TableName>Ftransfer</rd:TableName>
        <rd:TableAdapterFillMethod />
        <rd:TableAdapterGetDataMethod />
        <rd:TableAdapterName />
      </rd:DataSetInfo>
    </DataSet>

 

在衬托rdlc报表,命名空间如下

using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Reporting.WinForms;

 

代码如下

 private void Ftranreport_Load(object sender, EventArgs e)
        {
            sqlDataset.Class1 sdc = new sqlDataset.Class1();
            DataSet ds = sdc.ads(sqlreport);//生产dataset           
            ReportDataSource rds1 = new ReportDataSource("Ftransfer", ds.Tables[0]);
            ReportDataSource rds2 = new ReportDataSource("Ftransferson", ds.Tables[1]);
            reportViewer1.LocalReport.DataSources.Clear();
            reportViewer1.LocalReport.DataSources.Add(rds1);
            reportViewer1.LocalReport.DataSources.Add(rds2);
            this.reportViewer1.RefreshReport();//处理呈现当前报表
        }

其中"Ftransfer" 就是你内建在rdlc报表的数据集

posted @ 2013-04-13 09:40  zhengyingcan  阅读(396)  评论(0编辑  收藏  举报