快来看:动态生成报表程序例子(0分)

  • 主题发起人 主题发起人 wst
  • 开始时间 开始时间
W

wst

Unregistered / Unconfirmed
GUEST, unregistred user!
各位渴望得到动态生成报表的兄弟,大家一起来探讨!
我有一动态生成报表程序,程序如下,但不知为什么,实现了标题和字报表头的打印,报表内容不能显示出来,我将我的程序拿来,让大家研究一下:
procedure TForm1.Button1Click(Sender: TObject);
begin
prepareprint;
with form2do
begin
quickrep1.preview;
table1.close;
table2.close;
end;
end;
procedure tForm1.prepareprint;
var leftvalue:integer;
alabel:tqrlabel;
atext:tqrdbtext;
begin
leftvalue:=100;
with form2do
begin
alabel:=tqrlabel.create(form2);
alabel.parent:=titleband1;
with alabeldo
begin
Width:=300;
Height:=TitleBand1.Height;
Alignment:=taCenter;
Caption := Edit1.Text;
end;
Table1.Open;
Table2.Open;
table1.First;
Table2.First;
while not Table2.EOFdo
begin
aLabel := TQRLabel.Create(Form2);
//设置显示字段标题
aLabel.Parent := HeaderBand1;
with aLabeldo
begin
AutoSize:=False;
AutoStretch:=True;
Left :=LeftValue;
Top := 0;
Width:=80;
Height:=HeaderBand1.Height;
Alignment:=taCenter;
Caption := ' '+table2.FieldbyName(
'DisplayName').AsString+' ';
//报表表头来自于table2
end;
aText := TQRDBText.Create(Form2);
//设置显示字段内容
aText.Parent := DetailBand1;
with aTextdo
begin
AutoSize:=False;
AutoStretch:=True;
Height:=DetailBand1.Height;
DataSet:=Table1;
//显示的内容为table1
DataField:=Table2.FieldbyName(
'FieldsName').AsString;
//对应的字段名来自于table2
Alignment:=taCenter;
end;
LeftValue:=LeftValue+80;
Table2.Next;
end;
end;
end;

end.
 
不会吧,今天在线上的人就这么少?
 
try this:
procedure TForm1.Button1Click(Sender: TObject);
begin
prepareprint;
with form2do
begin
quickrep1.preview;
table1.close;
table2.close;
end;
end;
procedure tForm1.prepareprint;
var leftvalue:integer;
alabel:tqrlabel;
atext:tqrdbtext;
begin
leftvalue:=100;
with form2do
begin
alabel:=tqrlabel.create(form2);
alabel.parent:=titleband1;
with alabeldo
begin
Width:=300;
Height:=TitleBand1.Height;
Alignment:=taCenter;
Caption := Edit1.Text;
end;
Table1.Open;
Table2.Open;
table1.First;
Table2.First;
while not Table2.EOFdo
begin
//aLabel := TQRLabel.Create(Form2);
//设置显示字段标题
<font color=red>aLabel := TQRLabel.Create(HeaderBand1);</font> //设置显示字段标题
aLabel.Parent := HeaderBand1;
with aLabeldo
begin
AutoSize:=False;
AutoStretch:=True;
Left :=LeftValue;
Top := 0;
Width:=80;
Height:=HeaderBand1.Height;
Alignment:=taCenter;
Caption := ' '+table2.FieldbyName(
'DisplayName').AsString+' ';
//报表表头来自于table2
end;
//aText := TQRDBText.Create(Form2);
//设置显示字段内容
<font color=red>aText := TQRDBText.Create(DetailBand1);</font> //设置显示字段内容
aText.Parent := DetailBand1;
with aTextdo
begin
AutoSize:=False;
AutoStretch:=True;
Height:=DetailBand1.Height;
DataSet:=Table1;
//显示的内容为table1
DataField:=Table2.FieldbyName(
'FieldsName').AsString;
//对应的字段名来自于table2
Alignment:=taCenter;
end;
LeftValue:=LeftValue+80;
Table2.Next;
end;
end;
end;
 
big_Z,好象不是这里的错,我试了,仍然不对.
 
quickrep1是不是没指定dataset啊?
 
quickrep1的dataset指定为table1的,没有错!
 
快下班了,我的问题还没有解决,希望找到答案的兄弟帮帮忙,我想,这个问题应该是大家关心的问题。
 
Why My App Work!
 
可能没有刷新TABLE,加一句TAble1.refresh;
我刚学DELPHI,冒昧了。
 
aText := TQRDBText.Create(Form2);
//设置显示字段内容
aText.Parent := DetailBand1;
with aTextdo
begin
AutoSize:=False;
AutoStretch:=True;
<font color=red>=Left :=LeftValue;
Top := 0;
Width:=80;
// aText的位置忘了设啦!</font>
Height:=DetailBand1.Height;
DataSet:=Table1;
//显示的内容为table1
DataField:=Table2.FieldbyName(
'FieldsName').AsString;
//对应的字段名来自于table2
Alignment:=taCenter;
end;
 
我很关心
 
我先学动态,再学静态生成的
 
多谢各位的帮助。Titita您好,我的问题就是出在您说的地方。再次感谢各位的的帮助,说实在的,在大富翁里,我看到了各位热爱程序的兄弟们团结共勉,共同学习,今后的将在各位兄弟的鼓励下,不断进取。
 
后退
顶部