WinForm中使用CrystalReport水晶報表——基礎,分組統計,自定義數據源

来源:http://www.cnblogs.com/mingjiatang/archive/2016/03/04/5242775.html
-Advertisement-
Play Games

開篇 本篇文章主要是幫助剛開始接觸CrystalReport報表的新手提供一個循序漸進的教程。該教程主要分為三個部分1)CrystalReport的基本使用方法;2)使用CrystalReport對數據進行分組求和;3)CrystalReport如何使用自定義的數據源(如記憶體中的DataTable表


開篇


本篇文章主要是幫助剛開始接觸CrystalReport報表的新手提供一個循序漸進的教程。該教程主要分為三個部分1)CrystalReport的基本使用方法;2)使用CrystalReport對數據進行分組求和;3)CrystalReport如何使用自定義的數據源(如記憶體中的DataTable表)三個方面來寫。相信看懂了這個教程之後,對於自己項目中的實現報表這一功能,應該就能輕鬆的應對了。   一    CrystalReport模板的製作及顯示
A模板的製作 1、右鍵【項目屬性】添加一個水晶報表(在vs中需要安裝CrystalReport模塊,不同vs版本下載不同的CrystalReport版本:CrystalReport下載鏈接:http://scn.sap.com/docs/DOC-7824   2、添加報表的設計界面如下:一個報表包括(報表頭,頁眉,詳細資料,報表尾,頁眉)5個基本部分。   3、現在我們需要給新建的報表添加一個數據源,右鍵左邊的【資料庫欄位】選擇相應的數據源,進行綁定。我這裡選擇的是sqlserver資料庫。     4、輸入資料庫的登錄信息,然後選擇需要綁定的資料庫表,除了綁定數據表之外,還可以綁定sql語句查詢的結果,以及存儲過程和視圖,下麵給出綁定資料庫表格,和綁定sql查詢。 1)綁定資料庫表格     2)點擊連接下麵的【添加命令】綁定sql語句。   5、綁定資料庫之後在報表左側的【欄位管理器】中就會出現該表以及sql查詢結果的的相應表頭欄位。   6、把相應的欄位在報表視圖中進行佈局。     到此水晶報表的模板已經做好了。註意:頁眉中的userName,courseName,score是可以更改。   B模板的顯示 1、首先在窗體上拖一個CrystalReportView控制項作為顯示報表模板。   2、在form_load事件裡面寫如下代碼:
  CrystalReport1 cr = new CrystalReport1();//實例化一個報表模板
 
  this.crystalReportViewer1.ReportSource = cr;//為報表顯示控制項設置數據源 
3、運行   報表設計點醜,但是你可以根基自己的風格進行排版設計,如字體,大小,顏色等啦。   二    CrystalReport分組統計

我們在第一部分已經實現了每個同學成績的報表輸出,接下我們需要對每個同學進行分組統計,求每個同學的平均成績。 1、在左側的【欄位資源管理器】中右鍵【組名欄位】點擊【插入組】 2、選擇要分組的欄位,然後點擊【確定】   3、這是在報表的設計器中會自動添加一個【分組】的部分。 4、在分組頭中顯示每組的名稱,然後我們可以在組尾中進行成績平均值的統計。點擊【運行總計欄位】【新建】。 5、點擊【確定】會彈出編輯運行總計欄位,然後在設置avg的值。   6、點擊【確定】後,在左側的【欄位資源管理器】中的【運行總計欄位】會顯示【avg】。 7、接下來,就可以把這個欄位拖到報表設計器上的【組尾】部分中。 8、這下分組統計的報表模板就已經做好了。下麵對報表模板進行整理一下,然後進行顯示。     三    CrystalReport綁定自定義的數據源
我們在第一步,第二步中都是使用sqlserver(數據表,查詢結果等)作為數據源,都是一個二維表,然後通過二維表的表頭去佈局報表模板,然後報表在顯示的時候自動連接sqlserver,根據設置獲取數據並顯示,通過這樣的方式我們的對數據的控制權就不夠。而有時候我們需要在記憶體中對數據進行加工處理,形成一個自己的datable表,然後再綁定到報表上進行顯示。下麵我們就演示一下,如何使用記憶體的datatable表作為水晶報表的數據源。 1、定義一個DataTable數據表,並添加一些數據(作為自定義的數據源)。 代碼如下:
     private DataTable GetCustomDataTable()
        {
            DataTable dt = new System.Data.DataTable();
            dt.Columns.Add("id", typeof(string));
            dt.Columns.Add("userName", typeof(string));
            dt.Rows.Add("430400","tjm");
            dt.Rows.Add("430401", "lw");
            dt.Rows.Add("430402", "tj");
            return dt;
        }
2、定義好數據源之後,我們就需要根據我們自定的數據源建立一個報表模板。通過前面兩步我們都知道,報表模板的設計都需要數據源的欄位的,所以我們的添加一個dataset數據集來製作報表模板。 3、然後在這個數據集上定義一個虛擬的表頭就行了,這個虛擬的表頭必須和記憶體中定義的數據源表頭是一致的,方便我們進行報表的設計。 4、然後在報表的設計器中,添加我們建立的自定義數據源,併進行設計。   5、然後在Form_load中為報表綁定數據自定義的數據源
     private void Form1_Load(object sender, EventArgs e)
        {
            CrystalReport2 cr = new CrystalReport2();
            cr.SetDataSource(GetCustomDataTable());//數據源的綁定(DataTable類型)
            this.crystalReportViewer1.ReportSource = cr;
        }
6、點擊運行,結果就是我們自己定義的數據表中的數據。   總結

希望自己寫的這個教程,對剛接觸的水晶報表的同學有一些幫助。其中可能會有一些錯誤的地方,歡迎各位指正。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 轉自:http://blog.sina.com.cn/s/blog_70dd16910100zab6.html u-boot-2010.09/arch/powerpc/cpu/mpc86xx/start.S文件中的創建GOT段的代碼片段如下: // Set up GOT: Global Offset
  • 1.SMPlayer播放器 對於使用ubuntu系統的同學,雖然系統初始就帶有vedio播放器,但是這裡強烈推薦SMPlayer,直接在Ubuntu Software Center中就可以免費下載安裝,這個播放器功能非常強大,完美得滿足了在ubuntu系統下追劇看電影的要求,其程式界面如下: 2.亂
  • 大家好,今天小文給大家介紹的是義文緊固系統最新推出的一個新品牌“VLIER”。 VLIER有著超過半個世紀以上悠久歷史, VLIER的彈簧柱塞、水平調節元件和機械部件始終堅持打造最權威的行業應用,作為行業的領導者,一貫提供優質的價值、品質、服務。 VLIER是精密彈簧載入裝置和平衡調節墊設計製造專家
  • 這是最新番茄花園win7系統64位快速穩定版 V2016年2月,該系統由系統媽整理和上傳,系統具有更安全、更穩定、更人性化等特點。集成最常用的裝機軟體,集成最全面的硬體驅動,精心挑選的系統維護工具,加上番茄花園獨有人性化的設計。是電腦城、個人、公司快速裝機之首選!擁有此系統,您也可以輕鬆成為裝機高手
  • 1.1 rsync伺服器端配置 1.1.1 查看伺服器端rsync版本 1.1.2 創建配置文件 預設安裝好rsync程式後,並不會自動創建rsync的主配置文件,需要手工來創建,其主配置文件為“/etc/rsyncd.conf”,創建該文件 並插入如下內容: 1 #Rsync server 2 #
  • 一.創建型模式 模式名稱 定 義 使用頻率 學習難度 簡單工廠模式 (Simple Factory Pattern) 定義一個工廠類,它可以根據參數的不同返回不同類的實例,被創建的實例通常都具有共同的父類。 ★★☆☆☆ ★★★☆☆ 工廠方法模式 (Factory Method Pattern) 定義
  • 單例模式三種寫法: 第一種最簡單,但沒有考慮線程安全,在多線程時可能會出問題 public class Singleton { private static Singleton _instance = null; private Singleton(){} public static Singlet
  • MVC中HtmlHelper用法大全參考 解析MVC中HtmlHelper控制項7個大類中各個控制項的主要使用方法(1) 2012-02-27 16:25 HtmlHelper類在命令System.Web.Mvc.Html之中,主要由7個靜態類組成,它們分別是FormExtensions類,InputE
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...