fastreport 如何连续打印单据

maoyunaa 2012-05-10 10:19:28
大家好!
在FastReport中,如何实现主从表连续打印呢?

如上图所示。单据编号有好多,我想在预览窗口看到所有的单据。
...全文
577 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
APHY 2012-05-11
  • 打赏
  • 举报
回复
没图吗,图在哪?

交叉报表吧,这个不是很简单吗?
maoyunaa 2012-05-11
  • 打赏
  • 举报
回复
问题已经解决,在FastReport 中写代码搞定。代码如下:
var
aa:Integer;
maxRow:Integer;

procedure Page1OnManualBuild(Sender: TfrxComponent);
var
DataSet: TfrxDataSet;
DataSet1: TfrxDataSet;
begin
aa:=1;
Engine.ShowBand(MasterData1);
DataSet := DetailData1.DataSet;
DataSet.First;
while (not DataSet.Eof) or ((aa-1) mod MaxRow<>0) do
begin
if DataSet.Eof then Engine.ShowBand(Child1)
else Engine.ShowBand(DetailData1);
DataSet.Next;
aa:=aa+1;
if (((aa-1) mod (MaxRow)=0) and (not DataSet.Eof)) then
begin
EngIne.Newpage;
EngIne.showband(MasterData1);
end;
end;
DataSet1 := MasterData1.DataSet;
DataSet1.next;
while (not DataSet1.Eof) do
begin
EngIne.Newpage;
EngIne.showband(MasterData1);
DataSet := DetailData1.DataSet;
DataSet.First;
aa:=1;
while (not DataSet.Eof) or ((aa-1) mod MaxRow<>0) do
begin
if DataSet.Eof then Engine.ShowBand(Child1)
else Engine.ShowBand(DetailData1);
DataSet.Next;
aa:=aa+1;
if (((aa-1) mod (MaxRow)=0) and (not DataSet.Eof)) then
begin
EngIne.Newpage;
EngIne.showband(MasterData1);
end;
end;
DataSet1.next;
end;
end;

begin
maxRow:=5; //每页最大行数
end.
sz0557it 2012-05-11
  • 打赏
  • 举报
回复
连接打印在于设置好报表的长宽。WINDOWS的打印功能自动会连续打印。长宽如果设置不准确,打印会错位。即要么越来越宽;要么越来越短。所以,把报表的长宽设置准确无误了,其他的交给WINDOWS了。

830

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧