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
總結
- 上一篇: 安装完毕freebsd的后续工作,安全设
- 下一篇: 重构-打造爱因斯坦谜题最快算法