Кнопка редактирования отчёта

Обсуждение Stimulsoft Reports.NET
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Кнопка редактирования отчёта

Сообщение Леонид »

Добрый вечер!

Столкнулись с проблемой - при выводе отчёта нет кнопки редактирования. Версия репорта последняя - 2013.3.1800.0.

Код такой:

Код: Выделить всё

      StiReport report = new StiReport();

      Stimulsoft.Report.Viewer.StiViewerControl stiPreview = new Stimulsoft.Report.Viewer.StiViewerControl()
      {
        Dock = DockStyle.Fill,
        Visible = true,

        // set option flags
        ShowPrint = true,
        ShowOpen = true,
        ShowEditor = true,
        ShowEditorTool = true,
        ShowPageNew = true,
        ShowSendEMail = true,
        ShowThumbsPanel = true,
        ShowSaveDocumentFile = true,        
      };

      // assign report object to preview control
      stiPreview.Report = report;
      stiPreview.FirstPage();
      stiPreview.SetZoom(100);

      report.Show();
Либо такой:

Код: Выделить всё

StiReport report = new StiReport();
report.Show();
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Re: Кнопка редактирования отчёта

Сообщение Леонид »

Проверил сегодня и на последней версии - 2014.2.2000.0. Всё осталось по-прежнему или может я что-то не так делаю, но кнопки нет?
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Re: Кнопка редактирования отчёта

Сообщение Jan »

Здравствуйте,

Посмотрите свойство отчета PreviewSettings в дизайнере отчетов. Скорей всего там выключен доступ к этой функции.

Спасибо.
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Re: Кнопка редактирования отчёта

Сообщение Леонид »

Доброе утро!

Да, вы правы, в дизайнере ("C:\Program Files\Stimulsoft Reports.Net 2014.2 Trial\Bin\"Designer.exe), если поставить флажок "Edit Page", то кнопка редактора отображается корректно.
Однако, у нас все отчёты мы создаём динамически. Проверил всё ещё раз на нескольких проектах - кнопки нет.

Даже, если создать отчёт так:

Код: Выделить всё

      StiReport report = new StiReport();

      Stimulsoft.Report.Viewer.StiViewerControl stiPreview = new Stimulsoft.Report.Viewer.StiViewerControl()
      {
        Dock = DockStyle.Fill,
        Visible = true,

        PreviewSettings = StiPreviewSettings.All,
        ShowEditor = true,
        IsEditorActivated = true,
        ShowPageDesign = true
      };

      // assign report object to preview control
      stiPreview.Report = report;
      report.Show();
То есть все кнопки, кроме кнопки редактирования.

Какое конкретно свойство в структуре PreviewSettings отвечает за показ кнопки редактирования?
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Re: Кнопка редактирования отчёта

Сообщение Jan »

Здравствуйте Леонид,

Настройки вьювера отчетов, которые выполняются из дизайнера отчетов сохраняются в отчете. Перед отображением вьювера отчетов, учитываются настройки как из вьювера отчетов, так и из отчета, и из статических опций. Чтобы решить проблему просто добавьте следующую строку:

Код: Выделить всё

report.PreviewSettings = (int)StiPreviewSettings.All;
p.s. Свойство PreviewSettings числовое, не перечисление. Сделано для более краткой записи инициализации свойства при генерации кода отчета.

Дайте знать если будут еще вопросы.

Спасибо.
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Re: Кнопка редактирования отчёта

Сообщение Леонид »

Да, этот код помог, - кнопка появилась!
Спасибо!
Aleksey
Сообщения: 3006
Зарегистрирован: 22 апр 2010, 06:57

Re: Кнопка редактирования отчёта

Сообщение Aleksey »

Здравствуйте Леонид,

Всегда рады помочь.

Спасибо.
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Re: Кнопка редактирования отчёта

Сообщение Леонид »

Добрый день!

Поднимаю эту тему ещё раз, но немного в необычном контексте.

Имеем код:

Код: Выделить всё

      StiReport report = new StiReport();

      Stimulsoft.Report.Viewer.StiViewerControl stiPreview = new Stimulsoft.Report.Viewer.StiViewerControl()
      {
        Dock = DockStyle.Fill,
        Visible = true,

        // set option flags
        ShowPrint = true,
        ShowOpen = true,
        ShowEditor = true,
        ShowEditorTool = true,
        ShowPageNew = true,
        ShowSendEMail = true,
        ShowThumbsPanel = true,
        ShowSaveDocumentFile = true,        
      };

      // assign report object to preview control
      stiPreview.Report = report;
      stiPreview.FirstPage();
      stiPreview.SetZoom(100);

//      stiReport.PreviewSettings = (int)stiPreview.PreviewSettings; // здесь этот код работает, т.к. стоит до медода .Render()

      // рендерим отчёт
      report.Render(false);

     // далее идёт код проверки уже отрендеренных Crosstab'ов и если они больше страницы, то ставим флажок, запрещающий печать, т.е. надо скрыть кнопку печати
// однако, когда пытаемся установить настройки после .Render() таким же образом, т.е. stiReport.PreviewSettings = (int)stiPreview.PreviewSettings; то никакого результата не получаем.
Подскажите, пожалуйста, почему так сделано и как это обойти? Спрашиваем, т.к. купили новую версию 2014.3, и хочется перейти на неё с 2012.1.1300.0 (в этой версии всё работает, как часы после рендеринга).
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Кнопка редактирования отчёта

Сообщение HighAley »

Здравствуйте, Леонид.

Попробуйте после отрисовки отчёта настройки задавать следующим кодом:

Код: Выделить всё

report.CompiledReport.PreviewSettings = (int)StiPreviewSettings.All;
Спасибо.
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Re: Кнопка редактирования отчёта

Сообщение Леонид »

Доброе утро!

Ваш пример кода работает, но с одной оговоркой.

Строку с кодом

Код: Выделить всё

report.CompiledReport.PreviewSettings = (int)StiPreviewSettings.All;
необходимо ставить выше (до) строки присвоения отчёта объекту Preview.

То есть, выглядит это следующим образом:

Код: Выделить всё

stiPreview = new Stimulsoft.Report.Viewer.StiViewerControl()
Stimulsoft.Report.StiReport stiReport = new Stimulsoft.Report.StiReport stiReport();
....

report.CompiledReport.PreviewSettings = (int)StiPreviewSettings.All; // до присвоения объекту Preview самого отчёта

...
stiPreview.Report = stiReport;
Только при таком подходе настройки применяются. :!:

Спасибо за помощь!
Ответить