XtraReport學習筆記_第1頁
XtraReport學習筆記_第2頁
XtraReport學習筆記_第3頁
XtraReport學習筆記_第4頁
XtraReport學習筆記_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、XtraReport學習筆記Jephy2011/8/19本文檔是學習過程中所做筆記,對于更多深層次的知識還為了解清楚,有待大家共同學習研究。目錄一、基本概念1二、頁面構建時用到的事件1三、報表結構2四、報表常用屬性3五、報表控件41Web頁面控件42報表設計時控件:4六、報表類型51.靜態(tài)報表52.表格報表53.主從報表54.多欄報表55.交叉表報表66.并列報表67.Drill-Through 報表68.郵件合并報表69.標簽報表6七、報表數(shù)據(jù)源71數(shù)據(jù)源72綁定數(shù)據(jù)的方法72.1.使用 .NET 數(shù)據(jù)提供程序綁定報表72.2.把報表綁定到 List72.3.把報表綁定到 XML 數(shù)據(jù)7八、

2、數(shù)據(jù)綁定與報表預覽81設計時綁定82運行時綁定83Chart控件綁定8九、數(shù)據(jù)呈現(xiàn)91數(shù)據(jù)分組與排序92數(shù)據(jù)篩選102.1.在報表級篩選102.2.在數(shù)據(jù)源級篩選103數(shù)據(jù)格式化10十、外觀設置101外觀屬性102樣式112.1奇偶行樣式112.2.樣式表113附條件格式設置11十一、交互導航111超鏈接112文檔地圖12十二、其他12十三、應用程序部署12 XtraReport一、基本概念:XtraReports 中的每個報表都由 XtraRepot 類的一個實例表示,或者由該類的子類來表示(這種情況更常見)。 因此,每個報表都作為帶區(qū)的容器使用,而每個帶區(qū)中都包含報表控件。XtraRepo

3、rts 中的每個報表都可以被綁定到數(shù)據(jù),或者不綁定。 要創(chuàng)建綁定報表,則首先要把報表綁定到數(shù)據(jù)源,然后指定每個報表控件的數(shù)據(jù)綁定選項。報表控件、帶區(qū) 和報表自身的所有大小和位置,都以報表內(nèi)相同的單位度量。 度量單位由報表的 XtraReport.ReportUnit 屬性指定,可以設置為下列類型之一:百分之一英寸:當 ReportUnit 屬性值被設置為 ReportUnit.HundredthsOfAnInch 時使用。 十分之一毫米:當 ReportUnit 屬性值被設置為 ReportUnit.TenthsOfAMillimeter 時使用。二、頁面構建時用到的事件Before Prin

4、t:在 預覽/打印/導出 報表期間,在 XRControl 對象創(chuàng)建其圖像之前,XRControl.BeforePrint 事件發(fā)生,主要用于以程序方式改變報表的屬性、帶區(qū)的屬性、以及存放在 DetailBand 細節(jié)帶區(qū)中的控件的屬性。在此事件中可以執(zhí)行大部分任務 (例如改變 XRControl.Visible、XRControl.BackColor、XRControl.BorderColor 以及其他屬性),可以被輕松執(zhí)行,而 無需編寫代碼,只是使用 格式設置規(guī)則。 此外,BeforePrint 事件可以被接管,從而重新指派控件的樣式,并且調(diào)整其 XRControl.LocationF 屬

5、性。在 BeforePrint 事件中,可以使用 XtraReportBase.GetCurrentColumnValue 方法為數(shù)據(jù)綁定控件獲取數(shù)據(jù)列的當前值。 注意,在此事件中,修改控件的綁定信息就太遲了。 因此,對于數(shù)據(jù)綁定控件,可以只調(diào)整其靜態(tài)文本。示例代碼:private void xrLabel1_BeforePrint(object sender, PrintEventArgs e) if (Convert.ToDouble(this.GetCurrentColumnValue(UnitPrice) 30) XRControl control = this.FindControl

6、(xrLabel1, true); control.LocationF = new PointF(15F, 15F); control.Styles.Style = this.StyleSheet0; 三、報表結構整個報表是由多個綁定帶區(qū)組成,綁定帶區(qū)如下:綁定帶區(qū)說明TopMarginBand每個頁面上面都顯示的空白(天頭),在PageHeaderBand或者ReportHeaderBand上面ReportHeaderBand在報表起始位置(報表頭), 此帶區(qū)被設計用于顯示某些概述信息,例如報表的封面。PageHeaderBand在每個頁面的上方(頁眉),在TopMarginBand或者Re

7、portHeaderBand下方GroupHeaderBand在每組的起始位置,或者在分跨多個頁時而位于組的上方(分組標頭)。 此帶區(qū)指定分組標準,并被用于顯示每組記錄起始位置的信息DetailBand在頁面上所有其他帶區(qū)之間(細節(jié))。 此帶區(qū)每行只顯示綁定數(shù)據(jù)源中的一條記錄,或者當沒有為報表指定數(shù)據(jù)源時而簡單地持有非綁定控件。DetailReportBand在DetailBand的下方(從表),被設計用于在創(chuàng)建主/從報表時持有從報表GroupFooterBand在每組的結束位置,或者在分跨多個頁時而位于組的下方(分組腳注)。 此帶區(qū)主要被設計用于顯示每組的總結信息。ReportFooterB

8、and在報表結束位置(報表腳注)。 此帶區(qū)被設計用于顯示某些終極信息,例如報表總結。PageFooterBand在每個頁面的下方(頁腳)在ReportFooterBand下方和BottomFooterBand上方,此帶區(qū)被設計用于從之前頁面接續(xù)的頁碼或表尾BottomMarginBand每個頁面底部的空白(地腳),在PageFooterBand的下方。四、報表常用屬性屬性說明BackColor設置報表控件的背景色Bands報表包含的帶區(qū),用于放置各種控件(集合)BorderColor報表中控件邊框顏色BorderDashStyle報表中控件邊框樣式Borders報表中控件邊框BorderWid

9、th邊框?qū)挾菴alculatedFiled計算字段,主要被用于 data-aware(數(shù)據(jù)感知) 報表中(集合)DataAdapter數(shù)據(jù)源Adapter對象DataMember數(shù)據(jù)源中用于綁定報表的具體表DataSource報表數(shù)據(jù)源DataSourceSchema指定數(shù)據(jù)源框架文件(XML/XSD文件)DesignerOptionsShowDesignerHints(bool):設計時顯示提示ShowDesignerWarnings(bool):設計時顯示警告提示 ShowPrintingWarnings(bool):打印提示DetailPrintCount設置打印的頁數(shù)DetailPri

10、ntCountOnEmptyDataSource當數(shù)據(jù)源為空時打印的次數(shù)DrawGrid(bool)設置是否要繪制對齊網(wǎng)格ExportOptions用于設置報表導出時的相關屬性(集合)FilterString報表數(shù)據(jù)過濾字符串PageColor報表頁面顏色FormattingRules設置格式化樣式FormattingSheet格式化樣式集合PagerKind設置紙張類型Parameters設置報表參數(shù)PrintOnEmptyDatasource(bool)設置當數(shù)據(jù)源為空時是否打印RequestParameters(bool)設置是否在參數(shù)Submit后再創(chuàng)建報表SnapGridSize設置

11、報表對齊網(wǎng)格大小SnappingModel設置對齊模式(SnapToLines&SnapToGrid)SnapToGrid(bool)設置是否對齊到網(wǎng)格StyleSheet設置控件引用的樣式StyleSheetPath設置引用外部樣式文件TextAlignment設置報表字體對齊方式Watermark(屬性集合)用于設置報表的水印,包括圖片和文字XmlDataPath設置數(shù)據(jù)源為Xml文件的數(shù)據(jù)源路徑五、報表控件報表控件在Web應用程序中分為Web頁面控件和報表設計控件1Web頁面控件控件說明ReportDocumentMap用于在Web頁面顯示報表中的書簽,需要指定該控件的ReportVie

12、wer屬性。ReportParameterPanel用于Web頁面?zhèn)鬟f參數(shù)給報表,需要指定該控件的ReportViewer屬性。ReportViewer用于Web頁面呈現(xiàn)報表,需指定該控件的Report屬性為要顯示的報表實例。ReportToolbar與ReportViewer控件配合使用,實現(xiàn)翻頁,打印,導出等功能。2報表設計時控件:控件說明XRLabel標簽控件,允許把單行或多行文本插入到報表中。此文本可能是靜態(tài)的,也可能是動態(tài)綁定。XRCheckBox復選框控件,被設計用于在報表中顯示 True/False 或 選中/未選中/不確定 狀態(tài)。XRRichText富文本控件,被設計用于顯示、

13、輸入和操作設置格式的文本。XRPictureBox圖片框控件,用于顯示報表中的圖像。XRPanel面板控件,可以包含其他報表控件。XRTable表格控件,用于插入表格 (包括行和單元格)。XRLine線條控件,用于在報表中繪制垂直線、水平線或斜線。XRShape形狀控件,用于把簡單的圖形嵌入到報表中。XRBarCode條形碼控件,允許把許多不同的條形碼類型插入到報表中。XRZipCode郵政編碼控件,允許把表示郵政編碼的數(shù)字插入到報表中。XRChart圖表控件,可以用于以圖形視圖呈現(xiàn)數(shù)據(jù)。XRPivotGrid透視網(wǎng)格控件,用于以交叉表的形式呈現(xiàn)下層數(shù)據(jù)源中的數(shù)據(jù),從而創(chuàng)建交叉表報表。XRPa

14、geInfo顯示某些輔助信息的控件。 使用此控件可以在報表中顯示頁碼、當前日期或用戶信息。XRPageBreak分頁符控件,用作標記報表應開始新頁面。XRCrossBandLine可以跨多個帶區(qū)的線條控件。XRCrossBandBox可以跨多個帶區(qū)的方框控件。XRSubReport子報表控件,用于顯示子報表。六、報表類型1. 靜態(tài)報表 是簡單呈現(xiàn)某些靜態(tài)信息的報表。 這種報表通常不綁 到數(shù)據(jù)源,并且在一頁上顯示單個控件或一組控件。如果需要多次重復相同的報表內(nèi)容,那么使用 XtraReportBase.DetailPrintCount 屬性。2. 表格報表 是以表格形式呈現(xiàn)信息的報表。 這些信息

15、被存儲在報表的綁定數(shù)據(jù)源中(也可以運行時從數(shù)據(jù)庫中讀取),并且通常此數(shù)據(jù)源不分層級 (例如,只包含一個數(shù)據(jù)表)。使用 XRTable 控件,并且綁定表格的單元格來呈現(xiàn)數(shù)據(jù)源中的數(shù)據(jù);3. 主從報表 如果某個報表被用于顯示分層級的數(shù)據(jù)源中的數(shù)據(jù),則通常把它稱為 主/從 報表。創(chuàng)建主/從報表的兩種主要方法。 第一種方法: 是以使用 從報表帶區(qū)為基礎(使用DetailReportBand帶區(qū)),當數(shù)據(jù)源包含主實例和從實例之間的 ADO.NET 關系時,使用這種方法使用。 第二種方法:是創(chuàng)建兩個不同的報表類,并且把從報表作為子報表而合并到主報表中(使用XRSubReport控件,指定此控件的Repor

16、tSource屬性為子報表)。4. 多欄報表 是以多個列或行 (取決于當前的多欄設置) 呈現(xiàn)數(shù)據(jù)的報表。 這種報表是有用的,例如,當每個細節(jié)帶區(qū)都只顯示少量數(shù)據(jù)、并且需要在一列的右側打印下一個細節(jié)帶區(qū)的外觀時,這樣就能充分利用整個頁面寬度。 此外,當創(chuàng)建有相同內(nèi)容的 卡片或郵寄地址簽、并且需要在許多報表頁面上打印大量相同尺寸的卡片時,多欄報表也是有用的。由于多欄布局主要影響報表的細節(jié)帶區(qū),因此可以通過 Detail 帶區(qū)的 DetailBand.MultiColumn 屬性來指定多欄模式。 要啟用多欄模式,則把 MultiColumn.Mode 屬性設置為除去 None 之外的其他取值欄數(shù)固定

17、,欄寬度相同并且被自動計算。為此,應該把 MultiColumn.Mode 屬性設置為 MultiColumnMode.UseColumnCount,并把 MultiColumn.ColumnCount 屬性設置為所需的欄數(shù)。 自動計算欄數(shù),所有欄的寬度都是相同的固定寬度。為此,應該把 MultiColumn.Mode 屬性設置為 MultiColumnMode.UseColumnWidth,并且把 MultiColumn.ColumnWidth 屬性設置為所需的欄寬度。5. 交叉表報表 是以交叉表形式呈現(xiàn)信息的報表。 交叉表 (或透視表) 類似于簡單的普通 數(shù)據(jù)綁定表格,但是改為在單個表格中

18、呈現(xiàn)多維的分層級的信息,并含有每行和每列的自動排序、計數(shù)、合計和累計。使用XRPivotGrid控件,并為此控件指定數(shù)據(jù)源、綁定字段到列,同時要保證報表的數(shù)據(jù)源為NULL,如果兩者使用相同的數(shù)據(jù)源,那么XRPivotGrid控件將被打印與數(shù)據(jù)源行數(shù)相同的次數(shù)。6. 并列報表 在報表中顯示兩欄相同的或者不同的信息,主要依賴于XRSubReport控件。7. Drill-Through 報表 類似于主從報表,但是子報表是通過超鏈接來訪問的。超鏈接的設置將在下面數(shù)據(jù)綁定部分介紹。8. 郵件合并報表 試圖創(chuàng)建 e-mail 模板時,經(jīng)常會遇到困難。 在這些模板中,某些文本是不變的,某些字段 (通常被使

19、用預定義的標記括起來) 應該在創(chuàng)建文檔時填充來源于數(shù)據(jù)庫的數(shù)據(jù)。 此項功能也被稱為 郵件合并,并且使用 XtraReports 可以輕松實現(xiàn)。大體上,要創(chuàng)建嵌入字段,則需要把由 中括號 括起的數(shù)據(jù)字段名稱插入到控件的文本中,如果在當前的數(shù)據(jù)上下文中,字段是有效的,那么當報表被預覽或?qū)С鰰r,它將被替換為一個適當?shù)臄?shù)據(jù)值。9. 標簽報表 此報表與多欄報表相類似。七、報表數(shù)據(jù)源1數(shù)據(jù)源通過 XtraReport 對象的 XtraReportBase.DataSource 屬性把它綁定到數(shù)據(jù)源,而與特定的數(shù)據(jù)源類型和所使用的數(shù)據(jù)綁定方法無關。 唯一的例外是當使用 XML 數(shù)據(jù)源時,需要指派到 Xtra

20、ReportBase.XmlDataPath 屬性,同時要求把 XtraReportBase.DataSource 屬性設置為 null。2綁定數(shù)據(jù)的方法2.1.使用 .NET 數(shù)據(jù)提供程序綁定報表這種方法意味著數(shù)據(jù)被存儲在數(shù)據(jù)庫中。 使用已提供的兩種數(shù)據(jù)適配器組件之一,就可以把報表綁定到這種數(shù)據(jù):OleDbDataAdapter,使用 OLE DB 訪問公開的數(shù)據(jù)源; SqlDataAdapter,被設計用于使用由 Microsoft SQL Server 7.0 或后續(xù)版本提供的數(shù)據(jù)源。這些數(shù)據(jù)適配器都使用連接對象來綁定數(shù)據(jù),并且能夠生成包含數(shù)據(jù)表的 DataSet 對象。 然后通過把數(shù)據(jù)

21、表 (或綁定到表的數(shù)據(jù)視圖) 直接指派到 XtraReportBase.DataSource 屬性,它們就可以被綁定報表。 也可以把生成的 DataSet 對象指派到 XtraReportBase.DataSource 屬性,并且使用 XtraReportBase.DataAdapter 屬性來指定數(shù)據(jù)適配器的名稱。2.2.把報表綁定到 List在運行時刻創(chuàng)建的數(shù)據(jù)對象必須支持 IList、ITypedList 或 IBindingList 接口,并且被指派到 XtraReportBase.DataSource 屬性。 注意,你不需要創(chuàng)建自定義的數(shù)據(jù)源對象。 例如,可以在運行時刻使用填充了數(shù)據(jù)

22、的 DataTable 對象。2.3.把報表綁定到 XML 數(shù)據(jù)這種方法使用存儲在 XML 文件中的數(shù)據(jù)。 可以以兩種方式之一來訪問這種數(shù)據(jù)。把 XtraReportBase.DataSource 屬性值設置為根據(jù) XML 文件創(chuàng)建的數(shù)據(jù)集; 直接把 XML 文件指派到 XtraReportBase.XmlDataPath 屬性。八、數(shù)據(jù)綁定與報表預覽1設計時綁定在設計時綁定數(shù)據(jù)源,需要把相應的數(shù)據(jù)源添加到應用程序中,即在應用程序中添加DataSet程序集,然后在報表設計界面,把報表的數(shù)據(jù)源指定到相應的數(shù)據(jù)集上,打開Field List字段列表,將相應的字段用鼠標拖到相應的控件上即可。點擊Pr

23、eview 即可預覽報表。2運行時綁定在運行時綁定數(shù)據(jù)源,更具靈活性,它可以根據(jù)需要從數(shù)據(jù)庫中讀取有用的數(shù)據(jù)來呈現(xiàn)在報表上。對于運行時綁定數(shù)據(jù)源,其數(shù)據(jù)綁定操作要在報表的構造函數(shù)中完成。在報表設計器中只需把相應的控件放置好即可。報表控件中都有一個DataBindings屬性,此屬性的Add方法可以把數(shù)據(jù)綁定到控件上。示例代碼:Void DataBind()DataSource=tb / tb為DataTablexrLabel1.DataBinds.Add(”Text”,null,”Column1”);xrLabel2.DataBinds.Add(”Text”,null,”Column2”,”F

24、ormatString:0”);在報表的構造函數(shù)中調(diào)用以上方法就可以將數(shù)據(jù)綁定到xrLabel上,其中Add方法有兩個重載:Control.DataBinds.Add(控件屬性,數(shù)據(jù)源,綁定字段)Control.DataBinds.Add(控件屬性,數(shù)據(jù)源,綁定字段,格式化設置)每個控件可綁定的屬性可能有所不同,可以通過該控件的DataBinds屬性來查看。3Chart控件綁定 Chart控件與PivotGrid控件都需要獨立指定數(shù)據(jù)源,同時,如果這兩個控件被放置Detail帶區(qū)中,報表不能指定數(shù)據(jù)源,不然,該控件將被顯示與報表數(shù)據(jù)源行數(shù)相同的次數(shù)。 對與Chart控件的數(shù)據(jù)綁定,要把相應字段

25、綁定到對應的Series上,ArgumentDataMember為X軸綁定字段,ValueDataMembersSerializable為Y軸字段。 一個圖表中可以有多個Series,可以通過Series索引或者Name來找到相應的Series.Chart控件中Series集合表示圖表,Titles集合是對應Series的標題。 示例代碼: protected void DataBind() string sqlStr = select UnitPrice,ProductName from ProductSales group by ProductName,UnitPrice; this.xr

26、Chart1.DataSource = helper.getDataTable(sqlStr); this.xrChart1.Series0.ArgumentDataMember = ProductName; this.xrChart1.Series0.ValueDataMembersSerializable = UnitPrice; this.xrChart1.Series0.Name = Price; this.xrChart1.Series0.LegendPointOptions.PointView = PointView.Argument; his.xrChart1.Legend.Vi

27、sible = false; 九、數(shù)據(jù)呈現(xiàn)由于數(shù)據(jù)源提供方式分為設計時與運行時,所以數(shù)據(jù)呈現(xiàn)也有所不同。對于運行時提供數(shù)據(jù)源的報表,分組、排序都需要通過代碼添加到報表中,而設計時提供數(shù)據(jù)源則可以直接通過圖形化界面進行設置。1數(shù)據(jù)分組與排序運行時分組需要在數(shù)據(jù)綁定函數(shù)中加入如下代碼:this.GroupHeader1.GroupFields.Add(new GroupField(StudentID,XRColumnSortOrder.Descending);GroupField的兩個參數(shù)分別為分組字段,排序方式。2數(shù)據(jù)篩選2.1.在報表級篩選在報表中添加Parameters屬性中添加篩選參數(shù),并

28、設置篩選條件,在Web頁面上Parameters中的參數(shù)列表將被顯示在ReportParameterPanel控件中,報表中添加參數(shù)以后,默認狀態(tài)預覽報表需要點擊Submit后報表才被創(chuàng)建,若要不提供參數(shù)也創(chuàng)建報表,需要將報表的RequestParameters屬性設置為false。2.2.在數(shù)據(jù)源級篩選在數(shù)據(jù)級篩選數(shù)據(jù),主要是通過SQL語句的where條件,要將Where條件的參數(shù)傳遞到報表類中,可以通過報表的構造函數(shù),其他方式有待研究。同時結合在報表級的數(shù)據(jù)篩選,可以方便點的在頁面上呈現(xiàn)出需要的數(shù)據(jù)。3數(shù)據(jù)格式化通過控件的FormatString屬性可以根據(jù)需要設置相應的格式化輸出樣式。通

29、過控件的Summary屬性來設置各種統(tǒng)計功能。十、 外觀設置1外觀屬性外觀屬性如下表:屬性說明BackColor獲取或設置報表元素及其子控件的背景色BorderColor獲取或設置報表元素及其子控件的邊框色。BorderDashStyle獲取或設置報表元素及其子控件的邊框虛線樣式。Borders獲取或設置報表元素及其子控件的可視邊框 (上、右、下、左)。BorderWidth獲取或設置報表元素及其子控件的邊框?qū)挾?。Font獲取或設置報表元素及其子控件的字體選項 (字體名稱、大小等)。ForeColor獲取或設置報表元素及其子控件的前景色。Padding獲取或設置用于繪制報表元素及其子控件內(nèi)容的

30、縮進量。TextAlignment獲取或設置報表元素及其子控件的文本對齊方式。 2樣式2.1奇偶行樣式它允許在視覺上把報表中連續(xù)的數(shù)據(jù)字段劃分開,從而有更好的可讀性。 要把這些樣式應用于控件,則應該使用其 XRControl.OddStyleName 和 XRControl.EvenStyleName 屬性。2.2.樣式表在設計時刻可以使用 Styles Editor(樣式編輯器) 來管理報表的樣式表、定制樣式表、存儲到文件以及從文件中加載。 因此,可以創(chuàng)建多個樣式表,并且在設計時刻或運行時刻加載。保存報表的樣式表的方式有兩種。 第一種方式是保存為外部文件 (有 REPSS 擴展名),然后使用 XtraReport.StyleSheetPath 屬性,以只讀模式加載到報

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論