Overview #

Класс RowReader используется для построчного чтения данных из:

  • текстовых csv-файлов.;
  • файлов в форматах Office Open XML xlsx-файлов;
  • активной рабочей книги, открытой в пользовательском интерфейсе приложения almaGRID.

Для создания экземпляра класса RowReader используйте app.NewReader.

Свойства #

EndOfData #

Overview
В текущей строке отсутствуют данные.

EndOfData  ( [Detection  String  = '' ], [ColumnOffset  Integer  = 0 ] )Boolean

Значение свойства (ReadOnly)
Тип: Boolean
True - если в текущей строке отсутствуют данные; False - в противном случае.

Параметры

Detection String Необязательный параметр. Значение по умолчанию '' .

См. описание параметра в FrameReader.EndOfData

ColumnOffset Integer Необязательный параметр. Значение по умолчанию 0 .

См. описание параметра в FrameReader.EndOfData

VBScript

if rd.EndOfData then
  '.....
End If

almaGRID API

EndOfRow #

Overview
В текущей позиции чтения данных отсутствуют данные.

EndOfRow  ( [Detection  String  = '' ] )Boolean

Значение свойства (ReadOnly)
Тип: Boolean
True - если в текущей позиции отсутствуют данные, False - в противном случае.

Параметры

Detection String Необязательный параметр. Значение по умолчанию '' .

См. описание параметра в FrameReader.EndOfData

VBScript

if rd.EndOfRow then
  '.....
End If

almaGRID API

RangeFields #

Overview
Массив названий и типов полей, используемых при чтении диапазона RowReader.ReadRange (см. параметр 'RangeFields' в app.NewReader).

RangeFields   : Array

Значение свойства
Тип: Array
Массив названий и типов полей (см. параметр 'RangeFields' в app.NewReader).

VBScript

'будет выведен второй элемент массива, возвращемого свойством
ag.app.MsgBox rd.RangeFields()(1)

almaGRID API

Sheet #

Overview
Имя или номер листа многостраничного источника данных (см. параметр 'Sheet' в app.NewReader).

Sheet   : Variant

Значение свойства
Тип: Variant
Если источник данных является многостраничным, то при присвоении изменяет текущий лист, а также устанавливает фрейм и текущий указатель на первую строку левый столбец выбранного листа.

VBScript

rd.Sheet = "Лист2"

almaGRID API

Методы #

Close #

Overview
Закрывает источник данных связанный с файлом, указанным в app.NewReader и освобождает используемую память.

Можно закрыть только ридер, созданный с помощью app.NewReader.
При попытке закрыть дополнительный ридер FrameReader.AuxReader ничего не произойдет.

Close  

VBScript

rd.Close

almaGRID API

NextColumn #

Overview
Делает текущим следующее в этой же строке значение или, если указан ColumnsToSkip, значение, смещенное на ColumnsToSkip.

NextColumn  ( [ColumnsToSkip  Integer  = 1 ] )

Параметры

ColumnsToSkip Integer Необязательный параметр. Значение по умолчанию 1 .

Количество столбцов, на которое происходит смещение текущей позиции чтения данных.

VBScript

rd.NextColumn
rd.NextColumn 3

almaGRID API

NextRow #

Overview
Делает текущим первое значение в следующей строке или, если указан RowsToSkip, то строки, смещенной на RowsToSkip.

NextRow  ( [RowsToSkip  Integer  = 1 ] )

Параметры

RowsToSkip Integer Необязательный параметр. Значение по умолчанию 1 .

Количество строк, на которое происходит смещение текущей позиции чтения данных.

VBScript

rd.NextRow
rd.NextRow -5

almaGRID API

Read #

Overview
Читает текущее значение. Сдвигает текущую позицию чтения данных на значение в этой же строке, в следующем столбце.

Read  ( [ValueType  String  = 'String' ] )Variant

Возвращаемое значение
Тип: Variant
Значение из текущей позиции чтения данных или null, если значение не удалось привести к заданному типу.

Параметры

ValueType String Необязательный параметр. Значение по умолчанию 'String' .

Тип, к которому будет приведено прочитанное значение, см. app.NewReader.

VBScript

a = rd2.ReadRange("Double")

a = rd2.ReadRange

almaGRID API

ReadArray #

Overview
Читает диапазон полей текущей строки начиная с текущей позиции чтения данных. Сдвигает текущую позицию чтения данных на количество значений, описанных в диапазоне.

ReadArray   : Array

Возвращаемое значение
Тип: Array
Массив значений полей (первый индекс-0) или null, если значение не удалось привести к заданному типу.

VBScript

arr = rd.ReadArray

almaGRID API

ReadArrayLn #

Overview
Читает диапазон полей текущей строки начиная с текущей позиции чтения данных. Сдвигает текущую позицию чтения данных на количество значений, описанных в диапазоне.

ReadArrayLn   : Array

Возвращаемое значение
Тип: Array
Массив значений полей (первый индекс-0) или null, если значение не удалось привести к заданному типу.

VBScript

arr = rd.ReadArray

almaGRID API

ReadRange #

Overview
Читает диапазон полей текущей строки начиная с текущей позиции чтения данных. Сдвигает текущую позицию чтения данных на первый столбец следующей строки.

ReadRange   : Dictionary

Возвращаемое значение
Тип: Dictionary
Набор пар 'НазваниеПоля'-'Значение' или null, если значение не удалось привести к заданному типу.

Комментарии

Если обрабатываются большие массивы информации, то рекомендуется использовать более быстрый метод ReadArray.

VBScript

Set rd2 = ag.app.NewReader("RowReader", _
							ag.database.FolderPath & "Книга1.xlsx", "Лист3", _
							Array(2, "Количество, шт.<Integer>", 3, "Пробег, км<Double>"))

Do While Not rd2.EndOfData
	Set d = rd2.ReadRange
    if d("Количество, шт.") > 25 then
    '......
    end if
	rd2.NextRow
Loop

rd2.Close

almaGRID API

ReadRangeLn #

Overview
Читает диапазон полей текущей строки начиная с текущей позиции чтения данных. Сдвигает текущую позицию чтения данных на первый столбец следующей строки.

ReadRangeLn   : Dictionary

Возвращаемое значение
Тип: Dictionary
Набор пар 'НазваниеПоля'-'Значение' или null, если значение не удалось привести к заданному типу.

Комментарии

Если обрабатываются большие массивы информации, то рекомендуется использовать более быстрый метод ReadArrayLn}.

VBScript

Set rd2 = ag.app.NewReader("RowReader", _
							ag.database.FolderPath & "Файл1.csv", "", _
							Array(2, "Количество, шт.<Integer>", 3, "Пробег, км<Double>"))

Do While Not rd2.EndOfData
	Set d = rd2.ReadRangeLn
    '......
Loop

rd2.Close

almaGRID API

Examples #

Пример RowReader #

VBScript

'Чтение XLSX-файла
Set rd2 = ag.app.NewReader("RowReader", _
                           ag.database.FolderPath & "Книга1.xlsx", "Лист2", _
                           Array(2, "Вагонетка<String>", 1, "Пробег, км<Double>"))

''Чтение CSV-файла
'Set rd2 = ag.app.NewReader("RowReader", _
'                           ag.database.FolderPath & "Книга1-2.csv", "", _
'                           Array(2, "Вагонетка<String>", 1, "Пробег, км<Double>"), "<prm csvDelimiter=','/>")

''Чтение листа текущей рабочей книги пользовательского интерфейса
'Set rd2 = ag.app.NewReader("RowReader", _
'                           "", "Лист2", _
'                           Array(2, "Вагонетка<String>", 1, "Пробег, км<Double>"))

rd2.NextRow 1

Set Data = ag.app.NewObject("HashTable")
Do While Not rd2.EndOfData
    Set record = rd2.ReadRangeLn
    Data.Add record("Вагонетка"), record("Пробег, км")
Loop


ag.app.MsgBox ag.app.Stringify(Data)
rd2.Close


'Таблица - верхний левый угол - ячейка A1:
'Отдел   Количество, шт. Вагонетка Дата    Пробег, км
'Отдел1  23  Вагонетка24  25.02.2022  76,8
'Отдел2  27  Вагонетка45  24.04.2022  73,1

'Результат:
'{
'  "Вагонетка45": 73.1,
'  "Вагонетка24": 76.8
'}

almaGRID API

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: