ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:85.50KB ,
资源ID:5691856      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/5691856.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(VFP中GRID的使用技巧.doc)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

VFP中GRID的使用技巧.doc

1、GRID的使用技巧 1.如何在GRID里控制回车事件  在VFP里,GRID的默认控件都是TEXTBOX,形成了一个表格,但是在这个二维表里进行操作时,每次按回车都是往后一个单元格跳转,当到最后一列时,则继续跳到第一列,进而循环,操作很不方便。 下面说明如何在GRID里的一个列里按回车使记录连续往下跳转(或可以执行其他的操作),当跳转到最后一行时执行另一个操作。 1、对GRID所在的表单新增属性: cur_recn 记录当前记录号 cur_recc 记录最大记录号 2、在表单初始化,或给GRID以数据源时,就先计算出该表的最大的记录数,如下: thisform.cur

2、recc=recc() 为了一次得到当前GRID里的表的记录总数 3、在GRID的AfterRowColChange事件里写: thisform.cur_recn=recn() 为了得到当前的GRID里的表的记录号 4、在GRID里的某列的TEXT1的KEYPRESS事件里: if nKeyCode = 13 && 当按键为回车时  if thisform.cur_recn>=thisform.cur_recc   **-- 当当前记录大于等于最大记录时,即记录已到最后一个时   mand1.setfocus   **-- 使表单上的一个命令按纽聚焦,也即可以跳出该GRI

3、D,  **-- 而正常的操作很难从GRID里跳出,在这里就可以使在记录到最后时焦点跳出来  else   thisform.cur_recn=recn() && 当记录还没到尾时,则...   nodefault && 不做任何响应   keyboard "{dnarrow}" && 模拟键盘下箭头,使记录指针下移一个  endif endif 以上所说的,只要按键盘上的上下箭头即可轻易做到在GRID中移动指针,没有太大的意义。 2.如何实现输完数据后按回车键,使表格中的焦点自动跳到下一行 在你要判断转换的GRID的最后一列的TEXT1的keypress: IF  n

4、KeyCode=13             SELECT  你绑定表名          nRec=RECNO()            SKIP          IF EOF()             APPEND BLANK  &&在表尾加一空记录             SKIP &&记录指针到EOF()             Thisform.grid1.refresh             Thisform.grid1.column1.text1.SetFocus &&到最前面          ELSE              GO nRec

5、  &&同一行,不要此就跳下一格              Thisform.grid1.refresh              Thisform.grid1.column1.text1.SetFocus                ENDIF       ENDIF 以上代码未经过试验,等待ing Thisform.grid1.recordsuore=Null是什么意思? Thisform.grid1.recordsuore=Null 与Thisform.grid1.recordsuore=''是不是一样的? null是不等于'',但在上面例子中的结果是一样的。 NU

6、LL值不是空值,也不是零值,而是未知的、不可预测的值。在数据库中,一旦将某字段设为Not Null 则用户必须录入数据,否则不允许数据库更新。 3.我怎样才能把网格中的文本控件替换为其它控件?(可参照收费管理系统) 首先,先把原来的文本框控件删除。 1)在您要修改的网格上按下鼠标右键,选择弹出菜单中的“属性....” 2)在弹出的属性对话框顶端的列举框中选择要替换文本框的column下的text1。 3)在网格上按一下鼠标左键。 4)按下键盘上的DELETE按键,删除Text1控件(网格上的ab1将会消失)。 其次,在网格上添置控件。 1)在您要修改的网格上按下鼠标右键,选择弹

7、出菜单中的“编辑....” 2)按一下表单控件工具栏上您要加到网格上的控件。 3)在您要添置控件的column上按下鼠标左键,并放置控件。 用Grid模拟Browse窗口 可以将Grid结合在Form对象中,模拟成一个Browse命令窗口,当自由调整Form大小时,Grid对象也会自动调整大小。实现方法如下: 1.首先设定一个Form对象,该对象必须保留其BorderStyle属性为“3-可调边框”,即设为可自由调整大小的边线属性;同时设定Resize事件如下: Thisform.Grid1.Width=this.Width Thisform.Grid1.Height=th

8、is.Height 2.设计一个Grid对象于Form对象中,并设定其属性如下: RecordSource为目前“数据环境”中所设定的工作区别名; Top与Left均设为0,表示该对象左上端坐标为(0,0); Width的值设为Thisform.Width; Height的值设为Thisform.Height。 这样,已经设定好的Grid对象便可以和Browse窗口相关联,当对Form对象进行大小调整时,Grid对象的高度与宽度就可以随之调整了。 4.表格GIRD的数据源表删除数据或变动后,表格会显示空白? thisform.grid1.RecordSource =

9、 null SELECT yea,mon,jcgz1,gwgz1,ren1,jcgz2,gwgz2,ren2,dqgz,dqren,ntgz,ntren,txgz,txren;  FROM gzhz WHERE danwei = this.value AND yea = thisform.cboyea.Value ;  INTO dbf dwgz ORDER BY mon thisform.grid1.RecordSource = 'dwgz' 其实就是: 先hsiform.grid1.recordsource = null 经过表操作(删除、变动等) 后hisform.gr

10、id1.recordsource ='dbfname' 5.关于Grid的绑定数据源问题(用临时表绑定) thisform.grid1.recordsource="" SELECT 学号,姓名 FROM tblStudent INTO CURSOR temporary            thisform.grid1.recordsource="temporary"            thisform.grid1.refresh() 具体解释如下: thisform.grid1.recordsource="" 这一行的目的是让grid1在整个 SELECT 学号,姓名

11、FROM tblStudent INTO CURSOR temporary 期间不随temporary表的变化而变化,INTO CURSOR temporary实际上有多个动作, 先清除原临时表temporary,再生成新的temporary表, thisform.grid1.recordsource=""这行的目的是让GRID1在全过程中和临时表temporary断开,不受它的影响. 当全部操作完后再用 thisform.grid1.recordsource="temporary" 连接上去,最好在这句前加上一句, select temporary go top 这样如果t

12、emporary有多条记录的话不会出现指针在末尾而看不到第一条记录的情况(不好看), thisform.grid1.refresh()这句基本上可以不要的,在大多数情况下不会出错,只有在查询后紧跟其它对grid1数据集调用指令的会出错. 6.grid控件的使用技巧(应用setall()方法统一设置) (1)禁止用户用鼠标去调整各个column的位置顺序 在grid的init事件程序中输入以下代码: this.setall("movable",.f.,"column") (2)禁止用户用鼠标去调整各个column的宽度 在grid的init事件程序中输入以下代码: th

13、is.setall("resisable",.f.,"column") (3)使grid中各个column的标题文字自动居中 在grid的init事件程序中输入以下代码: this.setall("alignment",2,"header") (4)建立求平均栏   假设一个存放了成绩数据表(包括:姓名、语文、数学、政治字段),欲在grid中增加一个“平均分”直栏,只需将grid的columncount属性加1,然后将“平均分”栏的controlsource属性设为如下: controlsource=(语文+数学+政治)/3 (5)根据用户选定的column进行排序

14、 有时希望单击column的标题,就以此column的字段进行排序显示记录。我们可以在各个column的header对象的click事件中,将数据环境中的cursor对象的order属性设定成根据这个column的字段建立的索引名称,然后再调用grid的refresh方法即可。例如: thisform.dataenvironmnet.cursor1.order="姓名" thisform.grid1.refresh (6) Grid对象中焦点行的动态显示 Grid对象中当数据记录移动时,用颜色动态变化显示相对光标所在记录的位置,可以在Grid对象的afterRowCol

15、Change事件过程中加入如下内容: this.setall(“dynamicbackcolor”,“iif(this.activerow=recno(),rgb(0,0,255),rgb(255,255,255))”,“column”)。 (7)在网格中交替显示颜色   记录号有序排列时,可以在网格的列中交替显示白色和灰色的记录,代码如下: THIS.SETALL("DynamicBackColor","IIF(MOD(RECNO(),2)=0,RGB(255,255,255),RGB(223,250,253))","Column") &&设置隔行的不同背景颜色:。 (8) 符合

16、条件的记录显示颜色 进行查询时,想在网格中动态地显示符合条件的记录的颜色,可以充分利用DynamicBackColor和DynamicForeColor特性。 例如:在《宅基地管理系统》中,使被注、撤销的记录呈现红色,可在grid1的init事件和afterrowcolchange中添加下列代码:(注意:加不加,"column"都可以) this.SetAll("DynamicforeColor","IIF(是否被注(撤)销='是',rgb(255,0,0),rgb(0,0,0))") &&使被注撤销的记录显红色 (9)设置多种颜色(无规律性) 例如:在《宅基地管理系统》中,使被注、

17、撤销的记录呈现红色,可在grid1的init事件和afterrowcolchange中添加下列代码:(注意:加不加,"column"都可以) this.SetAll("DynamicforeColor","IIF(是否被注(撤)销='是',rgb(255,0,0),rgb(0,0,0))") &&使被注撤销的记录显红色 主要是针对一个表GRID里,当记录很多时,而且某些记录具有特定的属性时,我们需要设置颜色来区分这些数据,如下代码可以在刷新或初始化表单时,设置其属性。 thisform.Grid1.SetAll("DynamicBackColor","IIF(type>=1,iif(ty

18、pe>=2,iif(type>=3,rgb(0,128,0),rgb(192,192,192)),rgb(255,0,0)),rgb(255,255,255))") 如上代码可以说明,如果某记录中有一个字段type,那么根据这个字段的数据值,可以显示不同颜色,可以转换成如下公式: iif(条件1,iif(条件2,iif(条件3,iif(条件4,iif(条件5,[...iif(条件N,颜色N,颜色n-1)...,]颜色5,颜色4),颜色3),颜色2),颜色1),其他颜色) (10)用SetAll方法。例如,你决定为全部网格中的标题设置9号宋体。将以下代码放入网格的Init事件: THIS.

19、SETALL("FontName","Arial","Header") (11)其他(在《土地抵押管理系统》中使用的) this.setall("forecolor",rgb(0,0,0),"header") &&改变grid列头的前景色 this.setall("backcolor",rgb(202,225,213),"header") &&改变grid列头的背景色 this.setall("alignment",2,"header") &&使grid中各个column的标题文字自动居中 this.setall("alignment",2,"column") &&使grid中各

20、个column内的文字自动居中 this.setall("resizable",.f.,"column") &&禁止用户用鼠标去调整各个column的宽度 this.setall("movable",.f.,"column") &&禁止用户用鼠标去调整各个column的位置顺序 7..怎么才能让grid的光标自动移动到要编辑记录上? 如grid显示的表为aa aa记录有: 学号 姓名 001 王一 002 王二 003 王三 。。。。。。 240 王动 。。。。。。 在表单textb

21、ox中输入"240"后,让光标自动到学号为“240”的记录(且grid能够自动滚动到此记录显示-------) 在cmdGo的click事件中,用以下代码: sele aa loca 学号=thisform.textbox.value thisform.grid.setfocus 8、我怎样才能把网格中的文本控件替换为其它控件?   答:首先,先把原来的文本框控件删除。   1:在您要修改的网格上按下鼠标右键,选择弹出菜单中的“属性....”   2:在弹出的属性对话框顶端的列举框中选择要替换文本框的column下的text1。   3:在网格上按一下鼠标左键。   4:按

22、下键盘上的DELETE按键,删除Text1控件(网格上的ab1将会消失)。   其次,在网格上添置控件。   1:在您要修改的网格上按下鼠标右键,选择弹出菜单中的“编辑....”   2:按一下表单控件工具栏上您要加到网格上的控件。   3:在您要添置控件的column上按下鼠标左键,并放置控件。 9.如何在表格控件中用颜色区分特定的记录?   在GRID表格里不同的条件可以用不同颜色的背景或字体来分开吗?回答是肯定的。那么如何实现呢?     在VFP里有几个有关表格的属性:     Column.DynamicBackColor[ = cExpression]    

23、Column.DynamicForeColor[ = cExpression] 它们是用来改变表格控件中某个单元格背景和前景的色彩。另外还有两个相关属性:     Grid.SetAll("dynamicbackcolor", "RGB值", "Column")     Grid.SetAll("dynamicforecolor", "RGB值", "Column") 它们是用来改变整个表格的背景和前景颜色的,可用它们来对颜色进行表格初始化。下面的示例很简单,就是对一个表格中年龄大于30岁的记录用红色加以标记。 对表单FORM1的Activate事件编程如下: oGrd = T

24、HISFORM.grd oGrd.SetAll("dynamicbackcolor", "", "Column") oGrd.SetAll("dynamicforecolor", "", "Column") oGrd.SetAll("dynamicforecolor", "RGB(0,0,0)", "Column") FOR i = 1 TO oGrd.ColumnCount   IF i = 4     oGrd.Columns(i).dynamicbackcolor = "IIF(age>30, RGB(255,0,0), RGB(255,255,255))"   ENDIF

25、 ENDFOR oGrd.Refresh 在GRID表格里不同的条件可以用不同颜色的背景或字体来分开吗?回答是肯定的。那么如何实现呢?     在VFP里有几个有关表格的属性:     Column.DynamicBackColor[ = cExpression]     Column.DynamicForeColor[ = cExpression] 它们是用来改变表格控件中某个单元格背景和前景的色彩。另外还有两个相关属性:     Grid.SetAll("dynamicbackcolor", "RGB值", "Column")     Grid.SetAll("dynam

26、icforecolor", "RGB值", "Column") 它们是用来改变整个表格的背景和前景颜色的,可用它们来对颜色进行表格初始化。下面的示例很简单,就是对一个表格中年龄大于30岁的记录用红色加以标记。 对表单FORM1的Activate事件编程如下: oGrd = THISFORM.grd oGrd.SetAll("dynamicbackcolor", "", "Column") oGrd.SetAll("dynamicforecolor", "", "Column") oGrd.SetAll("dynamicforecolor", "RGB(0,0,0)", "Column") FOR i = 1 TO oGrd.ColumnCount   IF i = 4     oGrd.Columns(i).dynamicbackcolor = "IIF(age>30, RGB(255,0,0), RGB(255,255,255))"   ENDIF ENDFOR oGrd.Refresh

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服