MultiRow中文版技術白皮書

引言

Microsoft .NET是一項比較成熟的技術開發框架,很多的商業應用都是基於.NET開發的,在這些商業應用中,作爲數據展示和錄入的表格控件,是不可或缺的。大多數的表格控件在數據展示上都是比較規整的,即單行單列的展示數據。然而,實際的商業應用中需要一些多元化的數據展現方式,MultiRow就是這樣一款能夠自由展現數據的基於.NET平臺的表格控件。

MultiRow框架示意圖

MultiRow的主框架如下圖所示。首先,通過集成設計器設計適合於業務需求的模板,並把模板應用於MulitRow控件,之後把MultiRow綁定到相關的數據源(或者直接使用MultiRow的非綁定模式),這樣數據源的每一條數據記錄將會根據所設計的模板進行呈現。由於MultiRow支持.NET標準Windows窗體數據綁定模型,因此,大多數情況下只需設置DataSource屬性即可。

image

MultiRow的設計思路

支持自由佈局的架構設計

傳統的表格類控件的佈局都是嚴格的行和列結構,通過合併單元格完成特殊佈局的需要。爲了實現自由佈局的數據展示方式,MultiRow在架構設計時打破了常用表格控件的行列概念,可以任意操作單元格的位置和大小,可以讓上下兩個單元格自由疊加,也可以設計個性化的列頭和列腳,提供自動對齊工具以保證版面佈局的美觀。

clip_image002

在自由佈局的基礎上,MultiRow中增加了模板(Template)的概念。模板主要存儲了一個表格的佈局結構以及外觀樣式,用戶在設計完模板之後,將其加載到MultiRow上,數據源的數據將會通過模板逐行的展現出來。這樣的設計思路滿足了設計和開發分離的用戶需求,負責設計表格的美工人員只需要設計一個模板,在模板中設置好表格的所有佈局和外觀,然後交予應用程序開發人員進行具體功能的開發。同時,設計好的模板可以被保存爲XML格式的文件,方便了開發者之間的交流和共享。

保持開放性,支持第三方控件的嵌入

同時,MultiRow的單元格設計採用開放的體系結構,支持第三方控件的嵌入,保持了良好的擴展性和對於特殊應用需求的支持。如果用戶有其他的第三方廠商開發的.NET控件,並且希望把它作爲MultiRow的一個單元格使用,只有實現相關的接口就可以做到第三方控件的嵌入。同時,MultiRow缺省內置了大約二十多種單元格類型,這些單元格大部分都是嵌入了Microsoft .NET的標準控件,可以滿足大多數應用程序的基本需求。

覆蓋表格控件的基本功能

MultiRow雖然採用了自由佈局的設計,但它同時支持表格控件的基本功能。MultiRow可以被很方便的設計成一個傳統的規整的Matrix樣式的表格,支持了數據綁定,非綁定,排序,過濾,校驗,凍結,多視圖顯示等。

在數據綁定方面,MultiRow支持三種模式:

  • .NET標準的數據綁定模型,任何實現了IList,IListSource,IBindingList和IBindingListView接口的實例都可以被綁定到MultiRow上,通常情況下,用戶只需要設置MultiRow的DataSource和DataMember屬性即可。
  • 非綁定模式,即在不綁定到數據源的情況下,可以很方便的操作和顯示數據。
  • 虛擬模式,虛擬模式是爲大型數據存儲區而設計的,僅當數據需要顯示的時候,由用戶來操作單元格的填充,編輯和刪除。

在數據表現方面,除提供了基本的諸如背景色等設置外,還提供了強大的漸變色能力,命名樣式能力,各種文字的排布,旋轉,拉伸,對齊等。

在數據校驗方面,MultiRow內置了十餘種校驗器,可以方便的滿足諸如值範圍校驗,值比較校驗,正則表達式校驗等,當校驗失敗時,可以以Tip,Icon,聲音等多種方式提示用戶,以便重新輸入正確的值。

重視易用性

爲了降低用戶的學習成本,MultiRow採用了和DataGridView相似的接口設計,對於曾經使用過Microsoft DataGridView或者熟悉DataGridView接口設計的開發人員,使用起來會更加的的方便快捷。

MultiRow提供了一個強大的設計器,這個設計器集成於Visual Studio裏,開發人員不需在多個工具之間切換,直接在Visual Studio裏完成設計與開發。MultiRow的設計器採用了和Windows Form Designer相同的設計方式,用戶通過鼠標拖拽就可以完成設計,基本不需要開發者編寫額外的代碼,提高開發效率,節約了開發的成本。

性能

MultiRow支持常見表格控件的基本功能。同時,得益於MultiRow的獨特設計,能夠達到百萬行數據的平滑滾動。行和單元格的虛擬機制更讓大數據量的內存消耗達到最低,讓最終用戶體驗不一樣的速度。

MultiRow的三種典型應用場景

具有複雜佈局的數據表格

數據源的每一條記錄根據模板上的設置進行展示,同時,用戶也可以做選擇,編輯,及更新數據等操作。

clip_image004

傳統矩陣式表格的展示和操作

規整的展示數據,用戶可以對數據進行排序,過濾等各種操作。

clip_image006

各類票據的設計開發

由於MultiRow採用了自由佈局的設計思想,非常適合於中國樣式發票類應用的設計和開發。通過我們提供的集成設計器,可以方便快速的設計出發票。另外,套打是發票中一個很常用的用例,MultiRow使用了.NET的打印機制,能夠精確的實現套打功能。

clip_image008