Создание объекта из кода

отредактировано 01:23 Раздел: FastReport 3.0
Здравствуйте, все!


Раньше стоял FR2.4. С помощью него я создавал объект (TfrChartView) и присваивал ему изображение имеющегося на форме графика (Chart) следующим образом:

TfrChartView ReportChart;
TfrPage Page=frReport.Pages.Pages[0];

ReportChart=frCreateObject(gtAddIn,"TfrChartView");
ReportChart.AssignChart(Chart);
Page.Objects.Add(ReportChart);


Поставил FR3 - такая фича не проходит, менял типы на Tfrx вместо Tfr.
Короче написал так:
TfrxChartView ReportChart;
TfrxPage Page=frReport.Pages[0];

ReportChart=frCreateObject(gtAddIn,"TfrxChartView");
ReportChart.AssignChart(Chart);
Page.Objects.Add(ReportChart);

А она ругается на функцию frCreateObject.
Чего я только не пробовал...... Все равно ругается.
Может кто подскажет. как в FR3 правильно созавать объекты в отчете?


С уважением.

Комментарии

  • отредактировано 01:23
    Прочитайте programmer manual.
  • отредактировано 01:23
    Сам график создать получилось с помощью следующей команды
    ReportChart.Create(Page);

    Пробую создать Series следующим образом:
    Series=ReportChart.SeriesData.Add();
    Series.DataSet=frxDBDataset; /*frxDBDataset находится на форме*/

    А он ругается, что "List index out of bounds (0)"????????
    Как быть?
  • отредактировано 01:23
    Надо, кроме этого, добавлять серию в сам teechart:

    var
    Chart: TfrxChartView;
    Series: TfrxSeriesItem;
    begin
    Chart := TfrxChartView.Create(Page);
    Chart.Chart.AddSeries(TLineSeries.Create(Chart.Chart));
    Series := Chart.SeriesData.Add;
  • отредактировано 01:23
    Раньше, в FR2.4 была полезная вещь:
    TfrChartView.AssignChart(TChart);

    в FR3 пробую:
    TfrxChartView.Chart.Assign(TChart);
    че то не работает, остается пустой график.

    Может че не так делаю?
  • отредактировано 01:23
    Сразу хочу добавить еще один вопрос:

    TfrxtChartView->Chart->BottomAxis->DateTimeFormat="dd/mm/yy";

    А он все равно выводит дату в виде "dd/mm/yy hh:mm:ss"
  • отредактировано 01:23
    И еще один вопрос в догонку (всего вместе с предыдущими двумя 3 вопроса):
    Пишу скрипт С++:
    double LeftAxisMinimum=Chart32.Chart.MinYValue(Chart32.Chart.LeftAxis);

    А он ругается 'Undeclared MinYValue'
  • отредактировано 01:23
    telesafe написал:
    Раньше, в FR2.4 была полезная вещь:
    TfrChartView.AssignChart(TChart);

    в FR3 пробую:
    TfrxChartView.Chart.Assign(TChart);
    че то не работает, остается пустой график.

    Может че не так делаю?
    Q: Подскажите, пожалуйста, а как можно поместить в отчет Chart из формы Delphi?
    A: Это лучше всего сделать с помощью объекта TfrxPictureView. Поместите пустой
    объект в отчет и в TfrxReport.OnBeforePrint напишите:

    procedure TForm1.frxReport1BeforePrint(Sender: TfrxReportComponent);
    begin
    if Sender.Name = 'Picture1' then
    TfrxPictureView(Sender).Picture.Assign(
    Chart1.TeeCreateMetafile(False,
    Rect(0, 0, Round(Sender.Width), Round(Sender.Height))));
    end;
  • отредактировано 01:23
    telesafe написал:
    И еще один вопрос в догонку (всего вместе с предыдущими двумя 3 вопроса):
    Пишу скрипт С++:
    double LeftAxisMinimum=Chart32.Chart.MinYValue(Chart32.Chart.LeftAxis);

    А он ругается 'Undeclared MinYValue'
    Из скрипта можно достучаться только до published свойств; видимо, это св-во не published, или вообще не свойство.
  • отредактировано 01:23
    Вообще-то это не свойство, а метод, который из кода вызывается нормально.
    Получается, что из скрипта можно работать только со published свойствами, а published методы недоступны. Так ли это???

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.