Кастомизация дизайнера отчетов

Обсуждение Stimulsoft Reports.NET
Сергей
Сообщения: 70
Зарегистрирован: 13 окт 2008, 03:56
Откуда: Пермь
Контактная информация:

Кастомизация дизайнера отчетов

Сообщение Сергей »

Vital писал(а):Здравствуйте,
unic писал(а): Как добавить свою закладку в RibbonControl? И есть ли возможность добавить свой элемент на панель "Словарь" (в контекстное меню или кнопкой)?
Мы добавили следующие статические события:

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

StiOptions.Engine.GlobalEvents.MenuEditOpenInDesigner
StiOptions.Engine.GlobalEvents.MenuNewOpenInDesigner
StiOptions.Engine.GlobalEvents.MenuActionsOpenInDesigner
Использовать так:

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

StiOptions.Engine.GlobalEvents.MenuEditOpenInDesigner += new EventHandler(GlobalEvents_MenuEditOpenInDesigner);
StiOptions.Engine.GlobalEvents.MenuNewOpenInDesigner += new EventHandler(GlobalEvents_MenuNewOpenInDesigner);
StiOptions.Engine.GlobalEvents.MenuActionsOpenInDesigner += new EventHandler(GlobalEvents_MenuActionsOpenInDesigner);

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

void GlobalEvents_MenuNewOpenInDesigner(object sender, EventArgs e)
{
	Stimulsoft.Controls.Win.DotNetBar.ButtonItem parentItem = sender as Stimulsoft.Controls.Win.DotNetBar.ButtonItem;
	Stimulsoft.Controls.Win.DotNetBar.ButtonItem item = new Stimulsoft.Controls.Win.DotNetBar.ButtonItem();
	item.Text = "New";

	parentItem.SubItems.Add(item);
}

void GlobalEvents_MenuEditOpenInDesigner(object sender, EventArgs e)
{
	Stimulsoft.Controls.Win.DotNetBar.ButtonItem parentItem = sender as Stimulsoft.Controls.Win.DotNetBar.ButtonItem;
	Stimulsoft.Controls.Win.DotNetBar.ButtonItem item = new Stimulsoft.Controls.Win.DotNetBar.ButtonItem();
	item.Text = "Edit";

	parentItem.SubItems.Add(item);
}

void GlobalEvents_MenuActionsOpenInDesigner(object sender, EventArgs e)
{
	Stimulsoft.Controls.Win.DotNetBar.ButtonItem parentItem = sender as Stimulsoft.Controls.Win.DotNetBar.ButtonItem;
	Stimulsoft.Controls.Win.DotNetBar.ButtonItem item = new Stimulsoft.Controls.Win.DotNetBar.ButtonItem();
	item.Text = "Actions";

	parentItem.SubItems.Add(item);
}
Изменения будут доступны в билде от 8 декабря.

Спасибо.
При таком использовании на каждое открытие меню в него будет добавляться пункт: на первое открытие там будет один новый пункт, на два - два одинаковых пункта и т.д. Потому перед

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

parentItem.SubItems.Add(item);
надо озаботиться проверкой, нет ли уже такого пункта в меню.

PS: Когда увидел названия событий, то подумал, что они относятся к главному меню дизайнера, а не к панели редактирования словаря. :shame:
Сергей
Сообщения: 70
Зарегистрирован: 13 окт 2008, 03:56
Откуда: Пермь
Контактная информация:

Кастомизация дизайнера отчетов

Сообщение Сергей »

К тому же, использование статических событий лишает возможности запускать больше одного дизайнера одновременно. Или, по крайней мере, делает задачу определения отчета, который следует редактировать при выборе пункта меню, нетривиальной.
Сергей
Сообщения: 70
Зарегистрирован: 13 окт 2008, 03:56
Откуда: Пермь
Контактная информация:

Кастомизация дизайнера отчетов

Сообщение Сергей »

При использовании кода для настройки панели словаря:

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

Stimulsoft.Report.Design.Panels.StiDictionaryPanelService service = Stimulsoft.Report.Design.Panels.StiDictionaryPanelService.GetService();

service.ShowCategoryNewMenuItem = false;
service.ShowColumnNewMenuItem = false;
service.ShowConnectionNewMenuItem = false;
service.ShowContextMenu = false;
service.ShowCreateFieldOnDoubleClick = false;
service.ShowCreateLabel = false;
service.ShowDataParameterNewMenuItem = false;

....

service.Init(this.DesignerControl as StiDesignerControl);
эффекта не наблюдается.

Если использовать конструктор с параметром

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

Stimulsoft.Report.Design.Panels.StiDictionaryPanelService service = Stimulsoft.Report.Design.Panels.StiDictionaryPanelService.GetService(this.DesignerControl as StiDesignerControl);
эффект есть, но не ожидаемый: исчезают все кнопки и элементы меню панели дизайнера (даже если отключать не все), кроме контекстного меню, в котором по-прежнему доступны все пункты.
Сергей
Сообщения: 70
Зарегистрирован: 13 окт 2008, 03:56
Откуда: Пермь
Контактная информация:

Кастомизация дизайнера отчетов

Сообщение Сергей »

В Ribbon GUI также наблюдается некорректная пристыковка панели:

Изображение
Сергей
Сообщения: 70
Зарегистрирован: 13 окт 2008, 03:56
Откуда: Пермь
Контактная информация:

Кастомизация дизайнера отчетов

Сообщение Сергей »

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

Есть какие-либо изменения по теме?
Vital
Сообщения: 647
Зарегистрирован: 09 июн 2006, 12:23

Кастомизация дизайнера отчетов

Сообщение Vital »

Здравствуйте,
При таком использовании на каждое открытие меню в него будет добавляться пункт: на первое открытие там будет один новый пункт, на два - два одинаковых пункта и т.д. Потому перед

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

parentItem.SubItems.Add(item);
надо озаботиться проверкой, нет ли уже такого пункта в меню.
Да все верно.
PS: Когда увидел названия событий, то подумал, что они относятся к главному меню дизайнера, а не к панели редактирования словаря. :shame:
Наш просчет. Добавили слово Dictionary перед названием событий.

Спасибо.
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Кастомизация дизайнера отчетов

Сообщение Edward »

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

Вам необходимо скачать последний пререлиз билд от 15 Декабря, когда он появится. Действительно была проблема с панелями. Запустите, пожалуйста Дизайнер с нажатой кнопкой 'Shift'

Спасибо.
Ответить