QuickReport或FastReport能否在细节带区打印二维数组 (300分)

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

HunterTeam

Unregistered / Unconfirmed
GUEST, unregistred user!
我不想再建一个表或是临时表来存放我要打印的数据,而且用二维数组速度也更快。
 
可以,但比较麻烦,将QrLabel放在DetailBand里,在QuickReport的OnNeedData里写事件,
控件MoreData=True时打印,=False不打印,注意不能设QuickReport的DataSet属性
var
// My_Variant: array[0..10, 0..20] of string;
l_High : Integer;
l_CurrentRow: Integer;
{$R *.DFM}
procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
l_High := High(My_Variant);
l_CurrentRow := 0;
end;

procedure TForm1.QuickRep1NeedData(Sender: TObject;
var MoreData: Boolean);
begin
MoreData:=False;
if l_CurrentRow = l_High + 1 then
{如果已打印完最后行,退出}
Exit;
MoreData := True;
{可以继续打印}
QRLabel1.Caption := My_Variant[l_CurrentRow, 0];
{打印第一列}
QRLabel2.Caption := My_Variant[l_CurrentRow, 1];
{打印第二列}
QRLabel3.Caption := My_Variant[l_CurrentRow, 2];
{打印第三列}
l_CurrentRow := l_CurrentRow + 1;
{当前行+1}
end;
 
我还以为没人能回答了呢。
虽然还没试过,但已知道你的意思,这就把分给你了。多谢!
 
后退
顶部