您的位置:首页 > 其它

如何实现数据的自动录入

2008-04-27 23:05 399 查看
用户录入数据时经常会遇到大量重复数据,即录入下一条记录的某个字段时,其值与上一条记录同字段的值相同。如果编些程序自动录入相同值会大大提高录入速度。具体实现方法如下:
一、程序中主要用到的函数
1、FileOpen()功能:以指定的读写模式打开指定的文件,同时返回文件的句柄。
2、FileWrite()功能:从指定文件读取数据。
3、FileClose()功能:关闭先前用FileOpen()函数打开的文件。
4、settext()功能:得到当前行和列之上的编辑框中的值。
5、gettext()功能:替换在DataWindow控件或DataStore对象的当前行列的编辑框控件中的文本。
6、send()功能:向窗口发送指定的消息并立即执行相应的事件处理程序。
7、describe()功能:返回DataWindow对象或Datastore对象中的其它对象的属性值。以上函数在有关Pb的函数书中均可以找到,这里不再详述,但要注意后面两个函数的使用方法。
二、具体实现方法
1、建立window具体控件名称如图1所示。
2、定义实例变量数组stringis_value[]和integerif_File(存放打开文件的句柄)stringis_columncount
3、在window的Open事件中编写如下代码intiif_File=FileOpen("Sys.ini",LineMode!,Read!,LockRead!)is_columncount=dw_input.Describe("DataWindow.Column.Count")//取得DataWindow对象的总列数fori=1tointeger(is_columncount)FileRead(if_File,is_value[i])nextFileClose(if_File)dw_input.Scrolltorow(dw_input.rowcount())//将光标设置到最后行列dw_input.setcolumn(integer(is_columncount))在window的Close事件中编写如下代码intiif_File=FileOpen("Sys.ini",LineMode!,Write!,LockWrite!,Replace!)fori=1tointeger(is_columncount)FileWrite(if_File,is_value[i])nextFileClose(if_File)
4、给Datawindowcontrol自定义一个回车键事件:Eventname:ue_keyenterEventID:pbm_dwnprocessenter
5、在Datawindowcontrol的ue_keyenter事件中写入以下代码is_value[this.getcolumn()]=this.gettext()Send(Handle(this),256,9,Long(0,0))this.settext(is_value[this.getcolumn()])return1在Datawindowcontrol的constructor事件中写入以下代码this.Settransobject(sqlca)this.retrieve()
6、给cb_append自定义一个回车事件Eventname:ue_keydownEventID:pbm_keydown在cb_append的clicked事件中写入以下代码
dw_input.Setfocus()
dw_input.ScrollToRow(dw_input.InsertRow(0))
//追加一空记录并指向新记录
dw_input.SetColumn(1)
//指向公寓名列
dw_input.Settext(is_value[1])
在cb_append的ue_pbm_keydown事件中写入以下代码
ifkeydown(keyenter!)
thenthis.Triggerevent(clicked!)
endif
※注意各个控件的taborder的顺序。以上步骤只是简单的实现快速录入,如果遇到具体情况还应该做更详细的编码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐