多功能控件

关键词: 示例 控件 环境 运行

多功能控件(精选六篇)

多功能控件 篇1

运行环境: .Netframework4.0, Windows2003/Windows7/Acc ess 2003或更高。

运行示例: 解压缩, 在上述环境中打开示例项目, 编译、运行即可。

1 AspxPivotGrid 基础知识

AspxPivotGrid是DXperience开发控件中的一个功能庞大的数据分析和统计控件, 在应对各种名目繁多的数据透视、数据汇总、数据分析方面, 有非常好的表现。其最主要的特点表现为如下几点:

首先通过实际界面来认识一下ASPxPivotGrid控件, 对它有一个直观的了解, 也好为后面的讲述做一个铺垫。其运行界面如图1所示。

这里做一个说明:

(1) 候选字段栏: 这里列出数据源中所有可用于进行统计分析的字段, 候选区内的字段, 根据需要可在任何时候拖动到数据列区域或数据行区域, 数据区内的数据会随时跟着变化。

(2) 数据列区域: 统计分析表格的列字段配置区域, 用于构成表格中的列记录 (纵向显示的数据)。

(3) 数据行区域: 统计分析表格的行字段配置区域, 用于构成表格中的行记录 (横向显示的数据)。

注意: 通过标题按钮可以对字段值进行排序、本地过滤等操作。

(4) 数据区域: 统计分析表格的待统计汇总的字段配置区域, 这里列出的字段, 要求为可进行统计分析数据类型, 通常为数值型数据或其他可用于统计的数据类型

(5) 记录列数据汇总: 用于汇总每列的数据汇总;

(6) 记录行数据汇总: 用于汇总每行各个数据的汇总;

(7) 导出工具栏 : 非ASPxpivotGrid控件自带功能 , 需要另外处理, 但导出数据功能是本控件很重要的一个功能。

(8) 查询条件: 用于设定待统计数据的筛选范围。

通过这个 图 , 可以了解 到从这个 交叉表可 以了解到PivotGridControl控件具有以下特点:

1) 可定制的报表

终端用户能够定制PivotGridControl的字段。在字段标题上点击右键弹出字段列表框, 通过鼠标拖拽增加或减少行、列、数据区域的字段, 改变交叉报表的分析方式。

2) 树形结构的字段值

图1的行区域有“部门、姓名”2个字段, 部门是姓名的上级字段, 在部门的字段值上显示了“展开/折叠按钮”。例如图3折叠字段值“儿科”后, 数据区域的单元格将以“儿科”小计行的方式显示。

如果有2个以上的行 (列) 字段, 除了最后一级, 其他字段值都可以像树形节点一样展开/折叠。

3) 本地过滤

界面上显示的字段标题具有本地过滤的功能。点击字段标题上的过滤按钮, 可以弹出字段值列表。筛选字段值后, 交叉表以此为条件过滤数据源中的数据后再进行汇总。当行、列字 段值较多时, 终端用户通过本地过滤减少行列数, 只统计出当前关注的数据。

通过上面这些讲述, 展示了AspxPivotGrid控件的一些特点, 在有了一些初步的认识的基础上, 来看看如何使用这个控件来设计软件。

2 AspxPivotGrid 基本用法

要使用AspxPivotGrid控件, 首先要具有必要的开发环境 (请见文件头部的介绍)。新建一个aspxform, 然后在工具栏中的data &analytics分组中找到AspxPivotGrid控件, 把它拖到Webform上, 然后点该控件右上角的设计标签, 如图2中的标识1所示:

之后, 在图2中的标识2所示位置, 指定控件所用的数据源, 这里以一个Objectdatasource为例, 设定为ods;

接下来, 设置ASPxPivotGrid的字段。在图2标识3的位置, 点击Fields , 会看到接下来的界面, 如图3所示。

图3标识1的位置, 单击一下即可添加一个字段。

图3标识2的位置, 设定字段在ASPxPivotGrid的位置, 可选择的包括列 (ColumnArea), 行 (RowArea), 过滤字段 (FilterArea), 数据 (DataArea), 根据需要选择即可;

图3标识3的位置, 设定本字段属于哪个分组, 根据需要录入分组名称。若没有分组, 可为空。

图3标识4的位置, 录入字段名称 (对应数据库中的哪个字段)。请留意此处必须与数据库字段保持完全一致。至于ID, 请设置一个完全不同于其他控件ID的值 , 通常设置为“Field” +字段名称

图3标识5的位置, 录入字段的显示标题。中文字符, 这是最终用户看到的界面名称

图3标识6的位置, 是当需要把该字段作为一个计算字段的时候需要设置的。即当前字段以数据库字段为基础进行数据计算, 但并不存在于数据库的时候方才需要如此设置。对应的还需要设置UnboundExpression、UnbountType等。

图3中的标识位置数据都设置完成以后, 就完成了一个字段的添加。接下来依次添加需要的所有字段即可。所有字段都 添加完成后, 点击ok按钮, 就回到之前的设计界面。

查看Webform对应的aspx文件源码, 会看到下面这样的代码, 请看图4。

图 4 中的代码是很有规律的。 上面写了那么多步骤做了那么多工作, 无非就是生成了这些代码, 增加了一些Fields, 并根据需要设定了每个Field的一些属性。所以可能有人不免要想: 是不是可以用代码完成上面这些工作呢? 答案当然是肯定的。后面会给出方法。

查阅DevExpress的在线文档, 不难发现ASPxPivotGrid控件实现 了一个把数据导出的功能 , 其中提供了一个组 件 : ASPxPivotGridExporter, 这就是ASPxPivotGrid控件导出数据的关键所在, 它提供了如下几个方法:

在工具栏中找到这个组件, 把它拖到aspxform中去, 然后增加一个ASPxCombobox和两个按钮, 如图5所示。

双击保存按钮, 在Click事件中写下如下的代码:

这样便实 现了根据 最终用户 选择的文 件类型 , 导出ASPxpivotGrid数据到本地文件的功能。这样就极大方便了最终用户的使用, 为用户进一步组织数据进行其他处理提供了便利。

3 AspxPivotGrid 高级用法

ASPxPivotGrid是功能强大的, 但设置字段的过程也是极其繁琐枯燥的。通过跟踪分析可以看出, 设计器中的过程其实只是在aspx文件中增加了fields一节, 设置了每个field的相关属性。那么, 自然可以通过代码来实现相同的工作, 从而一劳永逸, 避免每次都去手工在设计器中设置字段了。

经比对, 发现对于每个field, 都需要设置如下几个属性:

Area : 可选择的项目 : RowArea, ColumnArea, DataArea, FilterArea; 含义为: 字段所处的区域。

FieldName: 字段名称, 对应数据库的字段名;

Caption: 字段标题;

AreaIndex: 字段在当前区域的序号 (第几位显示);

ID: 当前字段的标识符号;

FormatType: 格式化类型; 数值、日期、字符串等;

FormatString: 格式化字符串;

有了这几个基本属性, 就可以用代码来绑定数据库的字段到ASPxpivotGrid控件中了。于是不难写出下面这样的代码:

这样就已经完成了绑定数据字段到ASPxpivotGrid控件的工作。接下来看看如何设置计算列到控件中去。

设置计算列, 就不得不留意如下几个属性:

UnboundFieldName: 未绑定字段名称;

UnboundType: 未绑定字 段的数据 类型 , 包括字符 型 , object、日期型、数值型。

UnboundExpression: 计算列的计算表达式, 可用的表达式种类很多, 请大家查阅Devexpress的在线文档

TopValueShowOthers: 是否显示其他数据;

RunningTotal: 是否统计;

TopValueType: 统计类别 , 包括最大值、最小值、 求和、平均值等等;

Caption: 计算列的标题;

Area: 计算列所 处的位置 : 可选择的 项目 : RowArea, ColumnArea, DataArea, FilterArea;

ID: 当前字段的标识符号;

FormatType: 格式化类型; 数值、日期、字符串等;

FormatString: 格式化字符串;

有了这几个属性, 自然能写出下面这样的代码, 用于自动添加计算列到ASPxpivotGrid控件中去。

有了这些代码, 日后需要用到ASPxpivotGrid控件来统计分析数据的时候, 只需要简单地写下两行代码即可:

完整的代码和界面, 请读者朋友们查看本文的示例项目。

在实际使用过程中发现, ASPxpivotGrid控件在面对大批量数据进行统计分析的时候, 页面打开会比较慢, 甚至会失去响应, 这便有了一个问题: 如何提高它的运行效率呢?

4 提高 AspxPivotGrid 运行效率

ASPxPivotGrid组件是一个基于ASP.NET平台下的全面的数据分析、数据挖掘和可视化报表的解决方案。 它的出现不仅可以为新的解决方案去除数据分析方面的种种缺陷, 也可以从根本上改善已有的大型数据分析软件在最终数据呈现上的不足, 从而让最终用户能更好获取和分析相关数据。那么如何进一步提高ASPxPivotGrid的性能, 对数据进行高效切分, 从而为客户提供一个非常直观的终端用户体验呢? 这里从两方面来说明问题。

(1) 选择一个合适的数据源

并不是所有的数据源都符合目标程序。如果每次访问的数据量在150,000以下的话, 最好使用SQLSever数据库, 如果数据量超过150,000行的话, 将考虑使用Analysis Services?即分析数据库, 否则运行速度会很慢。当然如果选择一个好的数据库服务器, 可以大于上面的数据, 反之如果使用xml或者MS Access数据存储格式就可能更少了。

那么如何选择一个合适的数据库呢? 首先, 需要估计一下数据量, PivotGrid每次发送请求的一个数据量。如果不知道实际的记录数, 可以根据列的成员特性推测出来。例如, 有7列: 产品种类 (50), 产品子类别 (1000), 产品 (50000), 国家 (10), 省 (400), 市 (10000), 顾客 (50000), 这里括号中的数字是对应成员特有的记录数。分析一下, 上面“产品种类、产品子类别、 国家、省和市”其实根本就没有提供新的度量数据, “产品种类”和“产品子类别 ”其实是包含在“产品” 中 , 而“国家,省和市”所产生的度量数据则体现在“顾客” 信息记录中。因此很快就能通过“产品” 和“顾客”的乘积得出记录数 (50 * 50000 = 2 500 000)。

(2) 性能优化以及对比

在选择了不同的数据库后, 又该怎么提高PivotGrid的性能呢?

当使用SQL Server作为PivotGrid的数据源的时候, 总体性能大概由加载数据的时间、计算的时间和数据绘制时间3部分组成。为了提高数据加载时间, 可以在数据服务器和Web服务器之间建立更好的连接。数据库服务器和Web服务器最好是使用同一台机器, 调整数据服务器, 以实现最佳的性能和缓存数据的检索。此外还可以在服务端优化查询语句, 比如" select Category, Product, Sales from Sales" 查询改为 " select Category, Product, sum ( Sales) from Sales group by Category, Product" .这样很大程度上能减少PivotGrid本身计算的时间。

当使用分析服务器作为数据源的时候, 对于每次请求是不存在重载和重新计算数据的。数据和计算结果都是作为缓存, 返回的仅仅是请求的那部分数据。尽管这样, 如果是小规模的查询那速度还是低于SQL Server, 但在大型数据集上将产生更好的效果。事实上, 如果没有使用Analysis Services的数据源, 对于上百万条的数据是很难得到满意结果的。

摘要:DevExpress的PivotGrid控件,无论是WinForm的XtraPivotGrid,还是WebForm的AspxPivotGrid都能够实现强大的多维分析功能,完全可以当成一个决策分析工具来使用,美中不足的就是没有关联到图形图表Chart。虽然有了分析的结果,但是没有图形图表更加直观地表达效果。介绍使用DevExpress控件增强AspxPivotGrid的一些使用心得。

多功能控件 篇2

1 VBA及PowerPoint中的ActiveX控件

VBA全称为Visual Basic for Applications,是基于Visual Basic for Windows发展而来的新一代标准宏语言,VBA提供了面向对象的程序设计方法,提供了相当完整的程序设计语言,使可编程应用软件得到完美的实现,它作为一种通用的宏语言适用于所有的Office应用程序。而ActiveX控件是在利用VBA进行面向对象设计时不可缺少的工具,它提供了诸如文本框、复选框、命令按钮、列表框等用于实现交互式功能的各种对象。这些控件集成在PowerPoint的控件工具箱里,通过菜单“视图—工具栏—控件工具箱”即可打开。在PowerPoint中结合控件工具箱,利用内嵌的Visual Basic编辑器编写代码,就能实现用于不同目的的交互式功能。

2 实例设计

2.1 填空题

启动PowerPoint后,新建一个演示文稿并打开控件工具箱。

2.1.1 题目的准备

第一,用文本框在演示文稿中输入填空题的题目,在需要填空的地方留好适当的空白。第二,从控件工具箱中选择“文本框”控件,然后到预留的空白处拖动鼠标绘制适当大小的矩形框。第三,右击文本框,选择“属性”命令,在弹出的属性对话框中设置各项的值:BackColor为背景色;BackStyle为背景显示模式;BorderColor为边框颜色;BorderStyle为边框显示模式;Font为设置字体、字号和字形;ForeColor为前景色,也就是所输入文本的颜色;EnterKeyBehavior为分段;MultiLine为自动换行。本例放置了两个文本框控件,如图1所示。

2.1.2 VBA程序设计

右击第一个文本框,选择“查看代码”命令,将会打开代码编辑器窗口,如图2所示。

点击右上方“Change”后的下拉按钮,在弹出的下拉列表中选择“LostFocus”。这样做的目的是:当文本输入完成、鼠标离开这个文本框的时候,就会出现事先设置好的反馈信息,这样每填完一个空都能得到相应的提示信息。

右侧显示如下两行代码:

在两行代码中间插入如下代码:

说明:本例中第一个填空题的正确答案就是“路由器”,第二行和第四行代码实现的功能分别是答对后给的提示信息和答错后给的提示信息,制作中可以根据实际情况自行更改,“vbOKOnly”是指定弹出信息框的标题为“提示!”。第五行的功能是答错后自动清空输入的内容,以便重新作答。做第二个空时,只需复制上述代码粘贴到相应的位置,并把TextBox1都替换为TextBox2,“路由器”位置改为“交换机”(本例第二空答案是交换机)即可。如果有多个填空题,则依次改为TextBox3、TextBox4等,依此类推。

关闭代码编辑器,回到PowerPoint编辑窗口中并放映,鼠标点击第一个文本框并输入答案,当鼠标点击第二个文本框或者其他位置时,就会弹出相应的提示信息,点“确定”后就可进行下一步操作。

2.2 单项选择题和判断题

2.2.1 单项选择题的题目准备

首先用文本框输入题干,然后利用“控件工具箱”中的“选项按钮”,在幻灯片适当位置放4个单选按钮,以表示A、B、C、D 4个选项。右键单击第一个单选按钮,在弹出的菜单中选择“属性”命令,打开这个按钮的属性设置对话框。选中“Caption”右侧的内容,将其改为A选项的内容“交换机”(本例中A选项的内容就是“交换机”);“AutoSize”后改为“True”,这样会自动根据内容调整按钮的大小。在“BackStyle”右侧的下拉列表中选择“0-fmBackStyleTransparent”使按钮的背景透明,点击“Font”右侧的选择按钮,选择合适的字体和字号;“value”后改为“false”,即为未选中状态。其余3个按钮也用同样的方法添加选项内容,同时完成上述设置,也可由第一个选项复制3个后更改“Caption”的内容得到,这样做更快捷。结果如图3所示。

2.2.2 VBA程序设计

右键单击第一个选项“A交换机”,在弹出的菜单中选择“查看代码”命令,然后在打开的代码编辑窗口中输入如下代码:

这是选择了错误选项的反馈,其中第三行代码的功能是选错后将该选项重新设置为未选中状态。本例中ACD为错误选项,所以添加代码都一样。B答案为正确选项,为其添加如下代码:

这样一个单项选择题就制作完成了。

至于是非判断题,其实就是只有两个选项的单项选择题,那么每个题干后放两个单选按钮,分别代表“对”和“错”,然后按前面单选题中制作正确和错误选项的方法添加代码即可完成,这里就不赘述了。

2.3 多项选题

2.3.1 题目的准备

有了前面制作单项选择题的基础,多项选择题也就容易做了。首先用文本框制作题干,然后利用“控件工具箱”中的“复选框”按钮,在幻灯片编辑窗口中放一个复选项。属性的设置方法和前面单选题中的“选项按钮”完全一样。用同样的方法再放3个复选框,以代表A、B、C、D 4个选项,并分别进行设置

与单项选择题所不同的是,在作答时PowerPoint不知道操作者是否选择完毕,因此在选项下方加上一个“命令按钮”来让操作者确定选择完毕,此时再给出判断结果进行交互。设计结果如图4所示。

2.3.2 VBA程序设计

因为A、B、C、D 4个选项无需判断,所以不用添加代码,只需给命令按钮添加代码。

右键单击“判断”按钮,在弹出的菜单中选择“查看代码”命令,然后在打开的代码编辑窗口中输入如下代码:

至此,多选题就设计完成,关闭代码编辑器,回到Power-Point中就可播放预览了。有了前面填空题和单选题的了解,应该能够看懂这段代码,正确答案是A和B。如果是选项有变动,只要改变If语句中每个复选框的值就可以了,正确选项为True,错误选项为False。

此外,我们所制作的交互练习往往会让学生学生机上进行操作,所以,制作完成后,应将PowerPoint保存成PPS格式文件,这样,学生双击文件即可运行并进行答题操作,以避免学生对试题进行编辑。

3 结语

交互式功能的运用在课件制作中具有重要意义。一个具有与教师或学生交互响应的课件或程序,一方面反映了其功能的友好性和灵活性,另一方面也是教学理念的体现。运用PowerPoint的控件,并结合VBA开发环境,可以实现的交互功能还很多,希望此文能起到抛砖引玉的作用,帮助大家用好PowerPoint这个软件。

摘要:在教学领域中,PowerPoint作为课件制作工具被广泛地采用,深受广大教师和开发人员欢迎,它不但能轻松胜任制作演示型课件,还能实现如选择题、填空题和判断题等更深一层的交互功能。以填空题、单项选择题、判断题和多项选择题的制作为例,介绍了利用该软件提供的ActiveX控件,并结合VBA知识,为课件设计出更多符合教学实情的交互式功能。

关键词:PowerPoint课件,交互功能,控件,VBA语言

参考文献

[1]陈魁.PPT演义:100%幻灯片设计密码[M].电子工业出版社,2011.

[2]范利利,等.PPT课件中基于VBA的文本交互的实现[J].中国教育信息化.2010(16):67-69.

[3]林何.使用控件在PowerPoint课件制作中实现交互功能[J].实验科学与技术.2007(2):62-64.

[4]由孙方.《PowerPoint让教学更精彩》[M].电子工业出版社,2011.

[5]刘庆全,时道波.《多媒体课件制作案例教程(基于Pow-erPoint平台)》[M].清华大学出版社,2012.

[6]李永.《多媒体课件制作入门与提高(经典清华版)》[M].清华大学出版社,2011.

多功能控件 篇3

关键词:验证,派生,文本框,过程

1、引言

在实际操作中,常需要去验证用户向文本框输入的字符数据是否满足特定的字串格式和条件,所以如何去验证Text控件中的数据是一项重要的课题。本文并非通过实现IExtenderProvider接口建立扩充性提供组件[1],对TextBox提供扩充属性和添加验证事件过程达到验证目的,而是通过建立TextBox派生类控件,达到控件既具有TextBox特性,又有自动验证的功能。

2、基本思想

在类库中添加一个类,该类继承于TextBox。在建立派生类之前,应该规划出派生类应该具有的验证的最一般的属性和方法,一般地讲,应该有:㈠标识文本错误时的错误消息属性,㈡标识文本应该具有的格式属性,㈢标识控件错误和位置的对象属性,㈣验证数据是否符合格式属性等其它属性的判定方法,㈤重写验证阶段可自动执行的OnValidating方法。这样该类本身就有一定验证功能。当我们需要更强的验证功能时,就可以在此类的基础上再进行派生,添加新的验证特性,重写㈣对应验证功能的判定方法。

3、设计与实现

以下通过一个实例说明实现的步骤,示例生成一个TextBox的派生类控件VText,该组件有属性:ErrM (错误消息) 、VPt (验证正则表达式) 与Errp (ErrorProvider对象的引用) ,有方法:IsValid (验证判定) 与OnValidating (重写基类的方法) 。然后通过VText生成派生MNVText,该类中建立最大和最小值的属性(min, max),重载IsValid。

(1)新建一个库类项目,命名为CLb,根命名空间也为CLb;添加一个类,命名为VText,添加相应引用,并在VText.vb的代码开头处导入相应的命名空间。

(2)添加继承语句与相应的属性变量如下:

(3)在VText中建立相应的属性过程,以下仅给出mErrM对应的属性过程。

(4)建立判断文本属性Text是不是符合正则表达式m VP的函数IsValid,符合时返回True,但若没有规定字符格式那么意味的没有要求串格式,这时也返回True。注意应使用Overridable允许子类重写。

(5)在VText中重写基类Textbox的OnValidating方法,OnValidating是基类控件在验证阶段自动执行的Protected方法,重写的OnValidating就可以对VText的Validating事件进行处理。

(6) 建立VText的派生类MNVText,扩充VText的验证功能。在类库CLb,添加名为MNVText的类,并在MNVText.vb的代码开头处导入相应的命名空间,添加继承语句与相应的属性变量如下:

(7)对MNVText建立相应的属性过程如下:仅给出mmin对应的属性过程min。该属性过程能确保用户输入符合vp对应的格式,当输入串不是整数格式时,属性值会自动清空。

(8)重写IsValid函数。当Text属性符合的字串符合mVP正则表达式,并具Text对应的整数在min与max之间时,返回True。

(9)对项目CLb执行生成命令,生成CLb.dll。

4、扩充性提供者的使用

CLb.dll生成之后,打开"自定义工具箱"对话框,在.NET Framework组件选项卡上单击"浏览"按钮,添加CLb.dll,即在工具箱出现VText和MNVText控件。使用控件VText控件时应该在属性窗口中设置ErrM、VPt与Errp属性,VPt是对文本格式要求的正则表达式,例如电话格式正则表达式为"^[0-9]{4}-[0-9]{78}$",不超过8位的整数格式表达式为"^-?[1,2,3]{1}[0-9]{1, 7}$",Errp是根据要求对应的出错消息,Errp是一个ErrorProvider对象的引用;MNVText控件应该设置除以上三个继承的属性外, 还有最大值max和最小值min属性。当不设置Errp和VPt时不进行验证,而当不设置max时没有大于最大值验证,同样不设置min没有小于最小值的验证。

5、结语

利用继承的方法,实现具有验证功能的TextBox派生类,可将验证属性、验证过程与验证消息综合到一个控件中,使验证更易实现和有更好的灵活性。为了叙述方便简洁,在定义MNVTex时使用了vp正则表达式字串模板变量,在实际中可以与VPt一致,在min和max属性过程的Set段上加上If Me.VPt=Nothing Then Exit Property,可以确保VPt的设置先于min和max,然后就可对min和max格式检验

参考文献

[1].王昌厚, VB.NET中自定义的验证组件的设计与实现电脑开发与应用2006, 19 (11) :39-40

[2].李崴, Visual Basic.Net编程宝典[M], 北京:电子工业出版社, 2005:368~384

多功能控件 篇4

假定已具备有适当的开发环境 (具体请看上面的开发环境要求)。新建一个项目, 新建一个WebForm窗体, 然后打开工具栏, 找到ASPxGridview控件, 把它拖拉到WebForm窗体上, 如图1所示。

这里, 需要对该控件的属性进行一系列的设置, 包括数据源、关键字段 (KeyField)、是否分页、是否分组、分组字 段名称、分组类型、是否允许拖动表格列等200多个属性。设置了这么多属性以后, 重头戏来了: 设置表格中的数据列, 也就是设置一下这个表格中显示哪些数据, 用什么方式来展示和编辑。

首先, 点击表格右上角的小箭头 (图2中的标记1所示位置), 然后点击Columns…… (图2中的标记2所示位置), 即可看到图3所示界面了。

这里需要添加数据列到表格控件中。做法是:

(1)点击图3中1所示位置, 弹出菜单, 列出可供选择的表格列类型, 有16种内置类 别可以选 择。这里 以勾选框 (Check Column) 为例 , 点击之后 , 菜单消失 , 右侧出现图3中所示界面。

(2)点击数据下面的FieldName一栏, 这里录入的是数据库表的字段名称, 即你需要显示编辑的字段名。录入示例中的字段isUserVisible; (图3所示3位置)。

(3)点击外观中的Caption一栏, 这里录入字段isUserVisible的表头显示文字, 录入“是否可见”, 如图3所示4位置。

(4)之后 , 设置表格列的编辑控件的属性 , 这里用的是CheckColumn, 故而它的编辑控件为勾选框 , 对应的值是布尔型, 只要简单设置为true或false即可。若是其他类型, 则需要设置更多的属性。

有了这么几个步骤, 设置好了一个字段。以此类推, 可以给表格控件增加所有需要的字段。

倘若一个数据表有几十个字段, 这么一番设置下来, 真的很繁琐。枯燥无趣的工作也很容易出错。怎么做呢? 尝试用代码来自动配置这些吧。

仔细观察在上述步骤以后设计器生成的代码如下:

不难发现, 无非是根据不同的表格列类别配置了不同的参数而已。那么不妨尝试用代码来自动生成这些配置, 这样就免去每次都这么辛苦了。

首先, 要实现这样的要求, 需要把每张表的字段配置信息收集一下, 于是设计这样的一张表, 来存放数据库中用到的所有表的字段信息。表格的结构如表1所示。

有了这样一张表, 就可以在代码中来动态配置ASPxGridview了。

第一步: 取得配置表字段信息。

#region取得指定的配置表数据;

第二步, 循环获取每个字段, 然后根据不同的配置信息来增加表格列到ASPxGridview中去。代码如下:

而对于常规的、内置的表格列类型, 需要做如下的设置:

这样循环设置完所有的表字段以后, 表格就可以完全正确显示 所有的表 格列了。 再看生成 的aspx文件中 , ASPxgridview控件的代码就只剩下这样简单的两行字符了:

此时, 若要完美使用ASPxgridview控件的功能, 还需要对该控件的编辑模式做一些设置, 简单说, 就是对在配置中设置为ASPxComboblx、ASPxLookup等查询, 参照小表的字段表格列再做进一步的设置

方法是在ASPxGridview控件的CellEditorInitialize方法中对这些特别的字段表格列的编辑控件再做一些设置, 比如需要增加哪些选择项目、或者读取哪个查询表来提供给操作者进行选择等。

方法的逻辑是:

对于ASPxCombobox控件 , 根据设定 的查询列 表常量 ( 如 : 采购入库 ; 生产入库 ; 外借入库 ; 调拨入库 ; 其他入库) ,转换为一个字符串数组, 然后把每一个字符串增加到ASPxCombobox的items中去。

对于ASPxLookup控件, 根据设定的查询语句 (如select name, id from sysuers order by name), 创建一个Datatable对象, 取得查询语句检索得到的数据记录, 然后添加到ASPxLookup控件的Items中去。

至于其他类型的控件, 以此类推即可。

代码如下:

最后, 再来统一设置ASPxGridview控件的一些外观属性, 比如是否分页显示, 每页显示几条条数, 是否锁定左侧几列, 表格列的字符对齐方式等等, 凡是认为需要设置的属性, 均可以在这里统一设置。如下面的代码所示:

把上面所有这些方法都写到一个类里面, 比如命名为ZiyuDevHelper, 以后凡是用到ASPxGridview空间的地方 , 直接调用上面给出的方法就可以了。如下面的代码所示:

运行效果如图4, 图5所示。

下面是界面文件的代码, 如图6所示, 可以看到只是拉了控件到页面上去, 其他什么都没有做过。

后台代码只有简单的两行。

有了上面所写的这些方法, 开发用ASPxGridview来展示和编辑数据的页面, 就只需要写简单的两行代码 (上面代码中下划线部分) 就完全搞定了。整个开发时间缩短为短短的几分钟。

ASPxGridview是一个非常强大的数据呈现和编辑控件 , 善于钻研会发现它几乎可以满足任何的数据展示、编辑需求。而如何挖掘它隐藏的高级使用技巧, 则需要不断地总结、不断地分析。这里给出的这个方法也只是一个小技巧罢 了, 这里真诚希望与广大的读者朋友们一起探讨软件开发中的更多技巧能够引发读者朋友们的思路, 从而写出更多更好的开发文章来帮助更多的读者朋友一起进步。

参考文献

探讨列表类控件的应用 篇5

1 列表类控件

VB.NET是一款可以非常方便且容易地设计基于Windows操作系统和Web应用程序的软件开发工具。它提供了各种各样功能全面的控件。如可以进行文本编辑的Text Box、Rich Text Box控件,可以进行按钮应用的Button、Radio Button、Check Box控件,可以进行数据库程序设计的Data Grid View控件等等,还有这里要探讨的可以提供选项进行选择或删除的控件,如List Box、Combo Box控件等。

若要很好地利用这些控件实现相应功能,必须非常熟悉这些控件常用的属性、方法和事件。在VB.Net中,常用的列表类的控件有List Box、Combo Box和Checked List Box控件。对于List Box控件而言,这里涉及的属性有:集合属性Items,用来设置列表框中的显示内容;Item属性,用来获取列表框中指定索引号的项目,Selected Index属性:用来设置或者返回当前在列表框中选定项目的索引号;Selection Mode属性,用来获取或者设置在列表框中选择项目的方式;Selected Item属性,用来获取或者设置列表框中的当前选定项目;Selected Items属性,用来获取列表框中选定项目的集合;Selected Indices属性,用来获取列表框中所有选定项的索引。涉及的方法有:Add方法,用来在列表框中添加项目;Remove方法,用来在列表框中删除指定的项目;Set Selected方法,用来选中某一项或取消对某一项的选择。常用的事件有:Selected Index Changed事件,当改变列表框中的选择时会触发;Click事件,当单击列表框时触发。

下面通过实例具体实现利用List Box控件添加和删除单个或多个项目的方法。

2 利用列表类控件选择数据选项

2.1添加或删除单个选项

在VB.Net中新建一个Windows应用程序项目,在Form1窗体上添加2个Text属性分别为“列表框1”和“列表框2”的Label控件,2个用于显示项目的List Box控件和5个Text属性分别为“添加一项”、“添加多项”、“添加/删除一项”、“添加/删除多项”和“添加/删除多项”的Button控件,界面如图2所示。

其中,“添加一项”的功能是在List Box1中选择一个选项,把它添加到List Box2中。“添加一项”Button1控件的部分程序代码如下,运行结果如图3所示:

“添加/删除一项”的功能是在Listbox1中选择一个项目,把它添加到Listbox2中,并在Listbox1中把该项目删除。“添加/删除一项”Button3控件的部分程序代码如下,运行界面如图4所示:

2.2选择或删除多个选项

“添加多项”的功能是在List Box1中选择若干个选项,把它们添加到List Box2中。,在“添加多项”Button2控件的部分程序代码如下,这里要用到相关集合属性,运行界面如图5所示:

“添加/删除多项”的功能是在Listbox1中选择若干个项目,把它们添加到Listbox2中,并在Listbox1中把该这些项目删除。该功能提供了两种方法。其中第一种方法,“添加/删除多项”Button4控件的部分程序代码如下,这里原项目的删除借助于一个数组来实现,运行界面如图6所示:

第二种方法,“添加/删除多项”Button5控件的部分程序代码如下,运行界面如图6所示:

3 结论

通过这些方法,可以看出实现相关功能并不是很复杂,主要是对相关控件的属性、方法和事件要非常熟悉,其中在添加多个项目的同时进行删除的功能,要借助第三方把所选择项目的相关信息保存下来,以便再次使用。在软件设计中类似的功能都可以用这些方法实现。

摘要:目前很多软件界面中会提供若干个选项供用户选择或删除,如可以选择或删除单个选项,也可以选择或删除多个选项。一方面为了方便软件编程人员更好地实现该功能,另一方面让用户能够更加容易进行相关操作,因此探讨一下在Visual Basic.Net中列表类控件的相关功能的应用。

关键词:数据选择,单选,多选,删除,VB.NET,列表类控件

参考文献

[1]沈大林.Visual Basic.NET实例教程[M].北京:电子业出版社,2006:90-97.

[2]刘刚.VB.NET程序设计基础[M].北京:高等教育出版社,2008:130-134.

[3]张琴孙更新宾晟.Visual Basic.NET 2008从基础到项目实战[M].北京:化学工业出版社,2010:243-245.

[4]青岛东合信息技术有限公司青岛海尔软件有限公司.VB.NET程序设计[M].北京:电子工业出版社,2011:55-59.

[5]夏耘.程序设计与实践(VB.NET)[M].北京:电子工业出版社,2012:139-140.

[6]本社.Visual Basic 2005程序设计教程[M].北京:清华大学出版社,2011:138-139.

[7]白素兰.Visual Baisc.NET案例化教程[M].大连:大连理工大学出版社,2010:49-55.

[8]彭复明.VB.NET中拖放功能的应用[J].南京工业职业技术学院学报,2008(4):39-40.

[9]林锋李迎辉.基于Javascript的可编辑下拉列表框的设计与实现[J].电脑知识与技术,2009(15):35-36.

文本表格控件设计及应用 篇6

随着社会信息化程度不断提高,各行各业都离不开管理信息系统,而在管理信息系统中经常要输出与申请表相似的表中数据。当输出此类表中数据时面临着下面问题:(1)如何把表格中数据按我们平时的习惯进行输出?(2)一个表有多页怎么输出它们?解决这些问题,最好是用输出控件来完成,如果用大量的像Lable、TextBox等基本控件来输出表格中数据,安排设置和编程的工作量都很大,而且美观方面也很难保证。

到现在为止,还没有较好的输出文本表格数据的控件,像国外的报表开发工具如Visual Studio.NET中的RDLC、FormulaOne、CrystalReport、BRIO、StyleReport 等等,根本不能满足我们的需求;国内众多厂商开发出了具有中国特色的报表软件,如用友华表的Cell、润乾报表、数巨报表、杰表等等,一般也是针对数值型数据开发的报表软件,对完成数值型数据的表格处理功能强大,对文本表格数据的输出功能不够。

为了解决文本表格数据输出的问题,在吸收国内外数据报表控件优点的基础上,设计了此文本表格数据输出控件。此控件是Excel型数据输出控件,具有报表工具的一般特点,除此之外控件与现有的报表开发工具和一些数据控件相比进行了如下改进和创新:

1) 以记录(一条完整的信息)为单位进行输出,每条记录数据可以输出为一页或几页;

2) 可以根据我们的习惯任意设置、合并单元格,只要需要都可完成;

3) 控件每一行中列可以任意设置,不存在列合并的问题,多行的单元格可以进行行合并;

4) 输出的数据可以是数据源中的字段名、字段值或任意其他数据常量;

5) 可以对数据进行编辑,方便对数据进行修改;

6) 对多页的数据,可以进行分页显示,并给出页码标签用于翻页,方便浏览;

7) 对多条记录提供了移动记录方法,即移到第一条、前一条、下一条和最后一条;

8) 所有设置全部可以使用属性窗口完成,可以不编写任何代码,方便使用;

9) 所有设置皆沿用Windows下的设置格式,符合应用习惯。

1算法及实现

从整体框架看,设置控件的数据源(DataSource)和数据成员(DataMember)等属性,然后设置行集和列集属性,最后根据前面的设置输出文本表格,如果超出一页,多页输出,如果需要,可以对数据进行修改。下面对部分算法进行一些说明

1.1数据源和数据成员属性

在信息管理系统中,数据常被存放在数据库如SQL Sverver和Excel文件中,为了方便在控件中输出和修改数据,为控件设计了数据源和数据成员属性。

数据源和数据成员属性为控件设置输出的数据,把设置给数据源的数据保存到数据集DataSet中;再根据设置给数据成员的数据表名把数据表中数据保存到数据表DataTable中,以备设置各单元格的数据使用。

数据源属性的set访问器的流程如图1所示。

1.2合并单元格输出

控件中不论每行的列数是否相等,每列的宽度是否相同,单元格排列都可以看作是规则的,只有占用多行的单元格是不规则的,需要对它进行特殊的处理,即单元格合并。为了处理合并单元格,设计了一个行合并结构(rowCombinationInformation)来保存合并单元格的开始位置信息;由于表格中同时可能有多个合并单元格存在,需要定义多个行合并结构变量,为了便于管理和处理这些行合并结构变量,定义一个ArrayList类对象用来保存它们。

当输出文本表格遇到单元格“行合并”属性为false时,直接为此单元格画线和输出数据即可。

当输出文本表格遇到第一个单元格的“行合并”属性为true(开始合并单元格)时,创建一个行合并结构变量,把行合并的开始信息保存起来,并添加到ArrayList类对象中;当遇到此合并单元格的最后原单元格的“行合并”属性为false(即合并单元格结束)时,把保存在ArrayList类对象中的行合并结构取出,与此原单元格联合输出合并单元格及数据,并把此行合并结构从ArrayList类对象中清除。步骤如下:

(1) 定义行合并信息(rowCombinationInformation)结构。

private struct rowCombinationInformation

{

public int rowStart; //开始行数

public int columnStart; //开始列数

public float rowColumnStart; //合并单元格的列开始位置

}

(2) 定义一个ArrayList类对象myArrayList。

(3) 保存合并单元格信息。当输出文本表格遇到第一个单元格的“行合并”属性为true时,处理合并单元格信息的流程如图2所示。通过循环判断myArrayList对象中各rowCombinationInformation结构元素的rowColumnStart 和当前rowColumnWidth[i, j]的值是否相同,如果相同说明与上面是同一合并单元格,否则是新的合并行,新建rowCombinationInformation结构变量,保存开始行到rowStart,保存开始列到columnStart,保存此行的列开始位置到rowColumnStart,最后把rowCombinationInformation结构对象添加到myArrayList中。

(4) 输出合并单元格信息。当输出文本表格遇到单元格的“行合并”属性为false时,输出单元格及数据流程如图3所示。通过循环判断myArrayList数组中各rowCombinationInformation结构元素的rci.rowColumnStart 是否与rowColumnWidth[i, j] 相同,如果相同说明此合并单元格结束,要输出此合并单元格及数据,首先把此rowCombinationInformation结构元素从myArrayList中读出,然后从myArrayList数组中把rowCombinationInformation结构元素清除,最后以此rowCombinationInformation结构保存的信息确定的左上角和当前行列的数据确定输出的范围显示合并单元格及数据。

1.3多页显示

申请表之类的文本表格大部分时候都有多页,那就需要多页显示。由于输出表格时每行的行高是任意的,所以多页显示时不能以第一页输出的行数为基准,要以第一页的高度为基准,其他页的高度不能高于第一页,所以定义了两个数组showRowNumber和showHeigt分别用来保存每页显示的行数和每页显示的总高度。

计算页数时,根据控件首页显示行数计算控件的其他页行数和高度,如果出现少一行页的高度不够,多一行页的高度太大时,以少一行的高度为准,然后把每页的行数和高度存放到数组中;输出控件时,根据当前选定的页数和数组中保存此页的行数和高度,把数据和单元格线画到窗体上。为了方便多页浏览任何一页,在输出数据表格的下面添加了与页数对应的多个页码键按钮。

1.4数据修改

为了方便对数据进行添加、修改,控件设置了对数据库中数据修改的功能。对字段名的修改直接修改数据库中表结构为好,不在此修改范围。

设计思路和方法:

(1) 为控件添加了一个隐藏的多行文本框控件。

(2) 设计控件的MouseDoubleClick事件,当在控件上双击鼠标时,在此单元格中显示隐藏文本框,并把当前单元格数据设置给文本框,这时就可以对文本框内容进行编辑。

(3) 设计文本框控件的KeyPress事件,当遇到“ESC”时放弃编辑,隐藏文本框控件;当遇到回车键时,把数据保存到数据库,显示到控件上,并隐藏文本框控件。

1.5行、列集合属性编辑器

在控件的所有属性中,集合属性是比较复杂的属性,也是功能最强的属性之一,集合属性有它自己的编辑器,即集合属性编辑器。本控件的使用主要通过行集和列集进行设置的,行集和列集是此控件最重要的属性,为了方便对行集和列集的设置,为控件中的行集属性和列集属性设计了集合属性编辑器,行集的属性编辑器如图4所示,列集的属性编辑器如图5所示。

集合属性编辑器的设计思路和方法:

(1) 设计集合属性

使用DesignerSerializationVisibility类来控制在设计时序列化集合的方式。指定属性对设计时序列化程序所具有的可见性。对您的集合属性应用 Content 值可确保对此属性的序列化,且把属性设置为只读属性。如行集属性设计如下:

(2) 设计集合项类

根据类的功能设计一个一般的类即可。如设计一个Row(行)类。

(3) 设计编辑器类

设计编辑器类要继承CollectionEditor类,CollectionEditor类提供一个用户界面,该界面可以在设计时编辑大多数类型的集合。在此类中最主要的是重写CreateInstance方法,它的功能是创建指定的集合项类型的新实例,即当创建实例为行时,创建新行并返回它。

(4)设计集合类,并设置它的编辑器为前面设计的编辑类

集合类首先要继承Collection<T>类,Collection<T>类为泛型集合提供基类,并且要用下面语句指定集合类的编辑器[Editor(typeof(RowCollectionEditor), typeof(UITypeEditor))]。

[Editor(typeof(RowCollectionEditor), typeof(UITypeEditor))] //指定编辑器

public class RowCollection:Collection<Row>

{}

集合类的内容主要是添加一些常用属性和方法如:count属性、Add、Clear、ReMove等方法和创建索引。

2控件的应用

下面以输出“优秀毕业设计(论文)推荐表”的WinForm应用程序中此控件应用为例说明它的具体用法。

步骤:

(1) 用工具菜单中的添加/移除工具箱项……菜单项把NewExTableCtrl控件加入工具箱,然后把它加入窗体中,控件空表格默认外观如图6所示。

(2) 设置控件的属性如表1所示。

(3) 添加移动记录的四个按钮。

(4) 运行设置好的控件,运行结果如图7和图8所示。

(5) 在单元格中双击鼠标左键,出现文本编辑框,对数据进行编辑,运行结果如图9所示。

(6) 按回车或“ESC”键结束编辑回到查看状态。

3结语

文本表格在工作中用得很多,要想在管理信息系统中较好地使用它们,必须有合适的控件输出编辑它们。本文为了满足这方面的需求,设计了文本表格控件,使用此控件能够满足我们平时对文本表格显示的需要,符合我们平时的应用习惯,可大大提高输出文本表格的能力。

参考文献

[1]王瑾,张璟,李军怀.报表展示引擎设计与实现[J].微电子学与计算机,2009(5).

[2]孙伟,魏雪峰.报表的规范输出模型及算法研究[J].计算机工程与设计,2006(10).

[3]冯家祥.面向程序开发人员的通用报表工具的研究[J].福建电脑,2010(8).

[4]郑键.庖丁解牛纵向切入ASP.NET3.5控件和组件开发技术[M].北京:电子工业出版社,2009.

[5]沃其尔.Web Parts与自定义控件高级编程(ASP.NET2.0版)[M].张建伟,王建东,译.北京:清华大学出版社,2006.

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:dxp控件总结 下一篇:网页申报控件安装方法与常见问题