VFP中使用Grid控件设计通用录入界面

文章作者 100test 发表时间 2007:10:10 11:23:30
来源 100Test.Com百考试题网


  Grid是VFP功能强大的表格(或者说网格)控件,它提供了比Browse窗口强大得多的控制方式。Grid是包含列对象的容器对象,而列对象包含了列标题对象及列控件对象,均有各自相应的属性集,因此我们可以完全控制表格中的任何一个元素,设计出通用的报表录入界面。
下面我们就详细讨论如何使用Grid控件设计通用录入界面,并解决几个设计过程中经常碰到的问题。

  一、基本原理思路

  设计灵活性、通用性较强的录入界面较为合适的方法是:采用数据表(DBF文件)控制Grid控件的行列显示信息、显示方式。因此,我们将Grid控件的数据源RecordSource设为数据表(DBF文件),其数据格式、显示方式及行列提示信息则分别由数据表RowMsg.DBF(控制表格的行即记录方面信息)、ColMsg.DBF(数据格式并控制Grid控件的列方面信息)进行控制。另外,一般来说指定Grid控件第一列显示行提示信息,若有多个提示信息字段,可连接处理为一列。

  二、前期准备工作

  1.创建表RowMsg.DBF,该表有2个字段,用于显示Grid控件行信息:

Create Table RowMsg(Code C(5),Name C(33))

  2. 创建表ColMsg.DBF,该表有6个字段,用于控制、显示表格各列信息:

Create Table ColMsg(Code C(5),Name C(20),NeedIn L(1),Field_Name C(10),Field_Type C(1),Field_Len N(3),Field_Dec N(3))

  3.创建表单In_Grid,将其属性Name改为“FrmGrid”, Caption改为“数据录入/修改窗口”;在表单上放置Grid控件,将其属性Name改为“GridDat”;在表单上放置Command控件,将其属性Name改为“CmdExit”, Caption改为“关闭退出”。

  三、初步设计工作

  1.先在表单的Init事件中写入如下代码:

Set Talk Off

Set Safe Off

CLOSE ALL

With ThisForm

.AutoCenter=.T. &.&.表单自动居中

.ControlBox=.F. &.&.去除表单的控制框

.Width=_Screen.Width &.&.表单宽度同屏幕

EndWith

**/由ColMsg.DBF生成输入数据表Dat.DBF **/

Sele 0

Use ColMsg

Copy To TmpStru Field Field_Name,Field_Type,Field_Len,Field_Dec

Copy To TmpColMsg For NeedIn

Create Dat From TmpStru &.&.生成Dat.DBF

Eras TmpStru.DBF

Sele 0

Use TmpColMsg Alias ColMsg

Sele 0

Use RowMsg

Index On AllTrim(Code) To TmpRowMsg

Scan

Insert Into Dat(Code) Values (RowMsg.Code) &.&.由RowMsg.DBF生成Dat.DBF的所有记录

EndScan

Sele Dat

Go Top

Set Rela To AllTrim(Code) Into RowMsg

With ThisForm.GridDat

.FontName="宋体"

.FontSize=10

.DeleteMark=.F. &.&.去除Grid的删除标记列,以美化界面

.RecordMark=.F. &.&.去除Grid的记录选择标记列,以美化界面

.ScrollBars=0 &.&.去除Grid的水平及垂直滚动条,以美化界面

.AllowHeaderSizing=.F.&.&.设定Grid的标题栏的高度不可改变

.AllowRowSizing=.F. &.&.设定Grid的各行高度不可改变

.ColumnCount=Recc("ColMsg") 1

.RecordSourceType=2

.RecordSource="Dat"


相关文章


VF辅导:恢复丢失了的FPT文件
VF辅导:让你的程序更专业
改进VFP的Searchcla .VC
用VFP6.0显示MSGRAPHIC图表
VFP中使用Grid控件设计通用录入界面
用DEPHI、VFP自动检测计算机设备
在VFP中调用API实现拨号上网
数据库规范化三个范式应用实例
VisualFoxPro9.0中设计与使用查询
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛