可以用程序动态添加qrlabel,不过有点麻烦。待会我给你发点思路说明。
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
I.Desire := '加不加分随你';
—————————————————————————————————
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
I.Desire := '加不加分随你';
—————————————————————————————————
让他固定五个记录,用quickreport最简单的rbDetail方法
就可以了
qrlabels: Array of Array[1..Col] of TQRLabel;根据记录数和你的报表版面设置,可以计算出你的5行qrlabel的位置(可以用一个公式表示)。
那么在QReport的beforPrint事件中,把数组qrlabels放到报表页面上即可了:
SetLength(qrlabels,空白行数);
for I:= 0 to 空白行数 do
for J:= 0 to Col do
//动态创建qrlabels的每个元素,并设置它的Parent、Left、Top、Caption即可!
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
I.Desire := '加不加分随你';
—————————————————————————————————
var
a:tcomponent;
i,j,k:integer;
begin
k:=0;
for i:=0 to 4 do
begin
if query1.eof then
begin
for j:=0 to 3 do
begin
a:=findcomponent('qrlabel'+inttostr(k*4+j+1));
tqrlabel(a).caption:=query1.fields[j].asstring;
end;
end
else begin
for j:=0 to 3 do
begin
a:=findcomponent('qrlabel'+inttostr(k*4+j+1));
tqrlabel(a).caption:=query1.fields[j].asstring;
end;
end;
k:=k+1;
query1.next;
end;
end;没试过