一个打印的问题 (SOS!!) (100分)

  • 主题发起人 主题发起人 yunzew
  • 开始时间 开始时间
Y

yunzew

Unregistered / Unconfirmed
GUEST, unregistred user!
我想把数据表中的每条记录只打印到一张纸上面
比如说:数据表table1中有三项:name,birthday,address
表中的记录如下:
name birthday address
Lily 1980-4 沈阳市
Galli 1967-5 上海市
Morgan 1972-3 北京市

我想把这三条记录打印出来,每条记录打印在不同的纸上,
也就是说每页纸只打印一条记录,如下:
Lily 1980-4 沈阳市 把这条记录打印在第一页纸上;
Galli 1967-5 上海市 把这条记录打印在第二页纸上;
Morgan 1972-3 北京市 把这条记录打印在第三页纸上。
用Delphi中自带的QReport该怎么操作啊?我是新手,恳请各位富翁赐教,感激不尽。
 
procedure TForm1.DetailBand1AfterPrint(Sender: TQRCustomBand;
BandPrinted: Boolean);
begin
QuickRep1.NewPage;
end;
 
也可以把DetailBand的高度设置差不多页高,它就会自动开新的一页
 
这个问题简单了,我给你发份我刚给我们单位做的一个打印小程序,我做的是打印参赛证,也就是把数据库的每条数据打印到每张参赛证上。也就是像你说的那样,每张纸上打印一条记录。想要的话请给我一个邮箱。
 
zlkxzy,谢谢
我的邮箱是yunzew@sohu.com
 
墨剑,能不能说详细点啊?
 
先声明一个变量
var
TempName : string;
调用报表预览
procedure TForm1.Button1Click(Sender: TObject);
begin
query1.Close;
query1.Open;
TempName := query1.fieldbyname('name').AsString;
QuickRep1.Preview;
end;

调用DetailBand的BeforePrint方法
procedure TForm1.DetailBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
if Query1.FieldByName('Name').AsString <>TempName then
begin
quickrep1.NewColumn;
tempname := query1.fieldbyname('name').Asstring;
end;
end;
这个你看看???
 
简单的说,我给的代码就是在打印一条记录之后,开一个新页(QuickRep1.NewPage;),就是这一句代码,足够了
 
墨剑:你说的是这个意思吗?
query1.add('select * from table1');
query1.First;
while not eofdo
begin
qrlabel1.Caption:=query4.fieldbyname('name').AsString;
qrlabel1.Caption:=query4.fieldbyname('birthday').AsString;
qrlabel1.Caption:=query4.fieldbyname('address').AsString;
quickrep1.Print;
quickrep1.NewPage;
next;
end;
这样行吗?
 
SOS!!!!!
哪位大侠能给我一个满意的答案呢?
 

Similar threads

回复
7
查看
327
山泉
X
回复
4
查看
264
XU Xuebin
X
N
回复
11
查看
266
nathanlee
N
G
回复
5
查看
229
garnel
G
后退
顶部