报表分页问题,散分,顺便!

上海老李 2003-12-29 05:08:50
当然我的报表另有代码,以下是我实现的简化的代码,现在求高手来帮帮忙
procedure test;
var
myqr:TQRLABEL;
i,j:integer;
begin
i:=0;
j:=0;
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from test');
adoquery1.open;
while not adoquery1.eof do
begin
if j>=20 then
begin
j:=0;
i:=0;
//如何在这实现分页?比如每二十条记录为一页
end;
MyQr:=TQRLabel.Create(self);
MyQr.Parent :=summ3;
MyQr.name :='Q'+adoquery1.fieldbyname('id').asstring;
MyQr.Top:=i;
MyQr.Left:=34;
MyQr.Width :=26;
MyQr.Height :=17;
MyQr.Caption:=adoquery1.fieldbyname('name').asstring;
i:=i+20;
inc(j);
adoquery1.next;
end;
...全文
91 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
上海老李 2004-01-11
  • 打赏
  • 举报
回复
我要散分,请大家再多来点吧
phm 2004-01-01
  • 打赏
  • 举报
回复
up
上海老李 2003-12-30
  • 打赏
  • 举报
回复
有谁可以以下面的方式实现分页?
procedure test;
var
myqr:TQRLABEL;
i,j:integer;
begin
i:=0;
j:=0;
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from test');
adoquery1.open;
while not adoquery1.eof do
begin
if j>=20 then
begin
j:=0;
i:=0;
QuickRep1.NewPage;//分页
end;
MyQr:=TQRLabel.Create(self);
MyQr.Parent :=summ3;
MyQr.name :='Q'+adoquery1.fieldbyname('id').asstring;
MyQr.Top:=i;
MyQr.Left:=34;
MyQr.Width :=26;
MyQr.Height :=17;
MyQr.Caption:=adoquery1.fieldbyname('name').asstring;
i:=i+20;
inc(j);
adoquery1.next;
end;
wangxd 2003-12-30
  • 打赏
  • 举报
回复
把数据字段要放在报表的表内容中,无需指定多次,每页显示的记录数要看其行宽度而定
上海老李 2003-12-30
  • 打赏
  • 举报
回复
按这种方式摸不着头绪
killghost 2003-12-30
  • 打赏
  • 举报
回复
遇到
mmzhang 2003-12-30
  • 打赏
  • 举报
回复
请问一下高手!
如何用画布的方法在一个QuickRep1中设置两页表格!???
hongmaohouzi 2003-12-30
  • 打赏
  • 举报
回复
高手们,快点解决,我也遇到了同样的问题。
上海老李 2003-12-30
  • 打赏
  • 举报
回复
一个系统其它全是DELPHI做的APP,然后忽然出来一个ASP,那成什么,哈哈哈
foxnt 2003-12-30
  • 打赏
  • 举报
回复
你用网页方式来做报表更加灵活啦。
QR这种控件,做不了复杂报表的
上海老李 2003-12-30
  • 打赏
  • 举报
回复
唉,高手?该死的DELPHI,实在不行就用画布了
konhon 2003-12-29
  • 打赏
  • 举报
回复
当然我的报表另有代码,以下是我实现的简化的代码,现在求高手来帮帮忙
procedure test;
var
myqr:TQRLABEL;
i,j:integer;
begin
i:=0;
j:=0;
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from test');
adoquery1.open;
while not adoquery1.eof do
begin
if j>=20 then
begin
j:=0;
i:=0;
QuickRep1.NewPage;//分页
end;
MyQr:=TQRLabel.Create(self);
MyQr.Parent :=summ3;
MyQr.name :='Q'+adoquery1.fieldbyname('id').asstring;
MyQr.Top:=i;
MyQr.Left:=34;
MyQr.Width :=26;
MyQr.Height :=17;
MyQr.Caption:=adoquery1.fieldbyname('name').asstring;
i:=i+20;
inc(j);
adoquery1.next;
end;



MyQr:=TQRLabel.Create(self);
MyQr.Parent :=summ3;
MyQr.name :='Q'+adoquery1.fieldbyname('id').asstring;
MyQr.Top:=i;
MyQr.Left:=34;
MyQr.Width :=26;
MyQr.Height :=17;
MyQr.Caption:=adoquery1.fieldbyname('name').asstring;这种代码不能在里面,否则报错
//没碰到过
上海老李 2003-12-29
  • 打赏
  • 举报
回复
MyQr:=TQRLabel.Create(self);
MyQr.Parent :=summ3;
MyQr.name :='Q'+adoquery1.fieldbyname('id').asstring;
MyQr.Top:=i;
MyQr.Left:=34;
MyQr.Width :=26;
MyQr.Height :=17;
MyQr.Caption:=adoquery1.fieldbyname('name').asstring;这种代码不能在里面,否则报错
WWWWA 2003-12-29
  • 打赏
  • 举报
回复
给一例子,在QR的ON NEED DATA事件中
inc(i);//i是一個全局變量
//qr不要設置dataset(即為空),BeforePrin裡面dataset.first;//設置為第一記錄
//在onneeddata裡面,
//因為以前搞過,都過了比較久了,你試試看看行不行
if not ADOQuery1.Eof then
begin
QRLabel2.Caption:=ADOQuery1.Fields[1].AsString;
QRLabel3.Caption:=ADOQuery1.FieldByName('SL').AsString;//+ADOQuery1.FieldByName('DW').AsString;
ADOQuery1.Next;

if i<=20 then
MoreData:=true
else
begin
QuickRep1.NewColumn;
i:=0;
MoreData:=true;
end;
end
else
begin
QRLabel2.Caption:='';
QRLabel3.CaptioN:='';

if i=20 then
MoreData:=false;
end;

5,943

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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