DELPHI下调节器用EXCEL为其编辑和打印

 

DELPHI下调节器用EXCEL为其编辑和打印


  我们在常用的数据库应用程序中,编写报表程序比较麻烦,而且delphi中的报表程序由使用者修改也不方便,象一般的数据要加上一个表头,其中的一些数据要修改或要把几个表的数据组合成一个数据集后再打印,这些操作对于delphi中的报表程序来说无能为力,而在大多数的电脑上都装有office套件,我们能不能利用EXCEL的表格处理能力和固有的多种打印输出功能呢?答案是肯定的。我们利用EXCEL能处理DBASE文件的功能,只要我们的数据库文件和DBASE兼容就可以了。
  在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的表格功能和多打印功能,不必再去设计繁锁的报表程序了;我在为我单位编写的发票统计系统使用了这种方式,使用者感觉到很方便

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

gnuljf

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值