delphi fastreport 用法
快速报表系统FastReport4用户使用手册_修改版

“Reprint headers on new page”决定在多个页面打印时,是否在每个页面当打印输出标题栏。
“Side by side cell”:是否允许合并单元格“Join equal cells”选项,当数值相等时是否可以合并单元格。
使用对象查看器的属性设置也可以设置这些内容。
第八章FastReport允许用户插入chart制表组件到报表中,这样,在FastReport面板上的“TfrxCharObject”组件就必须应用上。
这个组件基于“TeeChart”动态库,在delphi 中需要将它包含在工程中。
我们通过以下示例先进行简单说明,连接DBDemos中的countory表,数据内容如下:在delphi环境中创建一个新的工程,添加“TTable”,“TfrxChartObject”,“TfrxDBData”,“TfrxReport”组件,并设置属性值:Table1:DatabaseName = 'DBDEMOS'TableName = ''frxDBDataSet1:DataSet = Table1UserName = 'Country'进入到报表设计器页面,并连结设置数据源。
在报表的设计页上放置一个“chart”组件,并调整其大小(18X8cm)。
双击组件,打开组件的编辑器窗口。
char编辑器区域说明:1:chart结构,一个chart包含有几个制表系统。
2:组件监视器,显示所选组件的属性。
3:连结chart的series的数据属性。
开始的界面显示如上,首先添加一个或几个series,在1区点击按钮,添加一个Pie。
有许多可用的不同的类型的series。
添加一个系列之后,3区被激活。
首先选择数据源,设置Label和pie字段。
点击确定按钮,关闭编辑器窗口,然后预览。
还如何改良以下报表呢?首先,将数据按升序方式进行排序。
再次进入编辑器,选择要设置的series,在3区设置选项。
Fastreport使用经验(转)在Delphi程序中访问报表对象

文字错位,而且表格会打印得很小。而且原文中打印坐标的确定,必须靠反复的试验才能达到比较满意的效果。
针对原目标,笔者设计了一段程序。首先在窗体上添加一个DBGrid来显示我们所要打印的数据,在这里,DBGrid不只是起到显示数据的作
用,而且用户对DBGrid作的调整,例如改变了各字段的排列顺序,各字段的显示宽度等,都将直接反映到打印结果中去,也就是说,我们实际
******共用TFrxreport及TfrxDBDataSet
一个程序中,不管多么大的程序,只要打印或预览时是模式的,则完全可以共用一个TFrxreport变量及几个TfrxDBDataSet。只不过,要注意完
成一个报表程序的步骤,主要是下面几步
1)清除报表,得到一个全新的报表内容。
Frxreport1.clear。
可能需要传递很多参数,效率低下。
2)把不同报表的控制放到脚本中,可以实现报表的模块化,程序只是简单的设置数据集的关系,并加载硬盘上的报表文件,不同报表的不同实
现方式,显示方式,均放到报表文件中,程序简洁,易维护,易升级。
当然,这样的缺点就是程序中加载报表时的数据集别名必须与设计报表时的别名一致。
TopBlank=1;
BottomBlank=1;
var
PointX,PointY:integer;
PointScale,PrintStep:integer;
function PelsTomm(Pels:Extended):Extended;
begin
Result:=Pels/Screen.PixelsPerInch*25.4;
end;
procedure PrintSerial(Frx:TFrxReport;SequencePage:Byte=0);
FastReport4(Delphi)动态生成报表

字段名、字段数不确定时,用FastReport4 动态生成报表Delphi xe3 + FastReport4.14.1ADOConnection,ADOQuery,DatasetProvider,ClientDataSet,DataSource,FrxDBDataset1,FrxReport屬性設置,不在這裡詳述。
效果圖:unit Unit1;interfaceusesWinapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids, Datasnap.Provider, Data.Win.ADODB, Data.DB, Datasnap.DBClient, frxClass, frxPreview, frxDesgn, frxDBSet;typeTForm1 = class(TForm)ADOConnection1: TADOConnection;DataSource1: TDataSource;ClientDataSet1: TClientDataSet;ADOQuery1: TADOQuery;DataSetProvider1: TDataSetProvider;DBGrid1: TDBGrid;Button1: TButton;Button2: TButton;frxDBDataset1: TfrxDBDataset;frxDesigner1: TfrxDesigner;frxPreview1: TfrxPreview;frxReport1: TfrxReport;Button3: TButton;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);procedure Button3Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);beginclientdataset1.Close;mandText:= 'select user_id,user_name ,sal_no from t_user '; clientdataset1.Open;end;procedure TForm1.Button2Click(Sender: TObject);varpDataPage :TfrxDataPage;pPage :TfrxReportPage ;pBand :TfrxBand;pDataBand :TfrxMasterData ;pMemo :TfrxMemoView ;i:integer;x,y,z,width:extended;begin// 清除原报表内容frxReport1.Clear;// 设置Report 的DataSetfrxReport1.DataSets.Add(frxDBdataset1);// 添加Report 的Data 页pDataPage := TfrxDatapage.Create(frxReport1);// 增加报表显示内容pPage := TfrxReportPage.Create(frxReport1);ppage.CreateUniqueName();// 设置Fields 的默认尺寸pPage.SetDefaults;// 页面方向// pPage.Orientation := poLandscape;// 页面边距pPage.TopMargin := 20;pPage.LeftMargin := 20;pPage.RightMargin := 20;pPage.BottomMargin := 20;// 创建报表Title BandpBand := TfrxReportTitle.Create(pPage);pBand.CreateUniqueName();pBand.Top := 0;pBand.Height := 20;// 创建显示Field 的MemopMemo := TfrxMemoView.Create(pBand);pMemo.CreateUniqueName();pMemo.Text := 'Hello FastReport!';pMemo.Height := 20;// 风格pMemo.Align := baWidth;// 创建DataBandpDataBand := TfrxMasterData.Create(pPage);pDataBand.CreateUniqueName();pDataBand.DataSet := frxDBDataset1;pDataBand.Top := 100;pDataBand.Height := 20;// 将Memo 添加到DataBand 上pMemo := TfrxMemoView.Create(pDataBand);pMemo.CreateUniqueName();// 连接数据pMemo.DataSet := frxDBDataset1;// 显示username 字段pMemo.DataField := 'user_name';pMemo.SetBounds(0, 0, 100, 20);// memo 带边框pMemo.Frame.Typ := [ftLeft , ftRight , ftTop , ftBottom];// 风格pMemo.HAlign := haRight;// 报表显示frxReport1.ShowReport(true);end;procedure TForm1.Button3Click(Sender: TObject);varpDataPage :TfrxDataPage;pPage :TfrxReportPage ;pBand :TfrxBand;pDataBand :TfrxMasterData ;pMemo :TfrxMemoView ;pTitle :TfrxReportTitle;pPageHeader :TfrxPageHeader;pPagetFooter :TfrxPageFooter;i:integer;x,y,z,width:extended;poPortrait, poLandscape: TPrinterOrientation ;beginwidth:= 80 ; // 字段宽度x:= 0 ;y:= 0 ;z:= 0 ;frxReport1.Clear;frxReport1.DataSets.Add(frxDBdataset1);pDataPage := TfrxDatapage.Create(frxReport1);pPage := TfrxReportPage.Create(frxReport1);ppage.CreateUniqueName();pPage.SetDefaults;pPage.Orientation := poLandscape; // 橫印,poPortrait: 直印(默認),pPage.TopMargin := 10; // 上邊距(mm)pPage.LeftMargin := 20; // 左邊距(mm)pPage.RightMargin := 20; //右邊距(mm)pPage.BottomMargin := 15; // 下邊距(mm){pBand := TfrxReportTitle.Create(pPage);pBand.CreateUniqueName();pBand.Top := 0;pBand.Height := 20;}pTitle := TfrxReportTitle.Create(pPage);pTitle.CreateUniqueName();pTitle.Top := 0;pTitle.Height := 30;// 標題頭pMemo := TfrxMemoView.Create(pTitle);pMemo.CreateUniqueName();pMemo.Text :='AutoReport for FastReport4.14';pMemo.SetBounds(0,0,300,30); //MemoView :長、寬、高;pMemo.Font.Size := 14 ; // 14號字pMemo.Font.Style :=[fsBold]; // 粗體pMemo.Height := 30;pMemo.Align := baCenter; // MemoView:居中;// 創建表頭欄pPageHeader := TfrxPageHeader.Create(pPage); pPageHeader.CreateUniqueName;pPageHeader.Top := 50;pPageHeader.Height:= 20;for i := 0 to clientDataset1.FieldCount -1 dobegin// 表頭欄位pMemo := TfrxMemoView.Create(pPageHeader);pMemo.CreateUniqueName();pMemo.Text := clientDataset1.Fields[i].FieldName; pMemo.SetBounds( i * width, 0, width, 20);pMemo.Frame.Typ:=[ftLeft , ftRight , ftTop , ftBottom]; pMemo.Height := 20;// 风格// pMemo.Align := baWidth;pMemo.Align := baLeft;end; // end for ;// 创建DataBandpDataBand := TfrxMasterData.Create(pPage);pDataBand.CreateUniqueName();pDataBand.DataSet := frxDBDataset1;pDataBand.Top := 100;pDataBand.Height := 20;for i := 0 to clientdataset1.FieldCount-1 dobegin// 将Memo 添加到DataBand 上pMemo := TfrxMemoView.Create(pDataBand);pMemo.CreateUniqueName();// 连接数据pMemo.DataSet := frxDBDataset1;// 显示username 字段pMemo.DataField := clientDataset1.Fields[i].FieldName;pMemo.SetBounds( i * width, 0, width, 20); // setBountds(X横行起点,Y起点,字段宽度,字段高度)// memo 带边框pMemo.Frame.Typ:=[ftLeft , ftRight , ftTop , ftBottom];// 风格// pMemo.HAlign := haRight; // 字右對齊;pMemo.HAlign := haLeft;end; // end for ;// 报表显示frxReport1.ShowReport(true);end;end.。
fastreport问题集_delphi教程

fastreport问题集_delphi教程---------------- 使用自定义函数----------------------------------------Q: 我怎样添加我的自定义函数?A: 使用TfrReport.OnUserFunction 事件. 这里有一个简单的例子:procedure TForm1.frReport1UserFunction(const Name: String;p1, p2, p3: Variant; var val: Variant);beginif AnsiCompareText(…SUMTOSTR…, Name) = 0 thenval := My_Convertion_Routine(frParser.Calc(p1));end;然后,你就能在报表(所有表达式或脚本)的所有地方使用SumToStr 函数了。
Q: 不过他仅仅能工作在一个TfrReport组件中。
可我想在所有地方(在所有的TfrReport组件中)使用的我的自定义函数?A: 使OnUserFunction event 句柄作为所有组件的公用句柄。
如果你不能做到这一点,你需要创建函数库:typeTMyFunctionLibrary = class(TfrFunctionLibrary)publicconstructor Create; override;procedure DoFunction(Fno: Integer; p1, p2, p3: Variant;var val: Variant); override;end;constructor TMyFunctionLibrary.Create;begininherited Create;with List dobeginAdd(…DATETOSTR…);Add(…SUMTOSTR…);end;end;procedure TMyFunctionLibrary.DoFunction(Fno: Integer; p1, p2, p3: Variant; var val: Variant);beginval := 0;case Fno of0: val := My_DateConvertion_Routine(frParser.Calc(p1));1: val := My_SumConvertion_Routine(frParser.Calc(p1));end;end;要注册函数库,调用frRegisterFunctionLibrary(TMyFunctionLibrary);要卸载函数库,调用frUnRegisterFunctionLibrary(TMyFunctionLibrary);Q: 我怎样将我的函数添加到函数列表中(用表达式生成器)?A: 使用frAddFunctionDesc 过程(在FR_Class 单元中): frAddFunctionDesc(FuncLib, …SUMTOSTR…, …My functions…,…SUMTOSTR(<Number>)/Converts number to its verbal presentation.…);注意: "/" 符号是必须的! 他从他的描述中分隔函数语法。
delphi7安装fastreport的方法

FastReport For Delphi7 通用安装方法【转】FastReport For Delphi7 通用安装方法安装前请册除原有的FR控件。
1. "Tools|Environmet options..."中的"Library"标签面下"Library path"添加FastReport路径。
FastReport\FastQBFastReport\FastScriptFastReport\SourceFastReport\Source\BDEFastReport\Source\ADOFastReport\Source\IBXFastReport\Source\DBXFastReport\Source\ExportPack2. 生成汉化文件运行"recompile.exe"文件,设置相应选项,我的设置如下:1.Select the compiler 设置为Delphi72.Select the FastReport Version 设置为 Enterprise3.Select the TeeChart version 设置为TeeChartStd4.What you want to do 下的Change language To: 设置为Chinese (这个还用说)3. 编译运行包(其它版本的Delphi选择相对应的文件编译)- FastReport\FastQB\fqb70.dpk- FastReport\FastScript\fs7.dpk- FastReport\FastScript\fsDB7.dpk- FastReport\FastScript\fsBDE7.dpk- FastReport\FastScript\fsADO7.dpk- FastReport\FastScript\fsIBX7.dpk- FastReport\Source\frx7.dpk- FastReport\Source\frxDB7.dpk- FastReport\Source\ADO\frxADO7.dpk- FastReport\Source\IBX\frxIBX7.dpk- FastReport\Source\DBX\frxDBX7.dpk- FastReport\Source\ExportPack\frxe7.dpk4. 复制以下文至Windows\System32目录下- fs7.bpl- fsDB7.bpl- fsBDE7.bpl- fsADO7.bpl- fsIBX7.bpl- frx7.bpl- frxDB7.bpl- frxADO7.bpl- frxBDE7.bpl- frxIBX7.bpl- frxDBX7.bpl- frxe7.bpl如果你的Delphi7没有修改环境变量那么这些文件默认是在\Borland\Delphi7\Projects\Bpl目录中。
Delphi FastReport报表常用方法

Delphi FastReport报表常用方法1.单据中有多行数据,但预览时只显示部分内容,或者打印内容行与行之间有间隔OR属性中:设置RowCount=0,Start New Page为False;Stretched为True.说明:RowCount:控制总共打印几行;RowCount=0是打印全部;Start New Page:打印前先跳页;每页打印一行;Stretch:表身自动伸缩根据表身内容;2.在打印中设置金额或数量的小数位数FASTREPOR属性中:使用DisplayFormat(数据显示格式)——数字——1234.50%2.0f:以整数形式显示;%2.2f:显示两位小数;%2.3f:显示三位小数位,可根据情况进行调整。
3.在打印中设置日期/时间的格式FASTREPOR属性中:使用DisplayFormat(数据显示格式)——日期/时间——11.28.2002mm.dd.yyyy:显示月.日.年mm.dd:显示月.日mm:显示两位的月4.当栏位的值为零时显示为空FASTREPOR属性中:设置HideZeros(数字前面的0是否显示)为True5.自动换行1)选择数据单元进行群组;2)StretchMode为smMaxHtight;WordWrap为True;Stretched为True.说明:StretchMode:对象伸缩的行为;WordWrap:文本是否自动换行;6.合计[SUM(<进/销/退/折表身档."AMTN_NET">,MasterData2)]7.每页合计将定义好的合计函数放到‘栏尾’中即可。
8.全表合计将定义好的合计函数放到‘报表合计’中即可。
9.金额大写在报表设计中使用函数:ConbertNumToChinese()合计金额大写:[ConvertNumToChinese(SUM(<进/销/退/折表身档."AMTN_NET">,MasterData2))]负数合计金额大写:[ConvertNumToChinese(Abs(SUM(<进/销/退/折表身档."AMTN_NET">,MasterData2)))]10.报表中打印行数在报表设计中使用变量——系统变量Line#11.连打1)单据——速查,查出要打印的单据;2)打印——查询数据——预览——打印,选择多张单据进行连打。
DELPHI第三方控件及组件大全(安装方法与使用)

DELPHI第三方控件及组件大全(安装方法与使用)DELPHI是一种非常流行的应用程序开发环境,用于创建Windows应用程序。
作为一个强大的集成开发环境,DELPHI提供了许多内置的控件和组件,但有时候这些内置的功能并不能完全满足我们的需求。
在这些情况下,我们可以使用第三方控件和组件来扩展DELPHI的功能。
以下是一些常用的DELPHI第三方控件和组件以及安装方法和使用介绍。
FastReport是一款用于生成报表的控件,它提供了丰富的报表设计和输出选项。
使用FastReport,可以轻松地创建各种类型的报表,如表格报表、条形码报表、图形报表等。
它还支持多种输出格式,包括PDF、Excel、HTML等。
TeeChart是一个功能强大的图表控件,可以帮助你在应用程序中添加各种类型的图表,如柱状图、饼图、折线图等。
它提供了丰富的图表样式和定制选项,使你可以根据需要创建独特的图表。
Devart提供了一系列数据库组件,用于与各种类型的数据库进行交互,如MySQL、Oracle、SQL Server等。
这些组件提供了方便的API和功能,使你可以轻松地连接、查询和更新数据库中的数据。
VirtualTreeview是一个高性能的虚拟树控件,用于显示大量数据。
相比于传统的树控件,VirtualTreeview具有更快的显示速度和更小的内存占用。
通过使用VirtualTreeview,你可以在应用程序中展示和管理大规模的树形数据。
这些第三方控件和组件在DELPHI开发过程中是非常有用的工具。
使用它们可以大大提高开发效率和应用程序的质量。
安装方法有所不同,但一般来说,你只需按照安装向导进行操作即可。
安装完成后,你可以在DELPHI的开发环境中使用它们。
使用这些控件和组件的方法也各不相同,具体的使用方法可以参考各个控件和组件的官方文档或教程。
一般来说,你需要将控件或组件放置在窗体上,并根据需要进行配置和定制。
然后,你可以在代码中使用相应的属性和方法来操作控件或组件。
fastreport使用教程之图表

fastreport使用教程之图表FastReport允许用户插入chart制表组件到报表中,这样,在FastReport 面板上的“TfrxCharObject”组件就必须应用上。
这个组件基于“TeeChart”动态库,在delphi中需要将它包含在工程中。
我们通过以下示例先进行简单说明,连接DBDemos中的countory表,数据内容如下:在delphi环境中创建一个新的工程,添加“TTable”,“TfrxChartObject”,“TfrxDBData”,“TfrxReport”组件,并设置属性值:Table1:DatabaseName='DBDEMOS'TableName='country.db'frxDBDataSet1:DataSet=Table1UserName='Country'进入到报表设计器页面,并连结设置数据源。
在报表的设计页上放置一个“chart”组件,并调整其大小(18X8cm)。
双击组件,打开组件的编辑器窗口。
char编辑器区域说明:1:chart结构,一个chart包含有几个制表系统。
2:组件监视器,显示所选组件的属性。
3:连结chart的series的数据属性。
开始的界面显示如上,首先添加一个或几个series,在1区点击按钮,添加一个Pie。
有许多可用的不同的类型的series。
添加一个系列之后,3区被激活。
首先选择数据源,设置Label和pie字段。
点击确定按钮,关闭编辑器窗口,然后预览。
还如何改良以下报表呢?首先,将数据按升序方式进行排序。
再次进入编辑器,选择要设置的series,在3区设置选项。
1、chart数据中数字的限制上面的制表看上去非常拥挤,在chart中有特别多的值,而有些看不见。
FastReport可以设置显示数据的限制性。
因此不被限制的值可以在制表中显示。
在我们的示例中,包含18个数值,而最多友8个能显示,键入编辑器,进行设置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
delphi fastreport 用法
Delphi FastReport 用法
Delphi 是一种强大的编程语言,它提供了快速开发应用程序的
能力。
而 FastReport 是一个插件,能够为 Delphi 提供报表设计和
生成功能。
本文将介绍 Delphi FastReport 的用法,包括报表设计、
数据源使用、导出和打印等。
1. 报表设计
打开 Delphi,创建一个新的项目,加入 FastReport 模块后,双击报
表设计器,进入报表设计界面。
在左侧的工具栏中,有各种控件,如
标签、文本框、图像等。
可以将这些控件拖到报表上,设置它们的属性,如字体、大小、颜色等。
2. 数据源使用
在报表设计中,如何引用数据源呢?首先需要将数据源组件(如FIBPlus、IBX、ADO 等)添加到 Delphi 项目中。
然后,可以在报表
设计器中找到 Data Tree 栏,在其中选择需要使用的数据源和数据表。
3. 报表导出
在制作完报表后,需要将其导出为其他格式,比如 PDF、Excel、Word、HTML 等。
FastReport 在导出前,需要安装相关的导出 DLL 文件。
再
使用 Export 模块,选择需要导出的文件格式,单击导出即可。
4. 报表打印
制作好的报表导出后,还需要将其打印出来。
EasyPrint 模块为FastReport 提供了强大的打印功能。
首先需要在程序中载入
EasyPrint 模块,并设置打印参数。
接着使用 Report.Print 方法,
即可将报表打印出来。
总结:以上是 Delphi FastReport 的简单用法介绍,具体使用
还需要根据实际情况进行调整。
同时,建议多多研究相关的 API 文档
和示例代码,以加深对 FastReport 和 Delphi 的理解和掌握。