1. 程式人生 > >機房收費系統合作版——VS2013自帶報表

機房收費系統合作版——VS2013自帶報表

        機房收費系統已經敲過兩次了,每次敲的感覺都不一樣,收穫也不一樣。

        第一次敲機房,主要是克服對程式碼的恐懼,只要將功能實現就行;而第二次,主要就是加入前期對整個系統的分析、設計,然後在實踐中理解三層架構以及對設計模式的應用;現在是第三次敲,主要是鍛鍊我們團隊合作的能力,大家的討論研究,合作交流等。由此可見,我們走的每一步都很重要,都是必不可少的。

         今天我們來說一說我們的vb.net中自帶的報表。

一、報表的製作

   1,我們右擊U層所在資料夾新增“新建項”。

        

   2,在彈出的的新增新建項視窗中找到“reporting”,在右面的內容視窗中選中“報表”選項,設定報表的名稱。

     

3,點選確定後,顯示如下介面。我們可以通過“報表資料”內的選項設定一些內建欄位、引數等資訊。如果介面不顯示“報表資料”視窗, 可以通過“檢視”——“報表資料(最後一項)”或者“Ctrl+Alt+D”來開啟資料視窗。


4,在上圖的“報表資料”視窗中選擇“新建”——“資料集”,進入下圖介面。選中“資料庫”,下一步,,選中“資料集”,進入“資料來源設定嚮導”視窗。

5,點選“新建連線”,在“新增連線”對話視窗中設定伺服器名、使用者名稱、密碼、連線到的資料庫等資訊,然後點選“測試連線”,出現“測試連線成功”,然後確定,一直下一步。


6,給資料集新增需要應用的資料庫物件,表、檢視、儲存過程等等。這裡只用到了表,然後確定。

       

7,新增完成資料庫物件後新增的相應資訊顯示如下介面。可以修改資料集名稱。

     

8,設定完以上步驟後即可在“報表資料”視窗中看到新建的資料集資訊了。


9,接下來就是設計報表格式了。開啟左側的工具箱,可以看到圖示的“報表項”,文字框、表、矩陣、列表等等。如果沒有工具性選項卡,可以“Ctrl+Alt+X”快捷開啟。文字框用於顯示文字、傳遞引數。表和矩陣則可以用來存放資料。不同的是表是針對於“列數固定、行數可變的資料”設計的,而矩形則是針對於“列數與行數均可變”的聚合資料設計的。

                

10,根據功能要求,設計完的報表介面如圖所示,因此這裡需要用到的工具是“表”。從表中可以看出,我們最後需要列印的是單條記錄的資訊,而機房中我們得到的都是整張表的資訊,二者的區別在於:在報表繫結資料庫的時候繫結的是指定的記錄還是整張表。


11,首先在工具箱中選中工具“表”拖動到報表視窗中。由上圖我們可以看到,不同於以前報表的是,格式發生了變化,其實很簡單,只需合併單元格就可以了。例如,標題欄,選中標題欄所在行的所有列,滑鼠右擊,選中“合併單元格”就OK啦.

在需要顯示文字內容的列中直接雙擊輸入資訊即可,需要載入資料庫資訊的列點選右上角的資料集小圖示即可自動載入相應的資料集資訊,然後依次選中相應的資訊選項即可。到此,報表就算是設計完了。接下來就是列印了。

  

二、報表的應用

1,首先在專案中新建一個windows窗體,在左側的工具箱中“報表”資料夾下找到“ReportViewer”選中並將其拖放到窗體上,調整合適的大小與位置。


2,讓我們看看我們的資料容器

               當建立dataset時,系統會自動給我們新增一個tb_checkTableAdapter對資料操作的類。並且有兩個方法,Fill() 和GetData()方法。

                右擊配置,會看到系統自動生成的查詢的Sql語句,並且可以通過查詢分析器直接從資料庫中查詢出來。我們也可以根據使用者顯示的需求更改SQl語句和新增引數傳遞,來查詢自己想要顯示的內容。

                                    

                                    

                     窗體中自動生成的程式碼。

3,如何按日期查詢。

               

              如果我們把TableAdapter中sql語句改為 (查詢後系統把資料放到DataTable中,具體程式碼根據個人情況而定)

  1. SELECT   UserID, RechargeMoney, ReturnMoney, IncomeMoney, CheckDate  
  2. FROM      tb_Check  
  3. WHERE   (CheckDate BETWEEN @DateTimeOne AND @DateLTimeTwo)  

              在載入時候自動載入的方法程式碼。

               

              我們可以在窗體上新增我們要傳遞到資料庫的控制元件引數值,在GetData方法中會自為方法新增兩個引數。同時改變觸發事件,可以是單擊某個按鈕來執行顯示和重新整理報表。

             顯示從介面傳遞的兩個日期引數。

 

下一步是選擇或是可以更改執行的方法名。

               

  總之,以上是一種方法,我們也可以先建資料容器DataSet,或是先新增reportViewer控制元件,都可以,系統都會給出相應的提示。還可以自己通過程式碼建立DataSet,通過三層來呼叫資料後,再繫結到reportViewer上。

       這裡只是介紹了一些基本的簡單應用,其他一些引數的新增,美觀的設計等,就不在這裡一一贅述,它的強大功能還需要我們繼續探索.