把tdbchart的内容拿到tquickrep上的tqrchart上去预览和打印?(100分)

  • 主题发起人 主题发起人 dedema
  • 开始时间 开始时间
D

dedema

Unregistered / Unconfirmed
GUEST, unregistred user!
把tdbchart的内容原模原样地拿到tquickrep上的tqrchart上去预览和打印?
我试了好久,对tqrchart的chart的各个属性都从tdbchart的相对应的属性都assign了
过来,就是不显示的。
能不能提供一个好例子,能用很少的代码做到这个点的。
具体的例子,动态create一个tqrchart,使用这个tqrchart的外表表现与其它窗体上
的一个tdbchart的外表表现一模一样的。
 
注意,是用动态方式,如果是VCL方式,那是可以的啊!
 
这是ReportMachine中打印Chart的一段代码,改改也可以用于QR
procedure TRMChartView.AssignChart(AChart: TCustomChart);
var
tmpSeries: TChartSeries;
tmpS: TChartSeriesClass;
i: Integer;
begin
FChart.RemoveAllSeries;
FChart.Assign(AChart);
for i := 0 to AChart.SeriesCount - 1do
begin
tmpS := TChartSeriesClass(AChart.Series.ClassType);
tmpSeries := tmpS.Create(FChart);
tmpSeries.Assign(aChart.Series);
FChart.AddSeries(tmpSeries);
end;
end;
 
var rect:trect;
qrp:tquickrep;
qrc:tqrchart;
series:tpieseries;
begin
//预览窗体
qrp:=tquickrep.create(self);
qrp.parent:=nil;
qrp.Bands.HasDetail :=true;
//图表
qrc:=tqrchart.Create (self);
qrc.BoundsRect :=dbchart1.BoundsRect ;
qrc.ParentReport :=qrp;
//
series:=tpieseries.Create (self);
//series.ParentChart :=qrc.Chart ;//试过
series.AddX (1,'series addx',clred);
series.FillSampleValues (10);
qrc.chart.AddSeries (series);//qrc如果改成设计时添加的qrchart1,就可以显示的。
qrc.TeePrintMethod :=qtmmetafile;//无效
qrc.Size.Height :=40;//无效
qrc.size.Left :=10;//无效
qrc.Size.Top :=10;//无效
qrc.Width :=80;//无效
qrc.Update ;//无效
qrc.Show;//无效
qrc.visible:=true;//无效
// qrc.Chart.Title.Text.Add ('Title Chart');// 异常
// qrc.Chart.Assign (dbchart1);//异常
qrp.PreviewModal ;
end;
首先我要先能使动态产生的qrchart能在quickrep上显示出来。但以上这段代码,我
试过多遍了,还是没法做动动态产生的显示的。
 
晚上看看
 
有没有办法给这一帖加上100分?人数太少了!
 
多人接受答案了。
 
后退
顶部