一个动态生成QRDBText的例子
procedure CreateQRText(ParentBand: TQRBand);
var
i:integer;
begin
SetLength(QRText,ParamNumber);
for i:=0 to ParamNumber-1 do
begin
QRText[i]:=TQRDBText.Create(self);
QRText[i].Parent:=ParentBand; //关键
QRText[i].ParentFont :=true;
QRText[i].Alignment :=taCenter;
QRText[i].DataSet :=ClientDataSet1; //关键 QRText[i].Top :=2+i;
QRText[i].Left :=DetailShape[i+1].Left+ iPerwidth div 2- QRText[i].Width div 2;
end;
其中注释关键的地方是一定要设的
procedure CreateQRText(ParentBand: TQRBand);
var
i:integer;
begin
SetLength(QRText,ParamNumber);
for i:=0 to ParamNumber-1 do
begin
QRText[i]:=TQRDBText.Create(self);
QRText[i].Parent:=ParentBand; //关键
QRText[i].ParentFont :=true;
QRText[i].Alignment :=taCenter;
QRText[i].DataSet :=ClientDataSet1; //关键 QRText[i].Top :=2+i;
QRText[i].Left :=DetailShape[i+1].Left+ iPerwidth div 2- QRText[i].Width div 2;
end;
其中注释关键的地方是一定要设的
例如:
需要竖着显示三个字段A,B,C
A
B
C
你可以QRExprMemo.lines在中写
{A}
{B}
{C}
这样就不用放上3个QREditText了。
当A没数据的时候,不会留下空当的。
2。进行自动换行一般来讲也不是完全自动的,因为中文字和英文字不同,一般的报表进行自动换行是根据中间的‘空格’进行的,所以,要么你自己给字段值加一个空格,或者加一个回车;
一般如下,设autosize为false, 高度要拖成两倍高,或者动态设置,在onprint里对字段长度进行分解;
3。现在国人喜欢用的报表中用得最多的我看应该是fastreport,reportbuild也很好,但生成文件特大,这些以前在gxg.3322.net见过,你去看看吧