devexpress報表控制項的使用

來源:互聯網
上載者:User
1 設定預設的列印紙張及頁面邊界

選擇Report-開啟屬性視窗,設定預設邊距(Margins)和預設紙張(PaperKind)。

 

2 修改Report Preview的預設工具列(WinForm)

 

 

一般情況下,Report 的Preview視圖中的工具列不用修改就可滿足使用。但是當想修改或添加新的按鈕執行自己的方法時就需要修改Preview工具列了。

 

2.1 擷取預設工具列

 DevExpress.XtraBars.Bar bar = Report.PrintingSystem.PreviewFormEx.PrintBarManager.Bars[0];

 

PrintingSystem:當前Report的預設列印組件,用於提供預設的預覽列印對話方塊和列印功能。

可通過PrintingSystem.PreviewForEx.PrintBarManager擷取設定預覽列印視窗的工具列和菜單。

 

擷取DevExpress.XtraBars.Bar 之後就可以添加或刪除新的BarItem和Menu。

 

2.2 添加新的按鈕

bar.DockStyle = DevExpress.XtraBars.BarDockStyle.Top;

DevExpress.XtraBars.BarButtonItem printItem = new DevExpress.XtraBars.BarButtonItem(

printingSystem.PreviewFormEx.PrintBarManager, "列印", 1);

bar.AddItem(printItem);

 

 

2.3 隱藏不需要的按鈕

 

案例:隱藏列印按鈕

PrintingSystem.SetCommandVisibility(new PrintingSystemCommand[]{

PrintingSystemCommand.PrintDirect,PrintingSystemCommand.Print}, CommandVisibility.None);

 

SetCommandVisibility()方法:設定菜單和工具列按鍵的顯示及隱藏。

方法原形:

public void SetCommandVisibility(

   PrintingSystemCommand[] commands, 

   CommandVisibility visibility

);

Parameters

commands

DevExpress.XtraPrinting.PrintingSystemCommand

指定可在列印系統的預覽檔案執行的命令。(詳細說明請點選連結參見協助文檔)

visibility

CommandVisibility.

指定用於列印系統命令的能見度標準。(詳細說明請點選連結參見協助文檔)

 

All

這兩個命令的工具列項目和功能表項目是可見的。

Menu

已淘汰;使用CommandVisibility全部代替。這兩個命令的工具列項目和功能表項目是可見的。

None

 這兩個命令的工具列按鈕和功能表項目是看不見的。

Toolbar

已淘汰;使用CommandVisibility全部代替。這兩個命令的工具列項目和功能表項目是可見的。

 

 

 

使用Developer Express報表控制項

使用Developer Express報表控制項:
建立一個報表的時候,在添加新項中選擇XtraReport V3 Class選項,名稱自己命名,
點確定就會跳出它的設計介面。
它會有三個地區:PageHeader[one band per page],Detail,PageFooter[one band per page]這三個地區。
首先要添加一個ReportHeader[one band per report],可以在它的空白地區,右擊滑鼠-->Insert Band-->
ReportHeader即可。不需要PageHeader[one band per page]的話,可以把它刪掉。
兩者的區別主要是PageHeader[one band per page]列印出來的每個頁都會顯示PageHeader[one band per page]
所設計的內容。而ReportHeader[one band per report]列印出來的只有在首頁才會顯示。其它的頁就不會了。
接著就是主要介面設計的問題,可以在它的空白地區,右擊滑鼠-->Insert Detail Report-->Unbound即可。
它就會跳出一個DetailReport,它下面還有一個Detail1,主要是用來顯示主要內容用的。接著再添加一個用來
顯示一個主要內容的列標題,就相當於標誌以便更容易查看。可以右擊滑鼠-->Insert Band-->GroupHeader即可。
就會有一個GroupHeader1顯示出來,它是在Detail1上面的,或者還要顯示一些主要內容顯示完之後的一些資料,
又要右擊滑鼠-->Insert Band-->GroupFooter即可。
如果又要讓它同時顯示另外一個,可以選中Detail,然後右擊滑鼠-->Insert Detail Report-->Unbound它就會
跳出另外一個DetailReport1,它下面還有一個Detail2,添加其它的同上。

要讓以下的有資料的話,就要事先對它的資料進行綁定
            DetailReport.DataAdapter = Adp         '資料配接器  
            DetailReport.DataSource = dst          '資料集
            DetailReport.DataMember = "a"          '表 

如果想讓所尋找出來的資料,讓它有順序排列的話,就要使用它裡面的事件了!
如Cell7儲存格是在表格裡面,但其它表格的儲存格綁定在所尋找的資料中,資料有5條的話,Cell儲存格它就不會自己顯示1,2,3,4,5這樣排序了

。就要使用它本身儲存格的事件。
Private Sub Cell7_BeforePrint(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles

Cell7.BeforePrint
        Dim lab As XRLabel = sender
        lab.Text = s  's這個變數要定義一個全域變數,初始值設為1
        s += 1
    End Sub

還有一種情況,可能要對錶格每一行資料中的某列進行求和或求個數。
        '求個數
        Dim XrSummary2 As DevExpress.XtraReports.UI.XRSummary = New DevExpress.XtraReports.UI.XRSummary
        Cell32.DataBindings.Add("Text", dst, "a.id")
        XrSummary2.FormatString = "{0}"
        XrSummary2.Func = SummaryFunc.Count
        XrSummary2.Running = DevExpress.XtraReports.UI.SummaryRunning.Group
        Me.Cell32.Summary = XrSummary2  '就可以顯示所要的個數

        '求和
        Dim XrSummary1 As DevExpress.XtraReports.UI.XRSummary = New DevExpress.XtraReports.UI.XRSummary
        Me.Cell33.DataBindings.AddRange(New DevExpress.XtraReports.UI.XRBinding() {New DevExpress.XtraReports.UI.XRBinding("Text", dst, "a.startmoney", "{0}")})
        XrSummary1.FormatString = "{0}"
        XrSummary1.Func = SummaryFunc.Sum
        XrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Group
        Me.Cell33.Summary = XrSummary1
       

        '儲存格的綁定
         XrTableCell30.DataBindings.Add("Text", dst, "Vouchers.Name")
         Cell17.DataBindings.AddRange(New DevExpress.XtraReports.UI.XRBinding() {New DevExpress.XtraReports.UI.XRBinding("Text", dst1, "a.Depositdate", "{0:yyyy/MM/dd}")})       '日期格式的綁定

    
        '如果要把兩個表格中某一列的值相符累加起來
        '定義兩個變數interest1,interest2為Double型
        '第一個表格的某個列
    Private Sub Cell25_BeforePrint(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles Cell25.BeforePrint
        Dim lab As XRLabel = sender
        Dim value As Double
        value = Convert.ToDouble(lab.Text)
        interest1 += value                '就會求出這一列中所有資料的總和
    End Sub

        '第二個表格的某個列
    Private Sub Cell23_BeforePrint(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles Cell23.BeforePrint
        Dim lab As XRLabel = sender
        Dim value As Double
        value = Convert.ToDouble(lab.Text)
        interest2 += value              
    End Sub
 
        '這樣就會把這兩列的值添加到儲存格Cell19中  
    Private Sub Cell19_BeforePrint(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles Cell19.BeforePrint
        Me.Cell19.Text = interest1 + interest2
    End Sub

 

 

 

在Web中預覽列印

         在Web程式中使用起來可能有點麻煩,但相對來說還是比較容易的。

         1 在頁面中分別添加ReportToolbar和ReportViewer。            

     

ReportToolbar提供一組工具命令,用來控制項ReportViewer視圖執行哪些操作,ReportToolbar最重要的屬性就是ReportViewer屬性,給其指定一個報表視圖。如:

ReportViewer用來展現那Report報表,可以通過ReportViewer的Report屬性指定(通過列表選擇即可),如:

         設定完成後,通過瀏覽器開啟頁面並預覽報表。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.