求教: 如何根据数据值的不同来更改报表字体的属性?
比如在detailband1里面放一个QRDBText,连接到字段k
如果k=1,那么就把QRDBText的字体属性改变为斜体,
否则按原先设定的字体显示。
请高手们不吝赐教!
重温旧梦,刻苦钻研。搞定。
procedure TQuickReport.QuickRepNeedData(Sender: TObject;
var MoreData: Boolean);
begin
MoreData := True;
//我这里是演示偶数行变换字型,你根据自己的情况改变一下条件。
//如:QRDBText.DataSet.FieldByName('K').asInteger = 1
if QRDBText.DataSet.RecNo mod 2 = 0 then
QRDBText.Font.Style := [fsBold, fsItalic, fsUnderline]
else
QRDBText.Font.Style := [];
QRDBText.DataSet.Next;
if QRDBText.DataSet.Eof then MoreData := False;
end;
procedure TQuickReport.QuickRepBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
QRDBText.DataSet.First;
end;
注意事项:
不要设置QuickReport的DataSet属性.只设置QRDBText的DataSet和DataField属性.
我这里不行,字体没有改变,是否哪里出问题?
procedure TFrm_Rpt.QuickRt_dlNeedData(Sender: TObject;
var MoreData: Boolean);
begin
MoreData := True;
if QRDBText22.DataSet.FieldByName('K').asInteger = 1
then
begin
QRDBText22.Font.Style := [fsBold, fsUnderline];
QRDBText22.Font.Size:=10;
end
else
begin
QRDBText22.Font.Style := [fsItalic];
QRDBText22.Font.Size:=9;
end;
QRDBText22.DataSet.Next;
if QRDBText22.DataSet.Eof then MoreData := False;
end;
procedure TFrm_Rpt.QuickRt_dlBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
QRDBText22.DataSet.First;
end;