TimeDependencyEnabled: Boolean;
TimeDependencyEnabled: boolean;
Свойство TimeDependencyEnabled возвращает признак доступности установить для формул зависимость от времени.
Данное свойство возвращает True, если в приемнике имеется календарное измерение, иначе - False.
Для выполнения примера в репозитории предполагается наличие базы данных с идентификатором DB, а так же двух стандартных кубов с идентификаторами CUBE_INPUT и CUBE_OUTPUT. В кубе с идентификатором CUBE_OUTPUT должно быть календарное измерение.
Добавьте ссылки на системные сборки: Cubes, Db, Metabase.
Sub UserProc;
Var
MB: IMetabase;
CrInfo: IMetabaseObjectCreateInfo;
MObj: IMetabaseObject;
MDCalc: IMDCalculation;
Cube: ICubeModel;
Source: IMDCalculationSource;
Destination: IMDCalculationDestination;
FormulasTable: IMDCalculationFormulasTable;
TableForFormulas: ITable;
Begin
// Получаем текущий репозиторий
MB := MetabaseClass.Active;
// Создаём объект и задаём его параметры
CrInfo := MB.CreateCreateInfo;
CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_MDCALCULATION;
CrInfo.Id := MB.GenerateId("MDCALC");
CrInfo.Name := "Многомерный расчет на сервере";
CrInfo.Parent := Null;
// Получаем объект "Многомерный расчет на сервере"
MObj := MB.CreateObject(CrInfo).Edit;
MDCalc := MObj As IMDCalculation;
// Добавляем базу данных
MDCalc.Database := MB.ItemById("DB").Bind As IDatabase;
// Указываем куб-источник
Cube := MB.ItemById("CUBE_INPUT").Bind As ICubeModel;
Source := MDCalc.Sources.AddCube(Cube);
// Указываем куб-назначение
Destination := MDCalc.Destination;
Destination.SetCube(MB.ItemById("CUBE_OUTPUT").Bind As ICubeModel);
// Создаем новую таблицу формул
If MDCalc.TimeDependencyEnabled Then
MDCalc.TimeDependent := True;
End If;
FormulasTable := MDCalc.FormulasTable;
TableForFormulas := FormulasTable.Create;
FormulasTable.Attach(TableForFormulas);
// Сохраняем "Многомерный расчет на сервере"
MObj.Save;
End Sub UserProc;
После выполнения примера в корневом каталоге репозитория будет создан объект «Многомерный расчет на сервере БД», для которого будут установлены куб-источник, куб-назначение, создана новая таблица формул, включена возможность указывать период действия для формул.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Db;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
CrInfo: IMetabaseObjectCreateInfo;
MObj: IMetabaseObject;
MDCalc: IMDCalculation;
Cube: ICubeModel;
Source: IMDCalculationSource;
Destination: IMDCalculationDestination;
FormulasTable: IMDCalculationFormulasTable;
TableForFormulas: ITable;
Begin
// Получаем текущий репозиторий
MB := Params.Metabase;
// Создаём объект и задаём его параметры
CrInfo := MB.CreateCreateInfo();
CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_MDCALCULATION As Int32;
CrInfo.Id := MB.GenerateId("MDCALC", 0);
CrInfo.Name := "Многомерный расчет на сервере";
CrInfo.Parent := Null;
// Получаем объект "Многомерный расчет на сервере"
MObj := MB.CreateObject(CrInfo).Edit();
MDCalc := MObj As IMDCalculation;
// Добавляем базу данных
MDCalc.Database := MB.ItemById["DB"].Bind() As IDatabase;
// Указываем куб-источник
Cube := MB.ItemById["CUBE_INPUT"].Bind() As ICubeModel;
Source := MDCalc.Sources.AddCube(Cube);
// Указываем куб-назначение
Destination := MDCalc.Destination;
Destination.SetCube(MB.ItemById["CUBE_OUTPUT"].Bind() As ICubeModel);
// Создаем новую таблицу формул
If MDCalc.TimeDependencyEnabled Then
MDCalc.TimeDependent := True;
End If;
FormulasTable := MDCalc.FormulasTable;
TableForFormulas := FormulasTable.Create(TableForFormulas);
FormulasTable.Attach(TableForFormulas);
// Сохраняем "Многомерный расчет на сервере"
MObj.Save();
End Sub;
См. также: