Visual FoxPro 9 CS方面极富人性化的增强.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Visual FoxPro 9 CS方面极富人性化的增强

Visual FoxPro 9 C/S方面极富人性化的增强 作者: mihu 今年6月,微软公司如期发布了全球Foxer翘首期盼代号为Europa的Visual FoxPro 9beta 版(以下简称VFP9),下文是我学习、探索 VFP9 C/S方面新增功能时的一些心得,供大家一起分享。 自从VFP 8 开始,在C/S方面提供了一个CursorAdapter 类, CursorAdapter 是一个基于松散耦合思想设计的对象化的 Cursor 处理模型。对 CursorAdapter 类很多人对其褒贬不一,特别是一些老的Foxer认为做C/S系统用SPT就足够了,何必再增加一个类呢?但我可以这么说,从VFP9 开始,几个CursorAdapter新增加的功能,相信足以使那些纯使用SPT 的Foxer 心动不已了。 下面我先谈谈VFP9 在 CursorAdapter 部分的几个增加和增强。 1.?????? 属性值可以超过255 个字符 用过CursorAdapter 类的人都知道,VFP8 时其几个属性 SelectCmd、CursorSchema、UpdateNameList、UpdatableFieldList的长度不能超过255个字符,这在VFP8时让人感觉是一件非常滑稽的事情,当后台表的字段数一多,连使用它自身生成器生成的字符串都要报错,不能保存,这点造成CursorAdapter使用起来极为不便,也是全球Foxer要求解决的呼声最多的地方,现在这个问题在VFP9 中终于得到了彻底解决。 2.?????? 生成器生成的CursorSchema 不再是按照字母次序来排列了 当我们设计表单上控件时,只要在表单数据环境里放入CursorAdapter,设置 CursorAdapter 的CursorSchema 属性就会可视化的出现一个Cursor, 此时只要拖动相应字段到表单,即可完成一个个控件的设计,这也是CursorAdapter的优点之一,VFP8 时利用生成器生成的CursorSchema 是按照字母次序排列的,这点造成设计时非常的不方便,大家习惯的是自己设计表时的字段次序,现在VFP9 在这方面也做了非常人性化的修改,现在我们可以完全非常舒服的利用其本身的生成器来生成 CursorSchema 供我们设计表单使用。 3.???????? NoData 和 UseCursorSchema 属性 VFP8 时当把CursorAdapter 设计时放到表单的数据环境里,使用CursorFill()里的这两个参数极为不便,现在好了,把这两个属性单独列了出来。 4.???????? TimeStamp 时间戳字段 VFP8 的CursorAdapter 虽然 WhereType 可以等于 4 ,可是其实时间戳字段真正在更新时却过滤掉了,根本不起任何作用。现在VFP9 的CursorAdapter 增加了 TimestampFieldList属性,如果你的后台表里有时间戳的话,只要设置一下这个属性,然后设置WhereType = 4即可。 5.???????? RecordRefresh() VFP8时CursorAdapter只能用 CursorRefresh() 来刷新前台,可很多时候,我们可能只需要刷新其中一条或者几条记录的数据,可CursorRefresh(),如果前台记录有 1000 条,也要全部重新读一遍,读取完毕以后,记录指针却始终定位在第一条记录,这样既巨大的浪费了网络资源,同时很多情况下还要花费很大的精力重新定位记录指针。 现在 VFP9 增加了这个极富人性化的方法-----RecordRefresh(),能做到任意刷新此Cursor里的任意一条或者连续几条记录,而且当前记录指针保持不变,看到这里相信做过C/S程序的朋友们是不是有一种跃跃欲试的感觉?这个可以期盼已久的功能啊。 RecordRefresh()里有2个参数,RecordRefresh(nRecords,nRecordOffset) 1) nRecords 表示要刷新几条记录 2) nRecordOffset记录偏移量,指是当前记录开始加几条记录 例子1,比如当前记录号是第5条,我要刷新第7、8两条记录, oCa.RecordRefresh(2,-2) ???????? 例子2, 只刷新当前记录, oCa.RecordRefresh(1) 6.???????? CursorAdapter 的 Auto-Refresh VFP9提供了记录的Auto-Refresh,其作用、功能、效果和前面介绍的RecordRefresh() 基本相似,有异曲同功之妙用。 让我们来看看具体是怎么使用的吧: InsertCmdRefreshFieldList

文档评论(0)

ipbohn97 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档