引言

Microsoft .NET是一项比较成熟的技术开发框架,很多的商业应用都是基于.NET开发的,在这些商业应用中,作为数据展示和录入的表格控件,是不可或缺的。大多数的表格控件在数据展示上都是比较规整的,即单行单列的展示数据。然而,实际的商业应用中需要一些多元化的数据展现方式,MultiRow就是这样一款能够自由展现数据的基于.NET平台的表格控件。

MultiRow框架示意图

MultiRow的主框架如下图所示。首先,通过集成设计器设计适合于业务需求的模板,并把模板应用于MulitRow控件,之后把MultiRow绑定到相关的数据源(或者直接使用MultiRow的非绑定模式),这样数据源的每一条数据记录将会根据所设计的模板进行呈现。由于MultiRow支持.NET标准Windows窗体数据绑定模型,因此,大多数情况下只需设置DataSource属性即可。

 

MultiRow中文版技术白皮书_第1张图片

 

 

 

 

MultiRow的设计思路 支持自由布局的架构设计

传统的表格类控件的布局都是严格的行和列结构,通过合并单元格完成特殊布局的需要。为了实现自由布局的数据展示方式,MultiRow在架构设计时打破了常用表格控件的行列概念,可以任意操作单元格的位置和大小,可以让上下两个单元格自由叠加,也可以设计个性化的列头和列脚,提供自动对齐工具以保证版面布局的美观。

MultiRow中文版技术白皮书_第2张图片

在自由布局的基础上,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的三种典型应用场景

具有复杂布局的数据表格

数据源的每一条记录根据模板上的设置进行展示,同时,用户也可以做选择,编辑,及更新数据等操作。

MultiRow中文版技术白皮书_第3张图片 传统矩阵式表格的展示和操作

规整的展示数据,用户可以对数据进行排序,过滤等各种操作。

MultiRow中文版技术白皮书_第4张图片

各类票据的设计开发

由于MultiRow采用了自由布局的设计思想,非常适合于中国样式发票类应用的设计和开发。通过我们提供的集成设计器,可以方便快速的设计出发票。另外,套打是发票中一个很常用的用例,MultiRow使用了.NET的打印机制,能够精确的实现套打功能。

MultiRow中文版技术白皮书_第5张图片