这倒可以做到,也可以自己选一个值来决定什么时候换行。必须先把表中的内容连同字段先放到
一个二维数组(可以是动态数组),然后在QReport中打印数组:
procedure TRept.QuickRepBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
//以下两个是公共变量
l_High :=High(G_Dyml[0]);
l_CurrentRow := 0;
end;
procedure TRept.QuickRepNeedData(Sender: TObject;
var MoreData: Boolean);
var xh:integer;
B_Lab:TComponent;
begin
MoreData:=False;
if l_CurrentRow = l_High + 1 then
Exit;
{如果已打印完最后行,退出}
MoreData := True;
{可以继续打印}
for xh:=0 to 5do
//0..5是数组第一维的大小,应根据情况改变
begin
B_Lab:=FindComponent('Lab'+IntToStr(xh+1));
//Detail band中用几个Qrlabel,分别命名为Lab1到Lab6
TQrLabel(B_Lab).Caption:=G_Dyml[xh,l_CurrentRow];
end;
{打印第一列}
//QRLabel2.Caption := My_Variant[l_CurrentRow, 1];
{打印第二列}
//QRLabel3.Caption := My_Variant[l_CurrentRow, 2];
{打印第三列}
l_CurrentRow := l_CurrentRow + 1;
{当前行+1}
end;
保存数据到数组及隔几个记录自动折行的操作,请自行考虑。