网站大量收购独家精品文档,联系QQ:2885784924

Vfp9grid的用法.doc

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

Vfp9grid的用法 Grid是Vfp中功能十分强大的常用控件之一, 它与Browse比使用更方便灵活、功能更强大,正因为如此,要全面掌握并用好它还得下一番工夫,我也没完全掌握它,下面只是我在常规用法上的 一点体会,同时在此感谢网友熊昕(HR)的大力支 持,也十分希望其他网友能鼎立相助。 1.如何使已逻辑删除的记录从Grid中彻底删除(pack)? 我们知道在当SET DELE ON时,可以使已逻辑删除的记录从Grid中隐藏起来,但并没有真正从数据表中删除,只有执行了pack命令,才真正删除这 些记录,然而当Grid绑定该数据表时,执行pack命令,会使Grid 出现一片空白,究其原因,是因为执行pack命令时,系统会先关闭该数据表,执行完pack 再打开,而绑定Grid的数据表一旦关闭,Grid 由于失去了数据来源,就会出现一片空白,即使再打开也无济于事,除非重新创建和设置Grid的各项属性。 知道了它的原理,那也就有了解决的办法: A.用代码重新创建Grid,并设置其各项属性: thisform.addobject(grid1,grid) thisform.grid1.visible=.f. with thisform.grid1 .top=30 .left=10 .width=240 .columncount=10 .height = 203 .deletemark = .f. .scrollbars = 2 .recordmark = .f. .column1.width = 150 .recordsource = shjb .column1.controlsource = shjb.name .column1.currentcontrol = text1 .column1.alignment = 0 .column1.header1.caption = 单位 .column1.header1.alignment = 2 .column2.width = 80 ...... .column10 .width = 80 endwith thisform.grid1.visible=.t. thisform.grid1.setfocus 可以看出用这种方式比较麻烦,ColumnCount属性等于几,就得设置几个,调试不方便。 B.既然关闭数据表不行,那我们可不让它关闭,只要能达到彻底删除记录的目的就行: sele xxx   XXX=绑定的数据表 copy TO lsshjb for not deleted() *将没有删除标志的记录复制到lsshjb.DBF zap 删除所有记录,zap命令不关闭库 Append from lsshjb *再把刚才没有删除记录的lsshjb.DBF追加到XXX thisform.grid1.setfocus 刷新grid 可以看出这种方式简单,是利用了zap命令不关闭数据表的特性,其速度和PACK相差无几。 2.如何突出显示符合要求的记录? Grid有个SetAll方法,用来为Grid中的所有控制指定一个属性设置。 Grid还有个AfterRowColChange事件,当用户移到表格的另一行或列时,新单元获得焦点以及新行或列中对象的 When事件发生后,发生此事件。如果新行或列中对象的When事件不返回“真”, 则不触发AfterRowColChange 事件。 A.使获得焦点的整个一行随着焦点的上下移动,而用不同的前景色突出显示当前行。 在Grid的AfterRowColChange事件里写: this.SetAll(DynamicForeColor,iif(this.activerow=recn(),RGB(0,128,64),RGB(0,0,0)),Column) B.使符合条件的整个一行,即使Grid没有焦点也用不同的前景色突出显示。 比如一绑定Grid的数据表,有一字段BH,另有一 Text控件,那我们可以在Text.LostFocus事件里写: thisform.grid1.SetAll(DynamicForeColor,; iif(Allt(Text.Value)=recn(),RGB(0,128,64),RGB(0,0,0)),; Column) thisform.grid1.Refresh C.使整个一列突出显示: 比如thisform.grid1.Columns(1).ForeColor=RGB(255,0,0)使GRID的第一列全部为红色前景色。 当GRID等控键的ReadOnly=.T.时,如果用户想改变其值,系统会出现“此控件只读!”的提示,如果我们不想让其出现,则: set notify off 如果在

文档评论(0)

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

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

1亿VIP精品文档

相关文档