rdlc 报表
1、創(chuàng)建一個asp.net 空 Web 應(yīng)用程序。(當(dāng)然你喜歡也可以創(chuàng)建網(wǎng)站、Windows窗體應(yīng)用程序、WPF應(yīng)用程序。本文以Web項目為例,再附帶的源代碼中你可以找到Winform和wpf的例子)
2、新建文件夾common添加一個aspx頁面。
3、在工具欄-報表選項卡找到ReportViewer控件拖到頁面中,并調(diào)整控件的大小。
4、組織一個數(shù)據(jù)源。在新建文件夾DataEntity里添加一個數(shù)據(jù)源
你可以使用你程序里現(xiàn)有的數(shù)據(jù)源,也可以直接用類型化的DataSet來連接數(shù)據(jù)庫得到。這里我們使用2這兩種方法分別做演示,如果你想使用EF或其他形式的數(shù)據(jù)源我們以后再做介紹。
??? 1)選擇添加-新建項,創(chuàng)建一個數(shù)據(jù)集,我們?yōu)楦拿?#xff0c;就使用默認(rèn)的名稱DataSet1.xsd。
?? ?2)使用TableAdapter 配置向?qū)駾ataSet1.xsd中添加一個DataTable.(選擇一個你數(shù)據(jù)庫中已有的表)下面是我創(chuàng)建的一個DataTable.??
? 5、接下來我們創(chuàng)建一個報表文件。選擇添加-新建項-報表。新建文件夾ReprotTemplate里新建?DistributionReport.rdlc
1)你可以直接向上面那樣用設(shè)計器添加一個類型化的DataSet到報表的數(shù)據(jù)源,但是我發(fā)現(xiàn)在Web項目中沒有可以讓你選擇的可視化的操作。如果你使用WinForm做這個練習(xí),很幸運設(shè)計器強幫你完成一切。
? ?????2)如果你想使用對象數(shù)據(jù)源,可以直接修改.rdlc源代碼(用右鍵Report1.rdlc選擇打開方式--XML(文本)編輯器要比直接右擊-查看代碼好一點)
??將下面代碼DataSource ?Name=“DistributionDataSet” 改為指定的數(shù)據(jù)源?
??<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>?
改為制定的數(shù)據(jù)源名稱?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為之前添加的數(shù)據(jù)集以及對應(yīng)的數(shù)據(jù)包,dt就是我們自定義的數(shù)據(jù)源
?? ? ? ? ? ?ReportViewer1.LocalReport.ReportPath = "E:/lixuehuaDEMO/YGReport/YGReport/ReprotTemplate/DistributionReport.rdlc";
?? ? ? ? ? ?//此處就是對應(yīng)要關(guān)聯(lián)的報表,當(dāng)然在前臺設(shè)計的時候也可以直接選擇
?? ? ? ? ? ?ReportViewer1.LocalReport.DataSources.Clear();
?? ? ? ? ? ?ReportViewer1.LocalReport.DataSources.Add(rds);
?? ? ? ? ? ?ReportViewer1.LocalReport.Refresh();
?? ? ? ? ? ?m_currentPageIndex = 0;?
?
轉(zhuǎn)載于:https://www.cnblogs.com/leesa/archive/2010/10/26/1861497.html
總結(jié)
- 上一篇: 安装完毕freebsd的后续工作,安全设
- 下一篇: 重构-打造爱因斯坦谜题最快算法