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

原创 2001年05月12日 21:02:00
 

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的表格功能和多打印功能,不必再去设计繁锁的报表程序了;我在为我单位编写的发票统计系统使用了这种方式,使用者感觉到很方便

DELPHI 打印预览功能

在很多应用程序中,都需要程序具有打印预览功能,以避免用户由于选择不当出现打印错误。           预览实现方式为通过创建一个Tpanel的派生类并公开它的canvas属性比例尺或视区范围,使用...
  • lailai186
  • lailai186
  • 2013年05月16日 13:43
  • 1943

引用Delphi操作EXCEL (详细)

引用Delphi操作EXCEL    来源:http://wenjieshiyu.blog.163.com/blog/static/10739413201072033115869/   De...
  • chelen_jak
  • chelen_jak
  • 2011年12月14日 09:09
  • 3275

Delphi 导出、导入Excel的一个快速方法

The quickest way is to use an array of Variant,and just pass the entire array to Excel: var     xls,...
  • lcfeng1982
  • lcfeng1982
  • 2015年02月13日 11:03
  • 3505

数据结构11————二叉树的定义性质及储存

数据结构学习笔记11————二叉树的定义性质及储存 内容1.二叉树的定义 2.二叉树的性质 3.二叉树的存储...
  • qq_38499859
  • qq_38499859
  • 2017年12月14日 21:12
  • 126

算法————笔试内容--->树(一)

树:是 n(n≥0)个结点的有限集合。如果该集合为空,称为空树。在任意一棵非空树中:...
  • zs2538596
  • zs2538596
  • 2014年09月03日 11:27
  • 367

Delphi OLE方法操作Excel

Delphi OLE方法操作Excel  来源:http://www.ltesting.net/ceshi/ruanjianceshikaifajishu/rjcskfyy/2008/0519/15...
  • chelen_jak
  • chelen_jak
  • 2011年12月12日 10:24
  • 4890

Excel中普通视图与打印预览内容显示不一致的解决方法

一、问题:需要打印Excel表中的内容,但在“普通视图”中将格式调好后,点击“打印预览”一看,嘿,一些单元格中的内容又不对了。而最终打印出的内容又是与“打印预览”一致的,“打印预览”有问题,打印出来势...
  • wander2
  • wander2
  • 2015年07月23日 17:45
  • 26629

学完这个你就成为excel高手了!(Delphi对Excel的所有操作)逐个试试!

学完这个你就成为excel高手了!(Delphi对Excel的所有操作)逐个试试! 一) 使用动态创建的方法 首先创建 Excel 对象,使用ComObj: var ExcelApp: Variant...
  • abclm
  • abclm
  • 2011年03月25日 11:43
  • 10382

[Delphi-码农]Delphi EXCEL导入

procedure TParameterALterFines.btnImportExcelClick(Sender: TObject); const BeginRow = 2; Begi...
  • CrackLibby
  • CrackLibby
  • 2015年05月22日 14:05
  • 1203

Delphi调用Excel设置单元格的格式

在做设计过程中,需要把数据内容导入到Excel中,可是每次导入EXcel之后,总有一些数据不能正常显示,比如'123456789012'显示为科学技术形式'1.23457E+11’,还有以'0’开头的...
  • beyondqd
  • beyondqd
  • 2011年05月26日 08:49
  • 6242
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DELPHI下调节器用EXCEL为其编辑和打印
举报原因:
原因补充:

(最多只允许输入30个字)