Кастомизация дизайнера отчетов
Кастомизация дизайнера отчетов
Доброго времени суток.
Переходим с версии 2008.1 на 2008.2.
Используется класс - наследник StiDesigner. В нем происходит изменение словаря отчета и вызывается метод InvokeRefreshDictionary(). В 2008.2 этого метода (как и кнопки обновления словаря в дизайнере) нет. В итоге в дизайнере не отображаются изменения словаря.
Как решить эту проблему?
Переходим с версии 2008.1 на 2008.2.
Используется класс - наследник StiDesigner. В нем происходит изменение словаря отчета и вызывается метод InvokeRefreshDictionary(). В 2008.2 этого метода (как и кнопки обновления словаря в дизайнере) нет. В итоге в дизайнере не отображаются изменения словаря.
Как решить эту проблему?
Кастомизация дизайнера отчетов
Стал использовать
При этом у пользователя запрашивается подтверждение синхронизации (MessageBox). Можно от него как-то избавиться?
Код: Выделить всё
Stimulsoft.Report.Design.Panels.StiDictionaryPanelService ps =
Stimulsoft.Report.Design.Panels.StiDictionaryPanelService.GetService(this.DesignerControl as StiDesignerControl);
ps.InvokeSynchronize();
Кастомизация дизайнера отчетов
При собственной обработке сохранения отчета в дизайнере
не закрывается окно дизайнера при сценарии:
- пользователь меняет отчет
- нажимает кнопку закрытия дизайнера
- спрашивается у пользователя, сохранять ли изменения
- пользователь выбирает "да" (сохранить изменения перед закрытием).
В 2008.1 дизайнер закрывается.
Даже если вызвать метод Close()закрытия не происходит.
Код: Выделить всё
StiDesigner.SavingReport += new StiSavingObjectEventHandler(StiDesigner_SavingReport);
- пользователь меняет отчет
- нажимает кнопку закрытия дизайнера
- спрашивается у пользователя, сохранять ли изменения
- пользователь выбирает "да" (сохранить изменения перед закрытием).
В 2008.1 дизайнер закрывается.
Даже если вызвать метод Close()
Код: Выделить всё
static void StiDesigner_SavingReport(object sender, StiSavingObjectEventArgs e)
{
...
((sender as StiDesignerControl).Parent as StiDesigner).Close()
}
Кастомизация дизайнера отчетов
Здравствуйте,
Спасибо.
Используйте следующий код:unic писал(а):Доброго времени суток.
Переходим с версии 2008.1 на 2008.2.
Используется класс - наследник StiDesigner. В нем происходит изменение словаря отчета и вызывается метод InvokeRefreshDictionary(). В 2008.2 этого метода (как и кнопки обновления словаря в дизайнере) нет. В итоге в дизайнере не отображаются изменения словаря.
Как решить эту проблему?
Код: Выделить всё
this.DesignerControl.InvokeRefreshDictionary();
Кастомизация дизайнера отчетов
Здравствуйте,
Спасибо.
Спасибо, постараемся поправить.
Удерживайте клавишу Ctrl при загрузке или воспользуйтесь меню Options.Еще, возможно глупый, вопрос. Как из стандартного режима GUI переключиться обратно в Ribbon?
Используйте следующий код:И как сделать это программно? В примере "DesignerManagement" этого не увидел.
Код: Выделить всё
Stimulsoft.Report.StiSelectGuiHelper.IsRibbonGui = true;
Кастомизация дизайнера отчетов
Здравствуйте,
Спасибо.
Ошибка исправлена. Патч будет включен в билд от 1 декабря.unic писал(а):При собственной обработке сохранения отчета в дизайнерене закрывается окно дизайнера при сценарии:Код: Выделить всё
StiDesigner.SavingReport += new StiSavingObjectEventHandler(StiDesigner_SavingReport);
- пользователь меняет отчет
- нажимает кнопку закрытия дизайнера
- спрашивается у пользователя, сохранять ли изменения
- пользователь выбирает "да" (сохранить изменения перед закрытием).
Спасибо.
Кастомизация дизайнера отчетов
Спасибо.Vital писал(а): Используйте следующий код:
Код: Выделить всё
this.DesignerControl.InvokeRefreshDictionary();
Небольшое уточнение:
Код: Выделить всё
(this.DesignerControl as StiDesignerControl).InvokeRefreshDictionary();
Кастомизация дизайнера отчетов
Здравствуйте. Когда будет доступен данный билд?Vital писал(а):Ошибка исправлена. Патч будет включен в билд от 1 декабря.
Кастомизация дизайнера отчетов
Здравствуйте,
Спасибо.
Да, все верно. Извините за неточность.Небольшое уточнение:
Код: Выделить всё
(this.DesignerControl as StiDesignerControl).InvokeRefreshDictionary();
Там может оказаться только StiDesignerControl или его наследники, вроде StiRibbonDesignerControl.Будет неприятно, если в StiDesigner.DesignerControl окажется не StiDesignerControl
Так сложилось исторически, что первочанально дизайнер отчетов был формой (только формой). Позже добавили его как контрол, который фактически был унаследован от формы. Такое решение имело целый букет недостатков. В версии 2008.2 все было переделано с нуля. Появилась отдельная форма дизайнера и отдельный контрол дизайнера (как контрол). Кроме этого дизайнер отчетов был вынесен в отдельную сборку. Для реализации этих действий понадобилось добавить какое количество новых интерфейсов.Почему StiDesigner.DesignerControl является интерфейсом (IStiDesignerBase)?
Спасибо.