轉帖|其它|編輯:郝浩|2010-12-21 15:09:56.000|閱讀 902 次
概述:本文的目標是通過MultiRow快速開發一個簡單的WinForm數據庫應用 - "員工信息管理系統"。 其中會使用到MulitRow提供的部分內置的Cell類型、MultiRow模板創建、以及MulitRow的打印功能。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
本文的目標是通過MultiRow快速開發一個簡單的WinForm數據庫應用 - "員工信息管理系統"。 其中會使用到MulitRow提供的部分內置的Cell類型、MultiRow模板創建、以及MulitRow的打印功能。
準備數據庫
首先,我們使用Microsoft Access 2007數據庫,創建一個數據表,命名為Employees,創建一些字段,給每個字段指定數據類型。請看下圖:
字段數據類型和名字確定后,切換到DataSheet View模式下,開始填入數據,如下圖所示:
傳統的表格控件在展示數據表當中的一條記錄時,大部分都是將一條記錄展示在表格控件當中獨立的一行里,每行當中的列對應數據表當中的一列,比如.net framework 提供的DataGridView控件,它做數據綁定綁定之后,如下圖所示:
上面創建的數據庫有19個字段,如果使用DataGridView展示,應用程序將需要更寬的距離才能完全展示一條記錄。這樣導致可讀性大打折扣。因此,對于一條數據表記錄可以自由布局,增強可讀性和美觀性是表格類控件一直前進的方向之一。
而使用MulitRow,你可以隨心所欲地在MulitRow的一個Row上面安排每個Cell的排列位置,甚至可以讓多個Cell疊加,讓每個Cell來展示數據表記錄當中的每個數據域。這時候你需要做的是打開Visual Studio,創建一個Windows Forms Application工程,然后添加一個MultiRow的模板(Template),至于如何添加模板和使用MulitRow提供的集成模板設計器,可以參考之前的三篇文章。
編輯模板
在創建模板的時候,我們需要根據數據庫當中的不同字段類型選擇不同的Cell類型來展示數據。
本例中,我只使用了9種Cell類型,根據自己的喜好擺出來下面的布局形式:
所有的Cell都排布在模板的Row區域當中,這個Row在模板加載到GcMultiRow控件之后,會根據數據記錄條數發生迭代。另外,我根據不同的數據域類型,選擇了不同的Cell類型展示數據,其中:
當Cell的位置擺放好之后,需要將每個數據Cell跟數據表當中的字段關聯起來,讓這個Cell在運行起來之后顯示特定的數據列當中的值。可以使用MultiRow模板設計器提供的TemplateProperty管理器或者屬性管理器來設置每個數據Cell的DataField屬性,將其和數據表的列名相關聯,這樣模板加載之后,每個數據Cell就可以顯示數據表當中對應的列了。
如果覺得模板的樣式過于單調,可以需要調節Template當中的相關Style屬性來設置外觀,可以參考MulitRow幫助文檔中"如何設置Style和皮膚"章節。我設計了一個樣式,如下圖所示:
應用模板
完成上面工作后,一個基本的模板就設計好了。剩下的工作就是將Template應用到一個GcMultiRow控件。我們在Form上添加一個GcMultiRow控件,然后將設計好的Template設置給他的Template屬性,并且給GcMultiRow控件添加數據源,以及設置一些屬性。
完成應用程序
最后,可以在Form當中添加兩個ToolStrip,用來展示導航和打印功能。之后運行工程,效果如下:
可以點擊Form底部的按鈕來切換上一個和下一個記錄,通過Form頂部的按鈕來預覽打印效果。
值得一提的是,上面應用程序僅僅顯示了GcMultiRow控件當中的一個Row,也就是數據表當中的一條記錄,我將Form的大小調節的剛好跟一個Row的大小相當,因此每次可以瀏覽一個Row,通過點擊導航條上面的按鈕,可以使用GcMultiRow提供的按行滾動的效果,看起來就像是一條一條在瀏覽。這時候,如果你將Form高度拉大,你會看到多個Row存在于Form之上,就像一個一個卡片一樣,請看下圖:
你也可以保持Form上面不管如何放縮都保持只有一個Row,這個需要寫幾行代碼,在這里我就不演示了,如果感興趣,可以訪問GCDN的MulitRow專區,我們可以一起討論一些細節的問題。
預覽和打印
MultiRow也提供了打印功能,以及各種打印模式和設置,下面是使用SingleRow打印模式,保證每頁只打印一條記錄,打印預覽效果如下所示:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:博客轉載