QR3.6分组换页打印问题 (100分)

  • 主题发起人 主题发起人 scLizongliang
  • 开始时间 开始时间
S

scLizongliang

Unregistered / Unconfirmed
GUEST, unregistred user!
在QuickRep 3.6中:
1、 设置QRGroup.ForceNewPage:=true分页成功啦,由于新组组标题在新页要重打一遍,
于是设置QRGroup.RepaiONNewPage:=true(有点记不清啦,总之新页重打组标题属性为真),
而后新页也打啦组标题,但是总要跑一个空白页,不知怎样解决????
2、能否让rbGroupHeader边条在rbDetail之上而不在rbColumnHeader边条
和rbDetail边条之间??
3、提供一个优秀的做“中国报表(for d6、D7)”控件?
email:lizongliang@china.com.cn
 
用reportMachine吧
 
ReportMachine2.4是最新版本吗?我刚下载了一个,还不知道如何!
 
最新版是3.0,但是还处于测试期,要注册的,不过免费版已经能够满足你的要求了。
请访问 www.delphireport.com.cn
 
请问哪儿有QuickRep的新版本及其源码下载(For D5)??
 
哪有fastreport2.4的中文资料?
 
在Delphi中运用QuickReport实现多栏列印

---- 在所有有关Delphi的书籍中,都没有讲解如何实现一个打印项的多栏打印,而实现生活中往往有许多报表要求同一项目多栏打印,QuickReport提供了报表打印一整套完整的解决方案,完全可以实现同一项目的多栏打印,技术关键是如何控制表中记录提取个数,如果在Treport的DataSet属性中选定一个Table
那么QuickReport每次打印详细列表(BandType=rbDetail)属性的TQRBand时,系统会自动取出一个记录供打印,并将表中的记录指针移到下一位,这样程序无法控制表中记录指针的移动,就无法实现多栏打印,只要程序不在Treport的DataSet属性选定任何表
QuickReport便不会控制表记录的提取,QuickReport特为其它类型数据打印提供了一个OnNeedData事件,QuickReport 每次打印详细列表(BandType=rbDetail)属性的TQRBand时,会触发这个事件,要求提供打印数据,如果程序在OnNeedData事件中编写运用表中数据提供打印资料,便能实现多栏打印,现举例说明:

---- 现在要实现一个Table1中Name项两栏打印,在窗口上放TquickReport组件 quickReport1,并在上面放Tband组件band1,将其BandType属性改为Detail,在Tband 组件上并排放两个QRLabel组件QRLabel1和QRLabel2,在quickReport1的OnNeedData事件中写如下代码:

procedure TForm1.QuickRep1NeedData(Sender:
TObject;
var MoreData: Boolean);
var
I: integer;
begin

MoreData := True;
for I:= 1 to 2do

begin

if Table1.Eof then
Break;
case I of
1: QRLabel1.Caption :=
Table1.FieldByName('Name').AsString;
2: QRLabel2.Caption :=
Table1.FieldByName('Name').AsString;
end;

Table1.Next;
end;

if Table1.Eof then
MoreData := False;
end;

---- 为了保证打印或者打印预览开始时Table1指针在第一条记录,在quickReport1的 BeforePrint事件中写如下代码:
procedure TForm1.QuickRep1BeforePrint
(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin

Table1.First;
end;


---- 这样程序调用QuickRep1.Preview或者QuickRep1.Print便能预览或者打印到一个关于 Name的从左至右,从上到下的多栏报表。
 
后退
顶部