Topic: TChart и TfrxChartView
На форме есть TChart . Данные не из БД. Там все хорошо.
Нужно его же выдать в отчете.
Тестовый отчет содержит только ReportTitle, а на нем Chart типа TfrxChartView.
Можно было бы использовать Picture и загонять туда метаданные из Tchart, как и предлагают в FastReport:
TfrxPictureView(Sender).Picture.Assign(Chart1.TeeCreateMetafile(False,Rect(0, 0, Round(Sender.Width), Round(Sender.Height))));
но сам объект Tchart редуцированный, метаданных не дает.
Пытаюсь использовать то, что есть, но оно тоже не работает - нет никакой подсказки о структуре объектов:
procedure Form1_Button2_OnClick (Sender: TObject; var Cancel: boolean);
var
ch: TChart;
chr: TfrxChartView;
frxDBDataset: TfrxDBDataset;
Results: TDataSet;
i, j, count: integer;
bend: boolean;
ls: TLineSeries;
bs: TBarSeries;
begin
Form1.frxReport.LoadFromFile(ExtractFilePath(Application.ExeName)+'Report\report.fr3');
SQLQuery('SELECT 1;', Results);
frxDBDataset := TfrxDBDataset.Create(Form1);
frxDBDataset.UserName := 'Report';
frxDBDataset.CloseDataSource := True;
frxDBDataset.OpenDataSource := True;
frxDBDataset.DataSet := Results;
// Form1.frxReport.DesignReport;
Form1.frxReport.DataSets.Clear;
Form1.frxReport.DataSets.Add(frxDBDataset);
Form1.frxReport.PrepareReport();
chr := TfrxChartView(Form1.frxReport.FindObject('Chart'));
if chr = nil then
exit;
chr.Align := baClient;
ch := TChart(DataExchangeGetObject('SHEWHARTCHART'));
if ch <> nil then
begin
chr.Chart.Assign(ch);
bend := false;
i := 0;
repeat
try
with chr.Chart.AddSeries(ch.Series[i]) do
begin
ls := TLineSeries(ch.Series[i]);
count := ls.XValues.Count; // не работает, говорит, что Count имеет тип Variant !!!
for j := 0 to count - 1 do
AddXY( chr.Series[i].XValues.Value[j], chr.Series[i].YValues.Value[j]);
end;
Inc(i);
except
bend := true; // изврат, потому что SeriesCount нет
end;
until bend;
Form1.frxReport.ShowReport;
end;
end;;
Подскажите куда копать и где есть нормальная дока по классам?