| 用户录入数据时经常会遇到大量重复数据,即录入下一条记录的某个字段时,其值与上一条记录同字段的值相同。如果编些程序自动录入相同值会大大提高录入速度。 |
| 具体实现方法如下: |
| 一、程序中主要用到的函数 |
| 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_columncount |
| 3、在window的Open事件中编写如下代码 |
| int i |
| if_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]) |
| next |
| FileClose(if_File) |
| dw_input.Scrolltorow(dw_input.rowcount()) //将光标设置到最后行列 |
| dw_input.setcolumn(integer(is_columncount)) |
| 在window 的Close事件中编写如下代码 |
| int i |
| if_File = FileOpen("Sys.ini",LineMode!, Write!, LockWrite!, Replace!) |
| for i = 1 to integer(is_columncount) |
| FileWrite(if_File, is_value[i]) |
| next |
| FileClose(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!) then |
| this.Triggerevent(clicked!) |
| end if |
| ※ 注意各个控件的tab order的顺序。 |
| 以上步骤只是简单的实现快速录入,如果遇到具体情况还应该做更详细的编码。 |
由于未提供博客具体内容,无法提炼关键信息形成摘要。

1796

被折叠的 条评论
为什么被折叠?



