-- 作者:狐狸爸爸
-- 发布时间:2010/3/19 20:42:00
-- 3月19日更新
1、增加文件监视功能
文件监视器
文件监视器用于监控指定目录下的文件,当创建、修改或删除文件时,会触发事件,通过设置对应的事件代码,可以间接和第三方的程序实现及时的数据交流。
在管理项目功能区,单击下面的按钮,可以设置文件监视器的属性和代码:
此主题相关图片如下:1235.gif
FileWatcher表示文件监视器,其属性有:
- Enabled
逻辑型,是否启用文件监视器。
- Path
字符型,设置监视目录的路径,不能将监控目录设置为根目录。
- Filter
字符型,设置要监控的文件类型,例如要监控文本文件,可以设置为"*.txt";要监控指定的某个文件,可以直接设置为文件名,例如"data.mdb";如果要监控所有文件,则设置为"*.*"
- Delay
设置事件延迟触发时间,默认为500毫秒,也就是文件发生变动后0.5秒才触发对应的事件。 在延迟触发时间内,如果同一个文件发生了多次变动,将只触发一次事件。 最小可设置为100毫秒。 保存一个大文件,可能要经过多次的写入,持续的时间也会比较长,所以合理设置此属性是相当重要的。
示例
With FileWatcher .Path = "c:\\Data" .Filter = "Sale.mdb" .Delay = 1000 End
With
执行上面的代码后,将开始监控文件“c:\\data\\Sale.mdb”。 其实一般是通过菜单来设置FileWatcher的,很少需要利用代码来设置。
FileWatcher有三个事件:
- FileCreated
创建文件后执行。
- FileDeleted
删除文件后执行。
- FileChanged
修改文件后执行。
e参数属性:
Name: 触发事件的文件名,不含路径。 FullPath:触发事件的文件名,含路径。
示例
假如订单表是外部表,来自文件c:\\data\\Sale.mdb,我们可以监控此文件,一旦此文件发生变动,就重新加载订单表数据。 首先我们要监控此文件,然后将FileChanged事件代码设置为:
DataTables("表A").Load()
看上去很简单,不过还有一个毛病,就是自己保存数据后,也会触发FileChanged,导致重新加载数据。为避免这种情况,我们可以自己做一个保存按钮:
FileWatcher.Enabled = False DataTables.Save() FileWatcher.Enabled =
True
上面的代码在保存前停用文件监视器,保存结束后,重新开启文件监视器。 2、增加自定义汇总模式的功能:
此主题相关图片如下:1238.gif
实现方法参考:
此主题相关图片如下:spximage.gif
3、重写了SaveExcel方法,现在兼容性更好了。
[此贴子已经被作者于2010-3-19 20:42:45编辑过]
|