77范文网 - 专业文章范例文档资料分享平台

foxtable编程(3)

来源:网络收集 时间:2019-04-02 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

通常应该在代码中判断是否找到了符合条件的行,然后再运行后续的代码。 例如要找出最近一次订购产品数量超过1000的订单,并显示订单的日期和客户: Dim dr As DataRow

dr = DataTables(\订单\).Find(\数量 > 1000\,\日期 Desc\) If dr IsNot Nothing Then '如果找到的话 Output.Show(\日期:\ & dr(\日期\)) Output.Show(\客户:\ & dr(\客户\)) End If

如果我们不加上判断,直接: Dim dr As DataRow

dr = DataTables(\订单\).Find(\数量 > 1000\,\日期 Desc\) Output.Show(\日期:\ & dr(\日期\)) Output.Show(\客户:\ & dr(\客户\))

一旦订单表并不存在订购数量超过1000的订单,那么Find方法返回Nothing,导致后续代码运行出错。

Find函数只能找出一条符合条件的行,如果要同时找出所有符合条件的行,可以使用Select方法。

Select

以集合的形式,返回所有符合指定条件的行。 语法:

Select(Filter) Select(Filter,Sort)

Filter: 条件表达式,请参考表达式的运算符和函数 和 条件表达式。 Sort: 可选参数,指定排序方式

我们经常需要对符合某一条件的记录,统一进行处理,此时Select方法就派上用场了。 示例一

例如,对于1999年1月4日订购PD01的订单,希望将其折扣统一设置为0.12,代码为: Dim drs As List(Of DataRow)

drs = DataTables(\订单\).Select(\产品] = 'PD01' And [日期]= #1/4/1999#\) For Each dr As Datarow In drs dr(\折扣\) = 0.12 Next

示例二

再例如,希望列出1999年1月4日订购PD01的客户,按订购的数量排序: Dim drs As List(Of DataRow)

drs = DataTables(\订单\).Select(\产品] = 'PD01' And [日期]= #1/4/1999#\,\数量 DESC\) For Each dr As Datarow In drs Output.show(dr(\客户\)) Next

上面的代码将Sort参数设置为“数量 DESC”,这样返回的行不仅按数量排序,而且数量多的行排在前面。 示例三

Filter参数不能省略,如果希望返回所有行,将Filter参数设置为\即可。 例如希望按总分高低,依次显示所有学生的姓名:

For Each dr As DataRow In DataTables(\成绩表\).Select(\,\总分 DESC\) Output.Show(dr(\姓名\)) Next

DeleteFor

删除符合条件的行。 语法:

DeleteFor(Filter)

Filter: 一个表达式,用于指定删除条件,请参考表达式的运算符和函数 和 条件表达式 例如:

删除订单表中2007年2月1日以前的行,代码为:

DataTables(\订单\).DeleteFor(\日期] < #2/1/2007#\)

RemoveFor

移除符合条件的行。

所谓移除行,只是让用户再也看不到这些被移除的行,就像这些行从来没有被加载过一样;移除行从来都不会真正从文件中删除行,重新打开文件后,被移除的行将再次出现。

语法:

RemoveFor(Filter)

Filter: 指定移除条件。请参考表达式的运算符和函数 和 条件表达式。 例如:

DataTables(\订单\).RemoveFor(\产品] = 'PD01'\) ReplaceFor

找出符合条件的行,并将指定列的内容替换为指定值。 语法:

ReplaceFor(DataColName,Value,Filter) DataColName:替换的列 Value: 替换值

Filter: 替换条件,请参考表达式的运算符和函数 和 条件表达式。

例如将订单表中,订购数量大于600的订单的折扣设为0.15,只需简单的一行代码即可: DataTables(\订单\).ReplaceFor(\折扣\, 0.15, \数量] > 600\) 如果不用ReplaceFor,最精简的代码也是:

For Each dr As DataRow in DataTables(\订单\).Select(\数量] > 600\) dr(\折扣\) = 0.15 Next

RejectChanges

撤销自打开文件或最近一次保存以来,对该表做出的修改。 示例

撤销对表A的修改:

DataTables(\表A\).RejectChanges()

StopRedraw

我们对表做的任何变动,例如编辑数据、增加行、删除行、调整行高列宽,都会导致Table重新绘制,以便显示变动后的结果。

如果要对DataTable连续地进行大量的操作,为了避免相关Table(表)不停地闪烁,可以先执行StopRedraw方法禁止绘制表,操作完成后再执行ResumeRedraw方法重新绘制表。

StopRedraw方法会禁止绘制所有基于该DataTable的Table,直到执行ResumeRedraw方法恢复绘制。

例如我们要在订单表中增加500行,代码如下: With DataTables(\订单\) .StopRedraw

For i As Integer = 1 To 500 .AddNew() Next

.ResumeRedraw End With

注意最后一定要记得执行ResumeRedraw方法,否则表格不会再刷新。 如果你将代码修改为: With DataTables(\订单\) For i As Integer = 1 To 500 .AddNew() Next End With

你可以看到代码执行过程中会不停地闪烁,而且执行速度也比之前慢很多。

StopRedraw和ResumeRedraw必须配对执行,如果执行了两次StopRedraw,那么对应的就必须执行两次ResumeRedraw,才会恢复绘制Table。

上面的代码只是用于演示,实际上增加500行最简单的代码是: DataTables(\订单\).AddNew(500) 属性 属性名 Type Name Caption HasChanges AllowEdit AllowAddNew 说明 整数型,返回一个整数,表示DataTable的类型 字符型,返回DataTable的名称 字符型,返回DataTable的标题 逻辑型,判断DataTable的数据是否已经被修改 逻辑型,是否允许用户修改表中数据 逻辑型,是否允许用户增加行 AllowClipBoard AllowInitialize AutoAddNew AllowDelete AllowLockRow AllowUnlockRow AllowDragColumn AllowFreezeColumn AllowResizeColumn AllowResizeRow AllowResizeSingleRow EnterKeyActionDown TabKeyActionDown MultiRowHeader FillLoadTimeOut SourceType 逻辑型,是否允许复制粘贴数据。 逻辑型,是否允许初始化此表。 逻辑型,是否自动增加行 逻辑型,是否允许用户删除行 逻辑型,是否允许用户锁定行 逻辑型,是否允许用户取消锁定行 逻辑型,是否允许通过拖动列标题来调整列位置 逻辑型,是否允许通过鼠标拖动来调整冻结区 逻辑型,是否允许通过鼠标拖动来调整列宽 逻辑型,是否允许通过鼠标拖动来调整行高 逻辑型,是否允许单独调整某一行的高度 逻辑型,按回车键是否向下移到另一单元格 逻辑型,按Tab键是否向下移到另一单元格 逻辑型,是否启用多层表头。 整数型,设置加载数据时的超时时限,默认30秒,一般不需要设置此属性。 整数型,返回数据源的类型,0表示Access,1表示SQL Server,2表示Oracle。 方法 方法 AddNew Compute Find Select Save ReplaceFor DeleteFor RemoveFor RejectChanges AcceptChanges GetUniqueValues GetComboListString 说明 在DataTable中增加一行,并返回所增加的行 根据指定的条件计算指定的内容 在DataTable查找符合条件的行,如果找到的话,返回找到的行,否则返回Nothing 以集合的形式,返回所有符合指定条件的行 保存数据 找出符合条件的行,并将指定列的内容替换为指定值 删除符合条件的行 移除符合条件的行 撤销自打开文件或最近一次保存以来,对该表做出的修改。 接受所有修改结果,使得这些修改不被保存。 从指定列中,获取不重复的值,以集合的形式返回 从指定的列中提取不重复的值,用符号\将这些值连接成一个字符串,并返回这个字符串

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库foxtable编程(3)在线全文阅读。

foxtable编程(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/566091.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: