myamanda

博客园 首页 新随笔 联系 订阅 管理
在delphi中的database desktop系统中,新建一个Table表的dbase IV(只能用dabse文件,因为EXCEL不认其它方式的文件)文件sample.dbf,可建立索引文件,在这里应注意的是在database desktop中只能输入英文字段,其实我们只用databse desktop建立文件结构,然后可以到vfp中修改成中文即可,对数据的初始化和字段的增减可在vfp中完成,大家可能要问为什么不在vfp中直接建立数据表文件,因为EXCEL根本不认vfp中的数据表,它读出的数据是杂乱的。

  建立好数据表sample.dbf后,在delphi中建立一个工程,然后选择file->new中的data module模块,建立的data module好处是在各个表单可能通用,在datamodule1的components中添加数据源和数据表,设置相关项,数据表的databasename应设为c:\temp(你的dbf文件的目录),把tablename设为你所设计的数据表(sample.dbf),在form1上新建一个button按钮,caption为编辑打印,在它的onclick中加入如下代码:

  data.table1.close;//关闭当前数据表,如果不关闭可能造成数据不全

  if fileexists(extractfiledir(application.exename)+‘\samplep.dbf') then DeleteFile(extractfiledir(application.exename)+‘\samplep.dbf');

  //判断打印数据表samplep.dbf是否存在,如果存在就删除它

  copyfile(pchar(extractfiledir(application.exename)+‘\sample.dbf'),pchar(extractfiledir(application.exename)+‘\samplep.dbf'),true);

  //把sample.dbf拷贝成打印数据表samplep.dbf,samplep.dbf是编辑打印专用的,如果用sample.dbf则EXCEL会提示sample.dbf是只读文件,修改会死机

  data.table1.open;//打开当前数据表,使其处于活动状态

shellexecute(0,‘open',‘EXCEL.EXE',pchar(extractfiledir(application.exename)+‘\samplep.dbf'),pchar(extractfiledir(application.exename)),SW-SHOWMAXIMIZED);//调用excel并读取samplep.dbf文件到excel中,在头文件中要引用ShellAPI.

  这样就可利用EXCEL的表格功能和多打印功能,不必再去设计繁锁的报表程序。
posted on 2009-09-22 14:41  myamanda  阅读(318)  评论(0)    收藏  举报