首页 > 开发 > 综合 > 正文

如何实现数据的自动录入

2024-07-21 02:09:19
字体:
来源:转载
供稿:网友
用户录入数据时经常会遇到大量重复数据,即录入下一条记录的某个字段时,其值与上一条记录同字段的值相同。如果编些程序自动录入相同值会大大提高录入速度。具体实现方法如下:一、程序中主要用到的函数1、fileopen() 功能:以指定的读写模式打开指定的文件,同时返回文件的句柄。2、filewrite() 功能:从指定文件读取数据。3、fileclose() 功能:关闭先前用fileopen()函数打开的文件。4、settext() 功能:得到当前行和列之上的编辑框中的值。5、gettext() 功能:替换在datawindow控件或datastore对象的当前行列的编辑框控件中的文本。6、send() 功能:向窗口发送指定的消息并立即执行相应的事件处理程序。7、describe() 功能:返回datawindow对象或datastore对象中的其它对象的属性值。以上函数在有关pb的函数书中均可以找到,这里不再详述,但要注意后面两个函数的使用方法。二、具体实现方法1、建立window具体控件名称如图1所示。 2、定义实例变量数组 string is_value[] 和 integer if_file(存放打开文件的句柄)string is_columncount3、在window的open事件中编写如下代码int iif_file = fileopen("sys.ini",linemode!, read!, lockread!)is_columncount = dw_input.describe("datawindow.column.count") //取得datawindow对象的总列数for i = 1 to integer(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事件中编写如下代码int iif_file = fileopen("sys.ini",linemode!, write!, lockwrite!, replace!)for i = 1 to integer(is_columncount)filewrite(if_file, is_value[i])nextfileclose(if_file)4、给datawindow control自定义一个回车键事件:event name: ue_keyenter event id: pbm_dwnprocessenter 5、在datawindow control的ue_keyenter事件中写入以下代码is_value[this.getcolumn()] = this.gettext()send(handle(this),256,9,long(0,0))this.settext(is_value[this.getcolumn()])return 1在datawindow control的constructor事件中写入以下代码this.settransobject(sqlca)this.retrieve()6、给cb_append自定义一个回车事件event name: ue_keydown event id: 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事件中写入以下代码if keydown(keyenter!) thenthis.triggerevent(clicked!)end if※ 注意各个控件的tab order的顺序。以上步骤只是简单的实现快速录入,如果遇到具体情况还应该做更详细的编码。

最大的网站源码资源下载站,

上一篇:预装入对象

下一篇:FUNCky 的使用

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表