SetData(Data: IRdsDictionaryElementData);
SetData(Data: Prognoz.Platform.Interop.Rds.IRdsDictionaryElementData);
Data. Обновляемые данные.
Метод SetData устанавливает данные, которые необходимо обновить.
Для получения данных справочника НСИ используйте метод IRdsDictionaryElements.CreateData.
Для выполнения примера в репозитории предполагается наличие репозитория НСИ с идентификатором «RDS». Данный репозиторий должен содержать табличный справочник НСИ с идентификатором «DIC».
Добавьте ссылки на системные сборки «Metabase», «Rds».
Sub UserProc;
Var
mb: IMetabase;
RdrRepoDescr: IMetabaseObjectDescriptor;
RdsDictObj: IMetabaseObject;
RdsDict: IRdsDictionary;
DictInst: IRdsDictionaryInstance;
Batch: IRdsDictionaryBatchUpdate;
Attr: IRdsAttribute;
data: IRdsDictionaryElementData;
Filters: IRdsDictionaryFilterConditions;
Begin
mb := MetabaseClass.Active;
RdrRepoDescr := mb.ItemById("RDS_REPO");
RdsDictObj := mb.ItemByIdNamespace("DICT_UPD", RdrRepoDescr.Key).Edit;
DictInst := RdsDictObj.Open(Null) As IRdsDictionaryInstance;
batch := DictInst.CreateBatch(RdsDictionaryBatchType.Update) As IRdsDictionaryBatchUpdate;
data := DictInst.Elements.CreateData;
RdsDict := RdsDictObj As IRdsDictionary;
Attr := RdsDict.Attributes.FindById("NAME");
Filters := batch.Filter;
If Filters.FindByAttribute(Attr) <> Null Then
Filters.Clear;
End If;
data.Value(data.AttributeIndex(Attr.Key)) := "Element";
batch.SetData(data);
batch.Execute;
End Sub UserProc;
После выполнения примера все элементы справочника «DIC» будут иметь наименование «Element».
Для выполнения примера в репозитории предполагается наличие репозитория НСИ с идентификатором «RDS». Данный репозиторий должен содержать табличный справочник НСИ с идентификатором «DIC».
Imports Prognoz.Platform.Interop.Rds;
…
[STAThread]
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
RdrRepoDescr: IMetabaseObjectDescriptor;
RdsDictObj: IMetabaseObject;
RdsDict: IRdsDictionary;
DictInst: IRdsDictionaryInstance;
Batch: IRdsDictionaryBatchUpdate;
Attr: IRdsAttribute;
data: IRdsDictionaryElementData;
Filters: IRdsDictionaryFilterConditions;
Begin
mb := Params.Metabase;
RdrRepoDescr := mb.ItemById["RDS_REPO"];
RdsDictObj := mb.ItemByIdNamespace["DICT_UPD", RdrRepoDescr.Key].Edit();
DictInst := RdsDictObj.Open(Null) As IRdsDictionaryInstance;
batch := DictInst.CreateBatch(RdsDictionaryBatchType.rdbtUpdate) As IRdsDictionaryBatchUpdate;
data := DictInst.Elements.CreateData();
RdsDict := RdsDictObj As IRdsDictionary;
Attr := RdsDict.Attributes.FindById("NAME");
Filters := batch.Filter;
If Filters.FindByAttribute(Attr) <> Null Then
Filters.Clear();
End If;
data.Value[data.AttributeIndex[Attr.Key]] := "Element";
batch.SetData(data);
batch.Execute();
End Sub;
После выполнения примера все элементы справочника «DIC» будут иметь наименование «Element».
См. также: