EditRequiresAdditionalLicense: String;
Свойство EditRequiresAdditionalLicense определяет наименование прикладной единицы лицензирования для защиты объектов репозитория от редактирования.
Защита от редактирования доступна для объектов репозитория: ресурсы, сборка, форма, модуль.
По умолчанию свойство принимает значение Null. Если значение свойства задано, то при редактировании объекта репозитория дополнительно проверяется наличие прикладной единицы лицензирования с соответствующим наименованием.
Для просмотра доступных единиц лицензирования используйте менеджер лицензий, окно «О программе» или метод ILicenseManager.GetAllFeatures.
Особенности использования свойства:
при изменении значения свойства проверьте наличие текущей прикладной единицы лицензирования до изменения и задаваемой прикладной единицы лицензирования;
наименование прикладной единицы лицензирования должно отличаться от наименований существующих единиц лицензирования;
прикладная единица лицензирования заказывается и генерируется отдельно.
Также для настройки защиты объектов репозитория от редактирования используйте окно «Защита объектов от редактирования».
Для работы с прикладными единицами лицензирования обратитесь к статье «Защита прикладных систем».
Для выполнения примера предполагается наличие формы с компонентами:
Button. Кнопка с наименованием Button1 для получения наименования прикладной единицы лицензирования и кнопка Button2 для защиты объектов репозитория от редактирования;
EditBox. Компонент с наименованием EditBox1 для ввода идентификатора объекта и компонент EditBox2 для ввода/вывода наименования прикладной единицы лицензирования.
Добавьте ссылки на системные сборки: Metabase, Forms.
Пример является обработчиком события OnClick для компонента Button1 и Button2.
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
Mb: IMetabase;
Obj: IMetabaseObjectDescriptor;
Begin
Mb := MetabaseClass.Active;
Obj := Mb.ItemById(EditBox1.Text);
EditBox2.Text := Obj.Bind.EditRequiresAdditionalLicense;
End Sub Button1OnClick;
Sub Button2OnClick(Sender: Object; Args: IMouseEventArgs);
Var
Mb: IMetabase;
Obj: IMetabaseObjectDescriptor;
Lic: IMetabaseObject;
Begin
Mb := MetabaseClass.Active;
Obj := Mb.ItemById(EditBox1.Text);
Lic := Obj.Edit;
Lic.EditRequiresAdditionalLicense := EditBox2.Text;
Lic.Save;
End Sub Button2OnClick;
После выполнения примера введите идентификатор объекта репозитория в компоненте EditBox1 и нажмите кнопку Button1. Будет получено наименование прикладной единицы лицензирования и отображено в компоненте EditBox2, если объект защищен от редактирования. Если объект не защищен от редактирования прикладной единицей лицензирования, то для защиты введите в компонент EditBox2 наименование прикладной единицы лицензирования и нажмите кнопку Button2. Заданный объект репозитория будет защищен от редактирования прикладной единицей лицензирования.
См. также: