如何把stringgrid中的内容直接打到报表上(50分)

  • 主题发起人 主题发起人 haotian2010
  • 开始时间 开始时间
H

haotian2010

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟是有个问题,请各位帮忙看看,谢谢!
str1,str2为两个全局变量,
procedure TFLineWaste.QuickRep1NeedData(Sender: TObject;
var MoreData: Boolean);
var
i:integer;
begin
for i:=0 to StringGrid1.RowCount-1do
begin
str1:=StringGrid1.Rows.Strings[0];//这里没有错
str2:=StringGrid1.Rows.Strings[1];
MoreData:=true;
end;
MoreData:=false;
end;

procedure TFLineWaste.QRLabel1Print(sender: TObject;
var Value: String);
begin
value:=str1;
end;

procedure TFLineWaste.QRLabel2Print(sender: TObject;
var Value: String);
begin
value:=str2;
end;

procedure TFLineWaste.Button1Click(Sender: TObject);
begin
quickrep1.Preview;
end;

为何点击BUTTON1时,显示不出来数据,把QuickRep1NeedData事件里的一句MoreData:=false;
去掉,整页只显示StringGrid1最后一行数据,而且页数不停地增加。加上MoreData:=false;
则什么都显示不出来,这个问题出在哪里?
怎样才能把StringGrid1里的内容直接打到报表上?
请各位帮帮忙!
 
www.source520.com 站长必进 2万源代码电子经典书狂下载
 
QuickRep1NeedData程序修改如下,对照以下就知道问题出在哪里。
ii为全局变量
procedure TForm1.QuickRep1NeedData(Sender: TObject;
var MoreData: Boolean);
begin
str1:=StringGrid1.Rows[ii].Strings[0];//这里没有错
str2:=StringGrid1.Rows[ii].Strings[1];
if ii=stringgrid1.RowCount then
MoreData:=false
else
begin
inc(ii);
moredata:=true;
end;
end;
 
谢谢myid0602!
 
太谢谢啦!
 
后退
顶部