粗略看了一下楼主的源代码,特指出以下问题供参考:
1. 控件的命名不规范,读起来比较吃力。如:文本框 CWDH 的命名就很令人费解。若改为 txtPath,可读性就好多了。
2. 楼主是通过在表单的 Init事件中隐藏VFP主窗口的,实际运行时主窗口会闪一下。更好的方法是:在同路径下新建一个 config.fpw,在该文件中添加一行 screen=off
3. 单击 command2 时应该是选择文件夹,但楼主却使用了GetFile()函数,应该改为 GetDir()。对判断返回结果时,不要仅判断结果是否为空,还应判断文件夹是否存在,因为GetFile()和GetDir()可以输入一个不存在的文件或文件夹
4. 当鼠标指针移动到“年月值”右侧的两个箭头label时,显示操作提示,还使用了定时器,太复杂了。更好的方法是:设表单的 ShowTips=.t.,然后再分别设置两个箭头标签的 ToolTipText属性
5. 楼主禁用了表单的关闭按钮,不太好。改进:设表单的 Closable=.t.,将退出按钮(command1)中的 clear events 语句移至表单的 destory 事件中。
6. 为了使窗口底部的状态条控件始终位于窗口底部并随窗口缩放,楼主在表单的 resize事件中调用了状态条控件的 resize类方法。更简单的方法是:设置状态条的 anchor 属性为 14 即可。
7. “全选”的代码是:UPDATE pdflist
SET pdflist.ischeck = iif(this.Value=1,.t.,.f.) ,可精简为:UPDATE pdflist
SET pdflist.ischeck = (this.Value=1)
8. 在“预览改名”时,楼主用了 4 条 update 语句,也就是说对数据表扫描了 4 次,效率很低。不妨更改为:在一个 scan循环中使用条件判断和 replace 高效
……