Метод Assign

отредактировано 23:06 Раздел: FastReport .NET
Есть чарт на форме.
со всеми подключениями данных, с прорисованными сериями и прочее.
Можно ли без лишних сложностей сделать просто что-то вроде
ChartOnReport.Assign(ChartOnForm);

ChartOnForm - System.Windows.Forms.DataVisualization.Charting.Chart;
ChartOnReport - FastReport.MSChart.MSChartObject;

Это же по сути - идентичные чарты?...

Комментарии

  • отредактировано 23:06
    Попробуйте так:
          report.Load("...");
          MSChartObject reportChart = report.FindObject("MSChart1") as MSChartObject;
    
          using (MemoryStream ms = new MemoryStream())
          {
            winFormsChart.Serializer.Content = SerializationContents.All;
            winFormsChart.Serializer.Save(ms);
            ms.Position = 0;
            reportChart.Chart.Serializer.Load(ms);
          }
          
          report.Show();
    

    Если вопросов не будет, могу оформить это в виде метода у MSChartObject.
  • отредактировано 23:06
    с отображением серий, навскидку, вопросов нет
    а вот я добавил курсор (это относится к ChartArea)
    Он не отобразился в FR.
    Попытался сделать что-то подобное вашему примеру.
    Что-то не получилось.
  • отредактировано 23:06
    Cursor на печать не выводится, а я как раз использую метод chart.Printing.PrintPaint для рисования и печати.
  • отредактировано 23:06
    AlexTZ написал: »
    Cursor на печать не выводится, а я как раз использую метод chart.Printing.PrintPaint для рисования и печати.
    ну тогда на данном этапе пока вопросов нет
    Думаю будет очень полезно добавить такую функциональность.
    Спасибо.
  • отредактировано 23:06
    Метод MSChartObject.AssignChart будет добавлен в следующий билд.
  • отредактировано 23:06
    да. Еще в FR после такого Assign() добавляется Chart c шириной и высотой = 0
  • отредактировано 23:06
    В данном случае используется ширина и высота объекта MSChartObject, что в отчете. Естественно, его надо заранее положить в нужное место на листе, и задать нужные размеры.
  • отредактировано 23:06
    это я к тому, что может добавить в метод AssignChart еще и инициализацию размеров соответственно Чарту на форме.
    Если уж делать Assign, так до конца.
    Мелочь, но все же...
  • отредактировано 23:06
    Лучше оставить как есть - chart может оказаться слишком большим и не влезть на страницу, или перекрыть другие объекты отчета. Если нужно, добавьте пару строк кода:
    reportChart.Width = winFormsChart.Width;
    reportChart.Height = winFormsChart.Height;

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

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