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;;

Подскажите куда копать и где есть нормальная дока по классам?

Re: TChart и TfrxChartView

Почему бы просто не вызвать метод Preview, чтобы распечатать график без участия отчетной системы?

Chart.Preview; 
Dmitry.

Re: TChart и TfrxChartView

Так там несколько Чартов в одном отчете, плюс данные.

Re: TChart и TfrxChartView

Интересно, что код:

Chart.SeriesList.Clear;

Выдает ошибку 'Unknown type TChartSeriesList' Тип-то правильный, но с чего он неизвестен?

Re: TChart и TfrxChartView

Здесь вы можете найти документацию
http://www.teechart.net/docs/TeeChartVCLReference.htm



count := ls.XValues.Count; // не работает, говорит, что Count имеет тип Variant !!!
bend := true; // изврат, потому что SeriesCount нет
Chart.SeriesList.Clear;


Поправил, скачайте пожалуйста последнюю бета версию
https://www.dropbox.com/s/yagi074bd24ox … a.zip?dl=0

Dmitry.