IMetabaseObject.ParamValues

Синтаксис

ParamValues: IMetabaseObjectParamValues;

ParamValues: Prognoz.Platform.Interop.Metabase.IMetabaseObjectParamValues;

Свойство ParamValues возвращает объект, содержащий значения параметров для открытия вложенных объектов.

Комментарии

При открытии объекта репозитория с использованием параметров в кэше создается объект, содержащий данные и связанный с открываемым объектом. Для повторного открытия объекта с новыми значениями параметров следует очистить кэш открываемого объекта (Flush, FlushById) или присвоить всем параметрам используемого объекта пустые значения (CreateEmptyValues).

Пример

Для выполнения примера предполагается наличие в репозитории параметрического справочника с идентификатором «PARAM_DICT». В справочнике должен присутствовать числовой параметр с идентификатором «ITEM», влияющий на фильтрацию элементов.

Добавьте ссылки на системные  сборки: Dimensions, Metabase.

Sub UserProc;
Var
    MB: IMetabase;
    currObj: IMetabaseObject;
    currPar: IMetabaseObjectParamValues;
    currDimInst: IDimInstance;
    currEls: IDimElements;
Begin
    MB := MetabaseClass.Active;
    Debug.WriteLine("Открытие справочника с параметром '0'");
    currObj := MB.ItemById("PARAM_DICT").Bind;
    currPar := currObj.ParamValues;
    currPar.FindById("ITEM").Value := 0;
    currDimInst := currObj.Open(currPar) As IDimInstance;
    currEls := currDimInst.Elements;
    Debug.WriteLine("Число элементов: " + currEls.Count.ToString);
    Debug.WriteLine("Открытие справочника с параметром '10'");
    currPar := currObj.Params.CreateEmptyValues;
    currPar.FindById("ITEM").Value := 10;
    currDimInst := currObj.Open(currPar) As IDimInstance;
    currEls := currDimInst.Elements;
    Debug.WriteLine("Число элементов: " + currEls.Count.ToString);
End Sub UserProc;
Imports Prognoz.Platform.Interop.Dimensions
 
Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    currObj: IMetabaseObject;
    currPar: IMetabaseObjectParamValues;
    currDimInst: IDimInstance;
    currEls: IDimElements;
Begin
    MB := Params.Metabase;
    System.Diagnostics.Debug.WriteLine(
"Открытие справочника с параметром '0'");
    currObj := MB.ItemById[
"PARAM_DICT"].Bind();
    currPar := currObj.ParamValues;
    currPar.FindById(
"ITEM").Value := 0;
    currDimInst := currObj.Open(currPar) 
As IDimInstance;
    currEls := currDimInst.Elements;
    System.Diagnostics.Debug.WriteLine(
"Число элементов: " + currEls.Count.ToString());
    System.Diagnostics.Debug.WriteLine(
"Открытие справочника с параметром '10'");
    currPar := currObj.Params.CreateEmptyValues();
    currPar.FindById(
"ITEM").Value := 10;
    currDimInst := currObj.Open(currPar) 
As IDimInstance;
    currEls := currDimInst.Elements;
    System.Diagnostics.Debug.WriteLine(
"Число элементов: " + currEls.Count.ToString());
End Sub;

После выполнения примера справочник будет открыт с различными значениями параметра. В окно консоли будет выведено количество элементов справочника после фильтрации.

См. также:

IMetabaseObject