国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET中動態控制RDLC報表

2024-07-10 12:40:54
字體:
來源:轉載
供稿:網友
在asp.net程序中,可以選擇使用水晶報表,功能確實強大。但是web版的水晶報表好像存在版權的問題。如果所作報表不是復雜的一塌糊涂的話,可以使用微軟自帶的Rdlc報表。

  Rdlc優點:

  1:Rdlc報表設計簡單

  2:結果存成xml,易于控制

  3:導出格式作的很不錯

  這里所說的動態控制報表所指的是:在一些時候,制作了報表之后希望在運行中可以動態的做一些小修改,比如說列的位置,用戶控制顯示那些列等等。

  控制方法,嘗試了這么幾種:

  1:控制微軟提供的報表對象的屬性;

  2:報表全部自動生成

  3:修改報表源文件,然后加載。

  控制微軟提供的報表對象的屬性:基于這個功能需求,一開始我想到的方法是通過控制微軟提供的這些報表對象的屬性來實現。因為這種方法最人道了。但是事與愿違,微軟的ReportViewer對象是用來顯示Report的,自然不行;我使用的report是自己設計的,localReport,找到Report對象,里面方法有這個幾個:report.GetDefaultPageSettings();report.GetDocumentMap()等,第一個是獲取打印紙張德設置,第二個是獲取doc文檔(但是始終出錯),都是只讀屬性;所以,第一種嘗試失敗。

  第二種方法就是報表全部自動生成。可以找到一個完整的例子,在這里:http://www.gotreportviewer.com/DynamicTable.zip
這個例子里面,他把xml結構的rdlc報表寫成一個類ReportDefinition,然后通過自定義這個類的內容來得到一個報表。其實際還是為了自己構造一個報表對象的xml。這是加載自定義報表的過程:win下的代碼 this.reportViewer1.Reset();

this.reportViewer1.LocalReport.LoadReportDefinition(m_rdl);
this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("MyData", m_dataSet.Tables[0]));
this.reportViewer1.RefreshReport();這是自動生成xml的代碼:
private MemoryStream GenerateRdl(List<string> allFields, List<string> selectedFields)
{
 MemoryStream ms = new MemoryStream();
 RdlGenerator gen = new RdlGenerator();
 gen.AllFields = allFields;
 gen.SelectedFields = selectedFields;
 gen.WriteXml(ms);
 ms.Position = 0;
 return ms;
}

  這是完全ReportDefinition的一部分定義:

namespace Rdl {
 using System.Xml.Serialization;

 /**//// <remarks/>
 [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
 [System.SerializableAttribute()]
 [System.Diagnostics.DebuggerStepThroughAttribute()]
 [System.ComponentModel.DesignerCategoryAttribute("code")]
 [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
 [System.Xml.Serialization.XmlRootAttribute(Namespace=_
  "http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition", IsNullable=false)]
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玛沁县| 邹平县| 措美县| 丽江市| 深圳市| 肥乡县| 新乡市| 锡林郭勒盟| 乌苏市| 横峰县| 浮梁县| 张家界市| 蕲春县| 修武县| 高阳县| 皮山县| 阿图什市| 海晏县| 富锦市| 马公市| 东乡县| 永福县| 甘孜县| 元氏县| 莒南县| 济宁市| 五家渠市| 大同县| 荆门市| 和田县| 商城县| 井冈山市| 塘沽区| 宾阳县| 南皮县| 民权县| 确山县| 确山县| 宁陕县| 文水县| 长兴县|