文章出處

本篇文章將介紹區域報表和頁面報表的常見使用場景、區別和選擇報表類型的一些建議,兩種報表的模板設計、數據源(設計時和運行時)設置、和瀏覽報表的區別。

ActiveReports 報表控件官方中文入門教程 (1)-安裝、激活以及產品資源

ActiveReports 報表控件官方中文入門教程 (2)-創建、數據源、瀏覽以及發布

本篇文章包括以下部分:

1.區域報表和頁面報表的區別

  • 兩種報表的具體應用場景
  • 區域報表和頁面報表的區別
  • 項目中如何選擇報表類型
    2.區域報表和頁面報表數據源設置
  • 運行時
  • 設計時
    3.報表瀏覽器加載報表的區別
1.區域報表和頁面報表的區別
1.1首先我們來看一下兩種報表的具體應用場景
  • 固定頁面布局報表:ActiveReports 中首創的一種 .NET報表模型,運行時的報表頁面與設計時完全保持一致,各控件的位置和大小都不會改變,非常適合創建傳統的紙質報表格式,如用于設計財務單據、銀行帳票等格式要求嚴格的報表。
  • 連續頁面布局報表:主要通過數據區域來控制報表的布局,能自動實現數據分頁顯示,并提供最強大的報表交互能力,可輕松實現各種交互式報表。報表頁面的控件可以擴大或縮小;通過參數報表實現數據過濾;支持設置交互式排序;您可以設置鉆取報表,在初始狀態下隱藏細節,點擊按鈕后打開;您也可以添加指向其它報表的鉆取鏈接,以及指向報表內其它區域的書簽鏈接等。
  • 區域布局報表:ActiveReports產品的典型報表模型,區域布局中報表被分為不同的區域。缺省情況下的區域布局報表包含頁眉,明細和頁腳區域,可以進一步插入報表頭/報表尾和分組頭/分組尾區域。這種布局方式也在Access和水晶報表中得到廣泛使用。您可以運用已經掌握的C#和VB.NET知識,并結合區域布局報表模型提供的豐富API實現子報表、交叉報表、分組報表、分欄報表、主從報表等多種多樣的報表系統。
  • 1.2區域報表和頁面報表的區別

    區域報表和頁面報表最主要的區別是組成結構,區域報表顧名思義是有多個區域組成,區域報表最終由多個區域組合呈現,包括表頭、詳細區域和表尾組成。

    頁面報表最終呈現布局中只有一個單位就是-頁面,頁面報表最終呈現效果是由多個頁面組合,進一步說,連續頁面布局最終頁數取決于需要展示的數據量。固定頁面報表主要強調的是預覽效果和打印效果完全一致。非常適合創建傳統的紙質報表格式,如用于設計財務單據、銀行帳票等格式要求嚴格的報表。

    1.3項目中如何選擇報表類型

    關于在實際項目中如何選擇報表,往往是主觀因素影響大一些,每個開發人員關注的角度不同會影響選擇結果不同。例如,有些程序員會更加傾向把報表分割成規整的頁眉、數據區域和頁腳三個部分,這樣他就會認為區域報表比較適應項目需求而選擇區域報表。還有其他程序員需要使所有報表頁面基于一張報表模板,這個時候他們就會選擇連續頁面報表。再舉個例子,如果需要使用多個數據源,連續頁面報表也是很好的選擇。

    如果報表中需要交互式報表分析(向下和貫穿鉆取、動態的數據排序),另外迷你圖、數據條、地圖控件、多數據源等需求也需要使用頁面報表實現。

    當然,ActiveReports 提供產品文檔、隨機安裝示例和在線示例等多方面資源來為您選擇報表類型提供大量的指導,協助您選擇正確的報表模板,節省開發時間。

    2.區域報表和頁面報表數據源設置
    2.1頁面報表設計時設計數據源步驟如下:
    • 第一步: 在工程中創建一個名為 PageReport_DataSource_DesignTime.rdlx 的頁面報表

    image

    第二步:創建完成之后,會自動打開報表設計界面,此時我們看到的是一個固定頁面報表(FPL),通過Visual Studio菜單欄中的“報表”->“轉換為連續頁面布局(CPL)報表”將報表轉換為CPL報表。

    從Visual Studio菜單欄中的“視圖”->“其他窗口”->“報表資源管理器 V8”中打開ActiveReports報表資源管理器,此時,你可以看到“數據源”節點,在該節點上鼠標右鍵選擇“添加數據源”菜單項,在彈出的“報表數據源”對話框中按照向導步驟連接到一個Access數據庫,如下圖:

    image

    點擊“確定”按鈕,完成數據源創建操作,此時,在報表資源管理器窗口中的“數據源”節點下新增了一個名為“DataSource1”的子節點,在該節點上點擊鼠標右鍵,選擇“添加數據集”菜單項,在彈出對話框的“查詢”選項卡中寫入以下SQL查詢語句 [Select * from 產品],然后點擊“確定”按鈕完成數據集創建操作。返回到報表資源管理窗口之后,點擊“DataSet1”節點,可以看到SQL查詢語句返回查詢結果的全部數據字段。

    image

    第三步:在Visual Studio工具箱中的“ActiveReports 8 頁面布局報表”分類下將表格控件(Table)拖拽到報表設計界面,然后點擊表格明細行中的單元格,此時,會自動顯示DataSet1中數據集中的全部字段,然后,為每個單元格指定需要綁定的字段。

    image

    更多設計時設置報表數據源內容請參考:

    http://blog.gcpowertools.com.cn/post/2014/08/01/ActiveReports_DataSource_DesignTime.aspx

    2.1頁面報表運行時設置數據源關鍵代碼如下:
     private void 運行時數據源頁面報表ToolStripMenuItem_Click(object sender, EventArgs e)
    
        {
    
            GrapeCity.ActiveReports.PageReport pReport1 = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo("PageReport_DataSource_RunTime.rdlx"));
    
            viewer1.LoadDocument(pReport1.Document);            
    
        }
    
        private void Form1_Load(object sender, EventArgs e)
    
        {
    
            viewer1.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(viewer1_LocateDataSource);
    
        }
    
        void viewer1_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
    
        {
    
            if (args.DataSourceName == "DataSource1")
    
            {
    
                if (args.DataSetName == "DataSet1")
    
                {
    
                    args.Data = GetDataSource();
    
                }
    
            }
    
        }
    
        private DataTable GetDataSource()
    
        {
    
            DataTable dt = new DataTable();
    
            dt.Columns.Add("產品編號");
    
            dt.Columns.Add("產品名稱");
    
            dt.Columns.Add("單價");
    
            dt.Columns.Add("庫存量");
    
            dt.Rows.Add("A10002", "蘋果", 20, 50);
    
            dt.Rows.Add("A15681", "香蕉", 20, 50);
    
            dt.Rows.Add("A15681", "菠蘿", 20, 50);
    
            return dt;
    
        }

    更多運行時設置報表數據源信息請參考:

    http://blog.gcpowertools.com.cn/post/2014/08/01/ActiveReports_DataSource_RunTime.aspx

    3.報表瀏覽器加載報表的區別

    頁面報表和區域報表在瀏覽方式上有差別,本節以WebViewer為例,來查看加載頁面報表和區域報表區別:

    GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport();
    
    rpt.Load(new System.IO.FileInfo(Server.MapPath("")+"\\invoice.rdlx"));
    
    WebViewer1.Report = rpt;

    WebViewer加載基于代碼的區域報表:

    SecionReport rpt = new SecionReport();
    
    WebViewer1.Report = rpt; 

    WebViewer加載基于XML的區域報表:

    SectionReport sr = new SectionReport();
    
    sr.LoadLayout(Server.MapPath("") + "\\Invoice.RPX);
    
    WebViewer1.Report = sr;

    關于在WinForms、WPF、Silverlight等平臺更多詳細內容請參考幫助文檔相關章節:http://www.gcpowertools.com.cn/docs/ActiveReports/AR8Guide/#!Documents/_28.htm

    以上就是ActiveReports報表控件入門教程的全部內容,這三篇文章是使用ActiveReports報表控件必須要了解的只是,希望通過閱讀本系列文章能讓您在ActiveReports報表控件使用上有一個概括性的了解,順利的完成實際開發中的工作。

    您在使用產品過程中有任何疑問,可以登錄官方產品技術社區和經驗豐富的技術工程師、ActiveReports開發人員交流:點擊交流

    了解ActiveReports產品更多特性:

    http://www.gcpowertools.com.cn/products/activereports_overview.htm

    下載產品體驗產品功能:

    http://www.gcpowertools.com.cn/products/download.aspx?pid=16


    文章列表




    Avast logo

    Avast 防毒軟體已檢查此封電子郵件的病毒。
    www.avast.com


    arrow
    arrow
      全站熱搜
      創作者介紹
      創作者 大師兄 的頭像
      大師兄

      IT工程師數位筆記本

      大師兄 發表在 痞客邦 留言(0) 人氣()