报表的处理一向是数据库程序设计中的焦点。方便有效地制作适合各类业务的报表有时甚至关系到系统的成败。本文就在Delphi5.0下使用Formula-One ActiveX控件如何实现报表的处理进项详细的阐述。 第一步:安装控件。
    打开Delphi5.0,在ActiveX控件标记页中我们可以找到TF1book控件。这个控件是使用的VCL Formula One Library1.0(VCF132.ocx),在此我们使用TideStone Formula One Library 6.1(TTF16.ocx)。要获得TTF16.ocx文件,您可以在本站(http://go.163.com/~ssudi)免费下载正式版本。正确安装后,您可以在系统的Imports目录下找到TTF160_LIB.pas文件。 第二步:设计程序界面。 
程序主界面如下所示。 
 
(1)设计程序菜单项:    程序菜单包括文件、编辑、插入、格式、工具、帮助共六部分。 
"文件"菜单如右图所示: 
新建:新建一个文档(本文以Excel97格式为例) 
打开:打开一个文档(本文以Excel97格式为例) 
保存:保存到一个文档(本文以Excel97格式为例) 
另存为:另保存到一个文档 
打印设置:设置打印机属性 
打印:打印工作区中的文档 
退出:退出系统 
 
"编辑"菜单如右图所示: 
拷贝单元格格式: 
选择所有类:选择工作表中的所有类,包括按钮、图片、列表框等。 
排序:按用户指定格式对数据进行排序,用户可以根据不同的关键字按行或列进行递增或递减排序。 
清除:清除包括三个选项。清除全部,是指清除用户所选择区域内的表格的格式及数据。而后两项则仅清除用户所选区域的表格的格式或内容。 
查找:查找指定值 
替换:替换指定值,并可返回替换的个数。 
跳转:跳转到指定的单元格。"插入"菜单如右图所示: 
单元格:在用户指定位置插入单元格 
行:在用户指定位置插入行 
列:在用户指定位置插入列 
分页:可水平分页、垂直分页、垂直水平分页。 
绘图类:在工作区绘制图形。 
窗口类:在工作去绘制按钮、列表框、下拉框 
"格式"菜单如下图所示 
字体:设置用户所选区域字体格式。 
单元格:设置单元格格式。 
工作表:保护工作表、设置工作表属性。 
 
(2)设计程序工具条 工具条格式如下如所示:  
 
第三步:功能实现。 
(1) 文件的存取。 
打开文件: 
procedure Tfrmf1main.openfileExecute(Sender: TObject); 
begin 
if opendialog1.Execute then 
Mf1book1.ReadEx(opendialog1.filename); 
mf1book1.ShowTabs:=0;//关闭tab,使用户只工作与当前表 
end; 保存文件 
procedure Tfrmf1main.saveasExecute(Sender: TObject); 
begin
if savedialog1.Execute then
Mf1book1.WriteEx(savedialog1.filename,$0000000B);//保存为Excel97格式的文件*.xls 
end; 
(2) 文档的打印与预览 打印文档: 
procedure Tfrmf1main.printExecute(Sender: TObject); 
begin 
mf1book1.FilePrint(false);//此参数若为true则出现打印属性框,否则不出现 
end; 打印预览 
procedure Tfrmf1main.previewExecute(Sender: TObject); 
begin 
mf1book1.FilePrintPreview; 
end; (3) 单元格操作 
合并单元格: 
procedure Tfrmf1main.mergesellExecute(Sender: TObject); 
var cheng:If1cellformat; 
begin 
cheng:=mf1book1.GetCellFormat; 
cheng.Set_MergeCells(true); 
Mf1book1.SetCellFormat(cheng); 
end; 
画表格框: 
procedure Tfrmf1main.border1Execute(Sender: TObject); 
var cheng:If1cellformat; 
begin 
cheng:=mf1book1.GetCellFormat; 
cheng.Set_BorderStyle($00000000,$00000002); 
cheng.set_borderstyle($00000001,$00000002); 
cheng.set_borderstyle($00000002,$00000002); 
cheng.set_borderstyle($00000003,$00000002); 
Mf1book1.SetCellFormat(cheng); 
End; 
画表格线: 
procedure Tfrmf1main.border2Execute(Sender: TObject); 
var cheng:If1cellformat; 
begin 
cheng:=mf1book1.GetCellFormat; 
cheng.Set_BorderStyle($FFFFFFFF,$00000001); 
cheng.set_borderstyle($FFFFFFFE,$00000001); 
Mf1book1.SetCellFormat(cheng); 
end; 设置对齐方式 
procedure Tfrmf1main.alignleftExecute(Sender: TObject); 
var cheng:If1cellformat; 
begin 
cheng:=mf1book1.GetCellFormat; 
cheng.AlignHorizontal:=f1halignleft; 
cheng.alignvertical:=f1valigncenter; 
Mf1book1.SetCellFormat(cheng); 
End; 由于Formula-One的强大功能,不可能仅此阐述清楚。 其他功能,及有关Formula-One的更详细的解释我将分专题进行说明,并刊登在本站。希望广大编程爱好者及程序员朋友关注本站。我将每天上载专题文章。