Add(Key: Integer; Id: String; Name: String: [Type: PrxUserButtonType = 0]): IPrxUserButtonAction;
Key. Ключ создаваемой пользовательской кнопки.
Id. Идентификатор создаваемой пользовательской кнопки.
Name. Наименование создаваемой пользовательской кнопки.
Type. Тип создаваемой пользовательской кнопки.
Метод Add создаёт пользовательскую кнопку с заданным описанием и типом.
Для выполнения примера в репозитории предполагается наличие регламентного отчёта с идентификатором REPORT и модуля с идентификатором MOD_ACTION. Модуль содержит следующий код:
В файловой системе предполагается наличие картинки для кнопки D:\Work\Image\btn16x16.png.
Добавьте ссылки на системные сборки: IO, Metabase, Report.
Sub AddUserButton;
Var
Mb: IMetabase;
Report: IPrxReport;
UserBtn: IPrxUserButton;
Begin
Mb := MetabaseClass.Active;
Report := Mb.ItemById("REPORT").Edit As IPrxReport;
// Создание новой пользовательской кнопки
UserBtn := Report.UserButtons.Add(10, "UserBtn", "Запуск", PrxUserButtonType.Method);
// Настройка пользовательской кнопки
UserBtn.ForeModule := Mb.ItemById("MOD_ACTION");
UserBtn.Icon := New FileStream.Create("D:\Work\Image\btn16x16.png", FileOpenMode.Read, FileShare.DenyNone);
UserBtn.IconType := "png";
UserBtn.SmallIcon := False;
// Настройка действий
(UserBtn.Action As IPrxUserButtonActionForeMethod).ForeMethod := "Run";
UserBtn.BeforeAction.ForeMethod := "BeforeRun";
UserBtn.AfterAction.ForeMethod := "AfterRun";
UserBtn.UpdateEnable.ForeMethod := "GetEnable";
// Сохранение изменений
(Report As IMetabaseObject).Save;
End Sub AddUserButton;
При выполнении примера в регламентном отчёте будет создана пользовательская кнопка. Для кнопки будут заданы описание, изображение и обработчики всех действий. В качестве обработчиков выступают Fore-методы.
См. также: