HasEmptyAttribute: Boolean;
HasEmptyAttribute: boolean;
Свойство HasEmptyAttribute определяет, присутствует ли в базе данных временных рядов признак пустоты показателей.
Признак пустоты показателя зависит от значения атрибута показателей «Пустой» (идентификатор - «EMPT»).
Возможные значения HasEmptyAttribute:
True. В базе присутствует атрибут показателей «Пустой»;
False. Значение по умолчанию. Атрибут показателей «Пустой» отсутствует в базе.
Если у показателя все значения в БД на актуальную ревизию являются пустыми (отсутствуют или равны Null), то у него устанавливается признак пустоты. Новый показатель считается пустым, пока в него не сохранили данные.
Для обновления признака пустоты показателей используйте метод IRubricatorInstance.RegenerateEmpty.
Для выполнения примера предполагается наличие базы данных временных рядов с идентификатором «FC_IS_EMPTY». Добавьте ссылки на системные сборки «Metabase», «Cubes».
Sub UserProc;
Var
mb: IMetabase;
RubObj: IMetabaseObject;
Rubr: IRubricator;
RubrInst: IRubricatorInstance;
FactsLookup: IRubricatorFactsLookup;
LookupRes: Array Of Integer;
Key: integer;
FactD: IRubricatorFactData;
Begin
mb := MetabaseClass.Active;
RubObj := mb.ItemById("FC_IS_EMPTY").Edit;
Rubr := RubObj As IRubricator;
If Not Rubr.HasEmptyAttribute Then
Rubr.HasEmptyAttribute := True;
RubObj.Save;
End If;
RubrInst := RubObj.Open(Null) As IRubricatorInstance;
RubrInst.RegenerateEmpty(Null);
FactsLookup := RubrInst.CreateFactsLookup;
FactsLookup.WhereIsEmpty := TriState.OnOption;
LookupRes := FactsLookup.LookupFactors;
If LookupRes <> Null Then
For Each Key In LookupRes Do
FactD := RubrInst.GetFactData(Key);
Debug.WriteLine("Ключ = " + Key.ToString + " Мнемоника = " + FactD.Mnemo);
End For;
Else
Debug.WriteLine("Показатели не найдены");
End If;
End Sub UserProc;
После выполнения примера для базы данных временных рядов будет добавлен признак пустоты показателя и обновлено значение данного признака. Ключи и мнемоники пустых показателей будут выведены в окно консоли.
Для выполнения примера предполагается наличие базы данных временных рядов с идентификатором «FC_IS_EMPTY».
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.Interop.Rds;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
RubObj: IMetabaseObject;
Rubr: IRubricator;
RubrInst: IRubricatorInstance;
FactsLookup: IRubricatorFactsLookup;
Res: Array Of uinteger;
LookupRes: System.Array;
i: integer;
Key: uinteger;
FactD: IRubricatorFactData;
Begin
mb := Params.Metabase;
RubObj := mb.ItemById["FC_IS_EMPTY"].Edit();
Rubr := RubObj As IRubricator;
If Not Rubr.HasEmptyAttribute Then
Rubr.HasEmptyAttribute := True;
RubObj.Save();
End If;
RubrInst := RubObj.Open(Null) As IRubricatorInstance;
RubrInst.RegenerateEmpty(Null);
FactsLookup := RubrInst.CreateFactsLookup();
FactsLookup.WhereIsEmpty := TriState.tsOnOption;
LookupRes := FactsLookup.LookupFactors();
If LookupRes <> Null Then
For i := 0 To LookupRes.Length - 1 Do
Key := uinteger.Parse(LookupRes[i].ToString());
FactD := RubrInst.GetFactData(Key, DictionaryGetDataOptions.dgdoNone);
System.Diagnostics.Debug.WriteLine("Ключ = " + Key.ToString() + " Мнемоника = " + FactD.Mnemo);
End For;
Else
System.Diagnostics.Debug.WriteLine("Ничего не найдено");
End If;
End Sub;
После выполнения примера для базы данных временных рядов будет добавлен признак пустоты показателя и обновлено значение данного признака. Ключи и мнемоники пустых показателей будут выведены в окно консоли.
См. также: