- 浏览: 101580 次
- 性别:
- 来自: 深圳
最新评论
-
zpap:
这样的的设置好像是有问题的..
JDK环境变量配置小工具 -
qiaoxia_lan:
都不能访问,这是怎么回事啊。
为JAVA爱好者提供了超过400本电子书和3部视频 -
Tortoise:
最好多一些视频文件,个人感觉比较好一点
为JAVA爱好者提供了超过400本电子书和3部视频 -
skj198568:
看看了,好书还不少。
为JAVA爱好者提供了超过400本电子书和3部视频 -
njuptsoz:
谢谢分享!
JDK环境变量配置小工具
1、FastReport如何打印表格式的空行?
var
PageLine: integer; //在現在頁列印到第幾行
PageMaxRow: integer=15; //設定每頁列數
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
PageLine := <Line> mod PageMaxRow;
if (PageLine = 1) and (<line> > 1) then
Engine.newpage;
child1.visible := False;
end;
//Footer1高度設為0
procedure Footer1OnBeforePrint(Sender: TfrxComponent);
var
i: integer;
begin
i := iif(PageLine=0, PageMaxRow, PageLine);
child1.visible := True;
while i < PageMaxRow do
begin
i := i + 1;
Engine.ShowBand(Child1); //印空白表格
end;
child1.visible := False;
end;
begin
end.
2\FastReport自整理技巧
http://www.delphibbs.com/keylife/iblog_show.asp?xid=22483
3\Delphi中用FastReport制作报表
http://www.delphibbs.com/keylife/iblog_show.asp?xid=22375
此为转贴:
[FORMATDATETIME(‘mm-dd‘, [IBqryShipDate."CLOSEDATE"])]
[FORMATDATETIME(‘mm/dd/yy‘, [IbqryOrderForm."ORDERDATE"])]
金额总计:[FORMATFLOAT(‘#########0.00‘, [TotalAmount])]
订单数量:[COUNT(band1)]
数量合计:[SUM([IBqryShipDate."QUANTITY"])]
婚否:[IF([IbqryPersonal."ISMARRIAGED"]=1, ‘是‘, ‘否‘)]
[IF([qryData."CLOSEDATE"]=0,‘‘,[FORMATDATETIME(‘mm-dd-yy‘, [qryData."CLOSEDATE"])])]
[IF([qryPrint."CURDATE"]=0,‘‘,[FORMATDATETIME(‘mm-dd‘,[qryPrint."CURDATE"])])]
[IF([qryPrint."STYPE"]=‘0‘, [Ban], [Huo])]
if Length(Trim([MainADOQuery."工序名称"])) mod 35 =0 then
begin
bMData.height := 20 * INT(Length(Trim([MainADOQuery."工序名称"]))/35);
Memo39.Height := 20 * INT(LENGTH(TRIM([MainADOQuery."工序名称"]))/35);
end
else begin
bMData.height := 20 * (INT(Length(Trim([MainADOQuery."工序名称"]))/35)+1);
Memo39.Height := 20 * (INT(LENGTH(TRIM([MainADOQuery."工序名称"]))/35)+1);
end
Fast Report 问题集
---------------- 使用自定义函数 ----------------------------------------
Q: 我怎样添加我的自定义函数?
A: 使用 TfrReport.OnUserFunction 事件. 这里有一个简单的例子:
procedure TForm1.frReport1UserFunction(const Name: String;
p1, p2, p3: Variant; var val: Variant);
begin
if AnsiCompareText(‘SUMTOSTR‘, Name) = 0 then
val := My_Convertion_Routine(frParser.Calc(p1));
end;
然后,你就可以在报表(任何表达式或脚本)的任何地方使用 SumToStr 函数了。
Q: 但是它仅仅能工作在一个TfrReport组件中。可我想在任何地方(在所有的TfrReport组件中)使用的我的自定义函数?
A: 使 OnUserFunction event 句柄作为所有组件的公用句柄。如果你不能做到这一点,你需要创建函数库:
type
TMyFunctionLibrary = class(TfrFunctionLibrary)
public
constructor Create; override;
procedure DoFunction(FNo: Integer; p1, p2, p3: Variant;
var val: Variant); override;
end;
constructor TMyFunctionLibrary.Create;
begin
inherited Create;
with List do
begin
Add(‘DATETOSTR‘);
Add(‘SUMTOSTR‘);
end;
end;
procedure TMyFunctionLibrary.DoFunction(FNo: Integer; p1, p2, p3: Variant;
var val: Variant);
begin
val := 0;
case FNo of
0: 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.‘);
注意: "/" 符号是必须的! 它从它的描述中分隔函数语法。
FuncLib 被声明为你自己的函数库 (如果你不使用函数库可以将其设置为nil). 当函数库未注册时,所有它的函数将自动从函数列表中删除。
---------------- 使用变量 -------------------------------------
Q: 我怎样编程实现填充变量列表(在数据词典中)?
A: 数据词典中的所有变量及分类都被存储在 TfrReport.Dictionary.Variables 中.
with frReport1.Dictionary do
begin
// 创建分类(名称用空白)
Variables[‘ New category‘] := ‘‘;
// 创建变量
Variables[‘New Variable‘] := ‘CustomerData.Customers."CustNo"‘;
Variables[‘Another Variable‘] := ‘Page#‘;
end;
Q: 我定义了字符串变量:
with frReport1.Dictionary do
Variables[‘Month‘] := ‘March‘;
但是当我运行报表是,出现了错误,为什么?
A: 因为 FastReport 假定数据词典中的字符串变量值是一个表达式,它需要分析、计算它。
可以使用其它的方法:
with frReport1.Dictionary do
Variables[‘Month‘] := ‘‘‘‘ + ‘March‘ + ‘‘‘‘;
或者, 使用 frVariables 来传输固定数据到报表。
Q: 我不想在数据词典中显示某些数据集?
A: 使用 TfrReport.Dictionary.DisabledDatasets:
with frReport1.Dictionary do
begin
// 关闭该数据集
DisabledDatasets.Add(‘CustomerData.Bio‘);
// 或者, 关闭整个数据模块/窗体
DisabledDatasets.Add(‘CustomerData*‘);
end;
Q: 我怎样将数据传送到报表?
A: 有几个方法可以实现它. 第一是使用全局对象 frVariables (在 FR_Class 单元中被定义):
frVariables[‘My variable‘] := 10;
这段代码创建了一个名称为“My variable”,值为 10 的变量。这是最好的传输固定数据的报表的方法。
第二种方法是使用 TfrReport.OnGetValue 事件. 这可以使用这个方法来传送动态数据、记录等。
procedure TForm1.frReport1GetValue(ParName: String; var ParValue: Variant);
begin
if ParName = ‘MyField‘ then
ParValue := Table1MyField.Value;
end;
最后, 第三种方法是通过编程在数据词典中定义变量(可以参考以前的问题):
with frReport1.Dictionary do
begin
Variables[‘MyVariable‘] := ‘CustomerData.Customers."CustNo"‘;
Variables[‘Another Variable‘] := ‘10‘;
end;
Q: 我能在报表和程序间传送数据吗?
A: 使用 frVariables 对象. 如果你在报表的任何对象的脚本中写入以下代码:
MyVariable := 10
那么,在你的程序中,你可以使用以下代码来获取 MyVariable 的值:
v := frVariables[‘MyVariable‘];
---------------- 脚本 (FastReport Pascal) ---------------------------------
Q: Band 中是否可以使用脚本?
A: 当然. 选择 band ,然后按 Ctrl+Enter 或在对象浏览器中选择 "OnBeforePrint" 属性。
Q: 报表页中是否可以使用脚本?
A: 当然. 选择页 (在空白处单击) ,然后在对象浏览器中选择 "OnBeforePrint" 属性。如果该页是一个对话框窗体,那么这个属性就是 "OnActivate".
Q: 我有两个对象: Memo1 和 Memo2. 我能否在 Memo1 的脚本中调用 Memo2 的属性和方法?
A: 当然, 例如,你可以这样做: 对象名.属性名.
Q: 在脚本中,我可以使用对象的哪些属性?
A: 几乎所有你能在对象浏览器中看到的属性。例如,可以使用 Font.Name, Font.Size等来存取字体属性。
---------------- 其它问题 --------------------------------------------
Q: 怎样改变多页报表中某一页的顺序?
A: 拖动页标签到目的位置。
Q: 我想查看所有的字段及变量,我想在报表中使用列表来实现它?
A: 设置 TfrReport.MixVariablesAndDBFields := True.现在,所有的数据字段及变量可在“插入数据字段”对话框中可存取了。
Q: 我不想显示导入选项对话框?
A: 在导入组件(比如,TfrTextExport)中设置所有必需的选项,然后通过设置ShowDialog属性为False来关闭此对话框。
Q: 为什么 TotalPages 变量不起作用? 它总是返回 0.
A: 在你的报表中设置 Two-pass 选项. 要设置它,你需要在报表设计器的“文件”菜单中,打开“报表选项”对话框。
Q: 我用BLOB字段来存储我的报表。当我运行报表设计器时,它显示我的报表未命名?
A: 在运行报表设计器前,这样做:
frReport1.FileName := ‘Name of my report‘;
Q: 我想在重新定义报表设计器中的“打开”及“保存”按钮的功能?
A: 查看 TfrDesigner 组件. 它有几个必需的事件: OnLoadReport 和
OnSaveReport. 这里有一小段代码例子:
procedure TForm1.frDesigner1LoadReport(Report: TfrReport;
var ReportName: String; var Opened: Boolean);
begin
with MyOpenDialog do
begin
Opened := ShowModal = mrOk;
if Opened then
begin
Report.LoadFromBlobField(...);
ReportName := ...;
end;
end;
end;
procedure TForm1.frDesigner1SaveReport(Report: TfrReport;
var ReportName: String; SaveAs: Boolean; var Saved: Boolean);
begin
if SaveAs then
with MySaveDialog do
begin
Saved := ShowModal = mrOk;
if Saved then
begin
Report.SaveToBlobField(...);
ReportName := ...;
end;
end
else
Report.SaveToBlobField(...);
end;
Q: 在 QR 中, 我可以写这样的代码: QRLabel1.Caption := ‘Some text‘. 我可以用FR这样做吗?
A: FR 对象并不是一个组件 (这并不像 QR, RB). 但使用 TfrReport.FindObject 方法可以通过对象名称找到该对象。
var
t: TfrMemoView;
begin
t := TfrMemoView(frReport1.FindObject(‘Memo1‘));
if t <> nil then
t.Memo.Text := ‘FastReport‘;
end;
Q: 我想在用户预览(TfrPreview组件)中自定义热键?
A: 这个组件有个窗口: TForm 属性. 将自定义句柄指定到 Window.OnKeyDown 属性.
Q: Fast Report 2.4 不能装载 FreeReport 2.21 文件?
A: 这仅需要使用16进制数改变报表文件的第一字节,然后在源代码中修改下面的部分。在这些修改之后, 装载报表并保存它. 最后,返回到源代码处.
FR_Class:
function ReadString(Stream: TStream): String;
begin
{ if frVersion >= 23 then}
Result := frReadString(Stream) {else
Result := frReadString22(Stream);}
end;
procedure ReadMemo(Stream: TStream; Memo: TStrings);
begin
{ if frVersion >= 23 then}
frReadMemo(Stream, Memo){ else
frReadMemo22(Stream, Memo);}
end;
FR_Utils:
procedure frReadMemo(Stream: TStream; l: TStrings);
var
s: String;
b: Byte;
n: Word;
begin
l.Clear;
l.Text := frReadString(Stream); exit;
Stream.Read(n, 2);
if n > 0 then
repeat
Stream.Read(n, 2);
SetLength(s, n);
Stream.Read(s[1], n);
l.Add(s);
Stream.Read(b, 1);
until b = 0
else
Stream.Read(b, 1);
end;
function frReadString(Stream: TStream): String;
var
s: String;
n: Integer;
b: Byte;
begin
Stream.Read(n, 4);
SetLength(s, n);
Stream.Read(s[1], n);
if (n > 0) and (s[n] = #$0A) then
SetLength(s, n - 2);
// Stream.Read(b, 1);
Result := s;
end;
Q: 怎样不在打印预览中打印报表?
A: 这里有一段代码:
frReport1.PrepareReport;
frReport1.PrintPreparedReport(‘‘, 1, True, frAll);
或
frReport1.PrintPreparedReportDlg;
Q: 我想在报表中旋转图片。问题是这张图片是由我的应用程序生成的。是否有方法可以在打印前将这幅图片装载到报表中?
A: 使用 TfrReport.OnBeforePrint 事件:
if View.Name = ‘Picture1‘ then
TfrPictureView(View).Picture.LoadFromFile(...) 或
.Assign 或
.你所想要做的任何事情
4、fastreport中如何把数据显示为百分比
DisplayFormat属性,其中的Kind你设置成fkNumeric,FormatStr
[<frxDBDataset1."sjl">*100 #n%2.2f]%”。
发表评论
-
为JAVA爱好者提供了超过400本电子书和3部视频
2009-01-10 14:20 2470http://www.ibook8.com/book/java ... -
http://blog.csdn.net/ycw/
2008-08-08 15:52 843http://blog.csdn.net/ycw/ ... -
WinCVS与CVSNT简明使用手则
2008-08-08 15:51 1223WinCVS与CVSNT简明使用手 ... -
WinCVS与CVSNT简明使用手则
2008-08-08 15:50 11361、前言:CVS是版本控制 ... -
CVS使用手册(推荐)
2008-08-08 15:47 1281版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出 ... -
用cvs实现复杂的权限控制
2008-08-08 15:46 3492作者:张元一这篇文章的基础是:为CVS建立只读用户,如果你对C ... -
CVSNT用户管理方案
2008-08-08 15:46 1130所有这些操作基于的环境和软件版本:WINDOWS2000 Pr ... -
CVS中增加目录及标签和分支
2008-08-08 15:44 30651.在cvs中增加目录. 如果要在CVS中增加一个目录层,而不 ... -
CVS权限设置
2008-08-08 15:43 2267不同用户设置不同的访 ... -
关于CVS在Window2000下的权限管理
2008-08-08 15:40 891一. CVS版本问题 CVS分开客户端和服务器端两个程序 ... -
数据感知控件之浮想联翩
2008-07-19 15:44 1078Delphi制作数据感知控件之浮想联翩 知识点本文共有6个关于 ... -
SQL备份
2008-07-17 10:01 780备份: backupsql := 'backup databa ... -
SQL导入/导出Excel
2008-07-17 10:01 1167这是在CSDN上邹键的东 ... -
portscan程序代码
2008-06-25 16:33 883#include <afxext.h> #incl ... -
CIH 1.4源程序
2008-06-25 16:32 793CIH 1.4源程序 信息来源:黑客防线; ********* ... -
ARP攻击软件源码
2008-06-25 16:29 1361/****************************** ... -
微软ping命令的源代码
2008-06-25 16:29 851/****************************** ... -
MD5破解相关MAKE.bat
2008-06-25 16:27 1036信息来源:xfocus z:\md5coll>MAKE ... -
一段隐藏文件的C++程序源代码
2008-06-25 16:25 2684#include <iostream>#inclu ... -
TCP多线程正向后门源代码
2008-06-25 16:23 1206#!usr/bin/perl -w #duo_xian_nc. ...
相关推荐
PDF格式的FastReport帮助文档通常具有良好的阅读体验,可以方便地打印和离线查阅。这份文档会详细介绍FastReport的各项功能,包括但不限于报表设计界面、组件库、数据源连接、表达式编辑器、预览和导出选项等。PDF...
在这个“FastReport控件帮助与开发文档”中,我们将探讨FastReport的核心功能、设计原理以及如何在实际项目中应用。 1. **FastReport简介** - FastReport是一种基于组件的报表解决方案,它允许开发者在应用程序中...
《FastReport 4 帮助文档》是一个全面介绍FastReport 4及其4.6版本的资源集合,旨在为用户提供详尽的技术支持和指南。FastReport是一款强大的报表设计和开发工具,广泛应用于Windows Forms、ASP.NET、VCL、...
fastreport快速上手手册 这个也是从别的地方下载的 目 录 入门 5 绪言 6 关于FASTREPORT的说明 6 FASTREPORT的历史 6 创建报表 7 数据 8 参数 8 窗体 9 处理 10 准备报表 10 举例:设计一个简单报表 11 FASTREPORT...
《FastReport 2.4 开发指南中文帮助》是一份详尽的文档,旨在为开发者提供在使用FastReport 2.4过程中所需的关键信息和技术支持。FastReport是一款强大的报表设计和开发工具,广泛应用于.NET Framework环境下的应用...
件来实现快速灵活的报表制作和打印,其中有名的控件是FR-Software & A.Tzyganenko 的FastReport。FastReport提 供了能与DELPHI无缝集成的从设计到打印的完整控件包,提供的设计界面友好灵活,对于开发可让用户...
在这个“FastReport中文帮助”中,我们主要会探讨FastReport的基本概念、使用方法以及一些高级特性。 1. **基本概念**: - **报表设计界面**:FastReport的报表设计界面类似常见的图形编辑器,用户可以通过拖放...
FastReport英文帮助文本集合,包括UserManual-en.chm,rogrammerManual-en.chm,EnterpriseEn.chm,DeveloperManual-en.chm等四个文档。
FastReport4是一款强大的报表设计和生成工具,专为开发者提供高效、灵活的报表解决方案。这款软件支持多种编程环境,如.NET Framework和Delphi,能够帮助程序员轻松地在应用程序中集成复杂的报表功能。以下是对...
标签中的"FastReport"和"FastReport中文"是关键词,它们帮助用户搜索和识别与FastReport.NET中文版本相关的资源。"FastReport"代表了报表开发工具本身,而"FastReport中文"则特指这个中文语言包。 在压缩包内的...
在提供的示例中,FastReportExample.zip可能包含了使用VS2010和Qt集成FastReport的代码实例,帮助开发者了解如何在项目中集成和使用FastReport。 FastReport_Activex_4.9.114_Soda_不完全破解.7z这个文件可能是...
此外,FastReport还提供了丰富的SDK和文档,帮助开发者快速上手和深入学习。 总之,FastReport是一款强大的报表工具,通过合理利用其提供的组件和API,开发者可以构建出高效、美观的报表系统,满足不同业务场景的...
delphi fastReport至今最全的三合一教程,内含fastreport中文教程(doc),FastReport_5_demo例子,fastreport官方文档(chm)。看过之后,基本上就能全部掌握fastreport。
在IT行业中,生成和处理二维码已经成为一种常见的需求,特别是在移动应用、数据交换和跟踪系统...同时,理解这些文件的作用和FastReport的API能帮助你更好地控制二维码的生成过程,从而提升应用程序的功能和用户体验。
在ASP.NET应用中,FastReport能帮助开发者快速创建、展示和打印复杂的数据报告。 一、FastReport的基本概念 1. 报表模板:FastReport允许用户通过可视化的设计器创建报表模板,这些模板包含了数据源、表格、图表、...
4. 在线帮助文档:配合汉语包,FastReport的在线帮助文档也会同步翻译成中文,提供详尽的使用指南和API参考,便于开发者查阅和学习。 5. 多语言支持:FastReport的多语言特性不仅适用于用户界面,还可以应用于报表...
**FastReport 4.10 中文帮助手册详解** FastReport是一款强大的报表设计和打印工具,主要用于.NET Framework和Delphi应用程序。FastReport 4.10版本提供了丰富的功能,包括自定义报告设计、数据源连接、预览和打印...
描述中的"附demo"意味着这个压缩包包含了演示示例,这些示例可以帮助用户快速理解和学习如何使用FastReport。通过运行这些Demo,用户可以看到FastReport的各种特性如何实际应用,比如如何创建报告模板,如何处理数据...
本教程大全将深入讲解FastReport的各项功能,帮助用户从初学者到熟练掌握,以下是根据教程内容可能会涵盖的知识点: 1. **安装与设置**:介绍如何下载并安装FastReport,以及在Visual Studio等开发环境中集成...
指南将帮助你开始用FastReport创建报表,但它不能告诉你怎样使用其它基本的报表设计器。 如果你不熟悉报表设计器,我们建议你参考QuickReport的帮助系统。QuickReport的指南已经包含在你的Delphi拷贝中。...