ParamAttribute(Param: IRdsParam): IRdsAttribute;
ParamAttribute[Prognoz.Platform.Interop.Rds.IRdsParam]: Prognoz.Platform.Interop.Rds.IRdsAttribute;
Param. Параметр связанного справочника, для которого необходимо определить привязку.
Свойство ParamAttribute определяет привязку параметра связываемого справочника с атрибутом текущего справочника, через значения которого будет осуществляться управление.
Для выполнения примера предполагается наличие репозитория НСИ - «NSI_1», содержащего справочники НСИ с идентификаторами «Dict_1» и «Dict_2». У второго справочника имеется один параметр. Также следует подключить системные сборки Metabase, Dal и Rds.
Sub Macro;
Var
MB: IMetabase;
MObj: IMetabaseObject;
Dict, Dict2: IRdsDictionary;
Attrs: IRdsAttributes;
LinkAttr, ParamAttr: IRdsAttribute;
Link: IRdsLink;
Param: IRdsParam;
ParamsControl: IRdsParamsControl;
Begin
MB := MetabaseClass.Active;
MObj := MB.ItemByIdNamespace("Dict_1", MB.ItemById("NSI_1").Key).Edit;
Dict := MObj As IRdsDictionary;
Dict2 := MB.ItemByIdNamespace("Dict_2", MB.ItemById("NSI_1").Key).Bind As IRdsDictionary;
//Атрибуты первого справочника
Attrs := Dict.Attributes;
//Атрибут для связи со справочником
LinkAttr := Attrs.Add;
LinkAttr.DataType := DbDataType.Integer;
LinkAttr.Id := "LinkAttr";
LinkAttr.Name := "Атрибут для связи";
//Связь с параметрическим справочником
Link := Dict.Links.Add;
Link.Attribute := LinkAttr;
Link.Reference := Dict2.Attributes.Key;
Link.Id := "Link";
Link.Name := "Связь со справочником Dict_2";
//Параметр, которым необходимо управлять
Param := Link.Reference.Dictionary.Params.Item(0);
//Атрибут для связи со справочником
ParamAttr := Attrs.Add;
ParamAttr.DataType := Param.Attribute.DataType;
ParamAttr.Id := "ParamAttr";
ParamAttr.Name := "Управление параметром";
//Привязка атрибута к параметру второго справочника
ParamsControl := Link.ParamsControl;
ParamsControl.ParamAttribute(Dict2.Params.Item(0)) := ParamAttr;
MObj.Save;
End Sub Macro;
После выполнения примера в первом справочнике будут созданы два атрибута: первый используемый для связи со справочником «Dict_2»; второй - для управления значениями параметра справочника «Dict_2». Между справочниками «Dict_1» и «Dict_2» будет настроена связь по атрибуту «Key», для управления значениями параметра связываемого справочника «Dict_2» будет использоваться атрибут «ParamAttr».
Для выполнения примера предполагается наличие репозитория НСИ - «NSI_1», содержащего справочники НСИ с идентификаторами «Dict_1» и «Dict_2». У второго справочника имеется один параметр. Также следует подключить системные сборки Dal и Rds.
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Rds;
...
Public Shared Sub Macro(Params: StartParams);
Var
MB: IMetabase;
MObj: IMetabaseObject;
Dict, Dict2: IRdsDictionary;
Attrs: IRdsAttributes;
LinkAttr, ParamAttr: IRdsAttribute;
Link: IRdsLink;
Param: IRdsParam;
ParamsControl: IRdsParamsControl;
Begin
MB := Params.Metabase;
MObj := MB.ItemByIdNamespace["Dict_1", MB.ItemById["NSI_1"].Key].Edit();
Dict := MObj As IRdsDictionary;
Dict2 := MB.ItemByIdNamespace["Dict_2", MB.ItemById["NSI_1"].Key].Bind() As IRdsDictionary;
//Атрибуты первого справочника
Attrs := Dict.Attributes;
//Атрибут для связи со справочником
LinkAttr := Attrs.Add();
LinkAttr.DataType := DbDataType.ddtInteger;
LinkAttr.Id := "LinkAttr";
LinkAttr.Name := "Атрибут для связи";
//Связь с параметрическим справочником
Link := Dict.Links.Add();
Link.Attribute := LinkAttr;
Link.Reference := Dict2.Attributes.Key;
Link.Id := "Link";
Link.Name := "Связь со справочником Dict_2";
//Параметр, которым необходимо управлять
Param := Link.Reference.Dictionary.Params.Item[0];
//Атрибут для связи со справочником
ParamAttr := Attrs.Add();
ParamAttr.DataType := Param.Attribute.DataType;
ParamAttr.Id := "ParamAttr";
ParamAttr.Name := "Управление параметром";
//Привязка атрибута к параметру второго справочника
ParamsControl := Link.ParamsControl;
ParamsControl.ParamAttribute[Dict2.Params.Item[0]] := ParamAttr;
MObj.Save();
End Sub;
После выполнения примера в первом справочнике будут созданы два атрибута: первый используемый для связи со справочником «Dict_2»; второй - для управления значениями параметра справочника «Dict_2». Между справочниками «Dict_1» и «Dict_2» будет настроена связь по атрибуту «Key», для управления значениями параметра связываемого справочника «Dict_2» будет использоваться атрибут «ParamAttr».
См. также: