EditRequiresAdditionalLicense: String;
EditRequiresAdditionalLicense: string;
Свойство EditRequiresAdditionalLicense определяет наименование прикладной единицы лицензирования для защиты объектов репозитория от редактирования.
Защита от редактирования доступна для объектов репозитория: ресурсы, сборка, форма, модуль, .NET сборка, .NET форма, .NET модуль.
По умолчанию свойство принимает значение Null. Если значение свойства задано, то при редактировании объекта репозитория дополнительно проверяется наличие прикладной единицы лицензирования с соответствующим наименованием.
Для просмотра доступных единиц лицензирования используйте менеджер лицензий, окно «О программе» или метод ILicenseManager.GetAllFeatures.
Особенности использования свойства:
при изменении значения свойства проверьте наличие текущей прикладной единицы лицензирования до изменения и задаваемой прикладной единицы лицензирования;
наименование прикладной единицы лицензирования должно отличаться от наименований существующих единиц лицензирования;
прикладная единица лицензирования заказывается и генерируется отдельно.
Также для настройки защиты объектов репозитория от редактирования используйте окно «Защита объектов от редактирования».
Для работы с прикладными единицами лицензирования обратитесь к статье «Защита прикладных систем».
Для выполнения примера предполагается наличие формы с компонентами:
Button. Кнопка с наименованием Button1 для получения наименования прикладной единицы лицензирования и кнопка Button2 для защиты объектов репозитория от редактирования;
EditBox. Компонент с наименованием EditBox1 для ввода идентификатора объекта и компонент EditBox2 для ввода/вывода наименования прикладной единицы лицензирования. Для примера на Fore.NET используйте компоненты TextBox c наименованиями textBox1 и textBox2.
Добавьте ссылки на системные сборки: 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;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Forms.Net;
…
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
Mb: IMetabase;
Obj: IMetabaseObjectDescriptor;
Begin
Mb := Self.Metabase;
Obj := Mb.ItemById[textBox1.Text];
textBox2.Text := Obj.Bind().EditRequiresAdditionalLicense;
End Sub;
Private Sub button2_Click(sender: System.Object; e: System.EventArgs);
Var
Mb: IMetabase;
Obj: IMetabaseObjectDescriptor;
Lic: IMetabaseObject;
Begin
Mb := Self.Metabase;
Obj := Mb.ItemById[textBox1.Text];
Lic := Obj.Edit();
Lic.EditRequiresAdditionalLicense := textBox2.Text;
Lic.Save();
End Sub;
После выполнения примера введите идентификатор объекта репозитория в компоненте EditBox1 и нажмите кнопку Button1. Будет получено наименование прикладной единицы лицензирования и отображено в компоненте EditBox2, если объект защищен от редактирования. Если объект не защищен от редактирования прикладной единицей лицензирования, то для защиты введите в компонент EditBox2 наименование прикладной единицы лицензирования и нажмите кнопку Button2. Заданный объект репозитория будет защищен от редактирования прикладной единицей лицензирования.
См. также: