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报表的数据集