LanerTable: ILanerTable;
LanerTable: Prognoz.Platform.Interop.Laner.ILanerTable;
Свойство LanerTable возвращает таблицу данных из рабочей книги базы данных временных рядов.
Для получения рабочей книги используйте свойство IEaxAnalyzeCore.Laner.
Для выполнения примера в репозитории предполагается наличие рабочей книги с идентификатором «WORKBOOK», содержащей ряды данных.
Добавьте ссылки на системные сборки: Express, Laner, MathFin, Metabase.
Sub UserProc;
Var
mb: IMetabase;
WbkObj: IMetabaseObject;
EaxAn: IEaxAnalyzer;
LanerTbl: ILanerTable;
i, j: Integer;
Begin
// Получаем рабочую книгу
mb := MetabaseClass.Active;
WbkObj := mb.ItemById("WORKBOOK").Edit;
EaxAn := WbkObj As IEaxAnalyzer;
// Получаем таблицу рабочей книги
LanerTbl := EaxAn.LanerTable;
// Переводим таблицу в режим редактирования
If Not LanerTbl.IsEditing Then
LanerTbl.Edit;
End If;
// Заполняем таблицу случайными числами
For i := 0 To LanerTbl.RowCount - 1 Do
For j := 0 To LanerTbl.ColumnCount - 1 Do
If LanerTbl.IsEditableCell(i, j) Then
LanerTbl.Cell(i, j) := Math.RandBetween(0, 100);
End If;
End For;
End For;
// Выходим из режима редактирования с сохранением данных
LanerTbl.Post;
WbkObj.Save;
End Sub UserProc;
В результате выполнения примера данные в рабочей книге будут заменены случайными числами.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Laner;
Imports Prognoz.Platform.Interop.MathFin;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
WbkObj: IMetabaseObject;
EaxAn: IEaxAnalyzer;
LanerTbl: ILanerTable;
i, j: Integer;
Math: MathClass = New MathClass.Create();
Begin
// Получаем рабочую книгу
mb := Params.Metabase;
WbkObj := mb.ItemById["WORKBOOK"].Edit();
EaxAn := WbkObj As IEaxAnalyzer;
// Получаем таблицу рабочей книги
LanerTbl := EaxAn.LanerTable;
// Переводим таблицу в режим редактирования
If Not LanerTbl.IsEditing Then
LanerTbl.Edit();
End If;
// Заполняем таблицу случайными числами
For i := 0 To LanerTbl.RowCount - 1 Do
For j := 0 To LanerTbl.ColumnCount - 1 Do
If LanerTbl.IsEditableCell[i, j] Then
LanerTbl.Cell[i, j] := Math.RandBetween(0, 100);
End If;
End For;
End For;
// Выходим из режима редактирования с сохранением данных
LanerTbl.Post();
WbkObj.Save();
End Sub;
См. также: