SaveObject: IMetabaseObjectDescriptor;
SaveObject: Prognoz.Platform.Interop.Metabase.IMetabaseObjectDescriptor;
Свойство SaveObject определяет описание сохраняемого объекта репозитория.
Если данное свойство установлено, то диалог будет выдан для сохранения указанного объекта с новым идентификатором и наименованием. При инициализации диалога идентификатор и наименование будут сгенерированы автоматически. Также в диалоге можно выбрать существующий объект, который будет перезаписан.
Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1» и компонента MetabaseSaveDialog с наименованием «MetabaseSaveDialog1». В репозитории имеется объект с идентификатором «UserObject».
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
MB: IMetabase;
MObjDesc: IMetabaseObjectDescriptor;
ClassFilter: IMetabaseDialogClassFilter;
Filters: IMetabaseDialogFilters;
i: Integer;
Begin
MB := MetabaseClass.Active;
//Объект, который необходимо сохранить
//с новым идентификатором и наименованием
MObjDesc := MB.ItemById("UserObject");
//Фильтр для возможности сохранения объекта в существующий объект
//такого же класса
ClassFilter := New MetabaseDialogClassFilter.Create;
ClassFilter.ObjectClass := MetabaseClass.GetMetabaseObjectClass(MObjDesc.ClassId);
Filters := MetabaseSaveDialog1.Filters;
i := Filters.AddFilter(ClassFilter);
MetabaseSaveDialog1.FilterIndex := i;
//Указание сохраняемого объекта
MetabaseSaveDialog1.SaveObject := MObjDesc;
MetabaseSaveDialog1.Execute(Self);
End Sub Button1OnClick;
После выполнения примера при нажатии на кнопку будет выведен диалог сохранения указанного объекта с новым идентификатором и наименованием. В диалоге будет возможен выбор существующих объектов такого же класса.
Для выполнения примера предполагается наличие .NET-формы, расположенной на ней кнопки с наименованием «Button1» и компонента MetabaseSaveDialogNet с наименованием «MetabaseSaveDialogNet1». В репозитории имеется объект с идентификатором «UserObject».
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
MB: IMetabase;
MBClass: MetabaseClassClass = New MetabaseClassClass();
MObjDesc: IMetabaseObjectDescriptor;
ClassFilter: IMetabaseDialogClassFilter;
Filters: IMetabaseDialogFilters;
i: integer;
Begin
MB := Self.Metabase;
//Объект, который необходимо сохранить
//с новым идентификатором и наименованием
MObjDesc := MB.ItemById["UserObject"];
//Фильтр для возможности сохранения объекта в существующий объект
//такого же класса
ClassFilter := New MetabaseDialogClassFilter();
ClassFilter.ObjectClass := MBClass.GetMetabaseObjectClass(MObjDesc.ClassId);
Filters := MetabaseSaveDialogNet1.Filters;
i := Filters.AddFilter(ClassFilter);
MetabaseSaveDialogNet1.FilterIndex := i;
//Указание сохраняемого объекта
MetabaseSaveDialogNet1.SaveObject := MObjDesc;
MetabaseSaveDialogNet1.Execute(Self);
End Sub;
После выполнения примера при нажатии на кнопку будет выведен диалог сохранения указанного объекта с новым идентификатором и наименованием. В диалоге будет возможен выбор существующих объектов такого же класса.
См. также: