almaGRID API

Свойства #

IsReady #

Overview
Возвращает состояние готовности приложения almaGRID для обработки запросов по API.

isReady   : Boolean

Значение свойства (ReadOnly)
Тип: Boolean
Состояние готовности приложения almaGRID.

VBScript

isReady = ag.app.IsReady

almaGRID API

RunMode #

Поддержка в версии: старше или равно 34.24.2.0.

Overview
Возвращает режим работы приложения.

RunMode   : String

Значение свойства (ReadOnly)
Тип: String
Принимает значения:

WinFormApp - если приложение запущено с интерфейсом пользователя, \

COMServerApp - если приложние запущено из другого приложения, например, при выполнении скрипта VBScript в среде Windows,

'' (пустая строка) - если не удалось определить режим работы приложения.

VBScript

ag.app.MsgBox ag.app.RunMode

almaGRID API

SilentMode #

Overview
Возвращает или устанавливает режим работы приложения без диалога с пользователем. По умолчанию False - диалог с пользователем разрешен.

SilentMode   : Boolean

Значение свойства
Тип: Boolean
Принимает значение True - запрет на диалог с пользователем или False в ином случае.

VBScript

ag.app.SilentMode = True

almaGRID API

Методы #

ApiVersion #

Поддержка в версии: старше или равно 34.24.2.0.

Overview
Номер версии API.

ApiVersion   : String

Возвращаемое значение
Тип: String
Возвращает номер версии API.

VBScript

ag.app.MsgBox ag.app.ApiVersion

almaGRID API

ApiVersionInRange #

Поддержка в версии: старше или равно 34.24.2.0.

Overview
Определяет нахождение текущей версии API в заданном диапазоне.

ApiVersionInRange  ( MinVersionStr  String , MaxVersionStr  String  )Boolean

Возвращаемое значение
Тип: Boolean
Возвращает True, если текущая версия API находится в заданном диапазоне версий и False в противном случае.

Параметры

MinVersionStr String Строка вида 'x.x.x.x' - версия начала диапазона (включена в диапазон).

MaxVersionStr String Строка вида 'x.x.x.x' - версия окончания диапазона (включена в диапазон).

VBScript

ag.app.MsgBox ag.app.ApiVersionInRange("32.0.0.0", "35.0.0.0") 

almaGRID API

ApiVersionIsHigherOrEqual #

Поддержка в версии: старше или равно 34.24.2.0.

Overview
Сравнивает текущую версию API с заданной.

ApiVersionIsHigherOrEqual  ( VersionStr  String  )Boolean

Возвращаемое значение
Тип: Boolean
Возвращает True, если текущая версия API больше или равна заданной версии и False в противном случае.

Параметры

VersionStr String Строка вида 'x.x.x.x' - версия, с которой сравнивается текущая версия API.

VBScript

ag.app.MsgBox ag.app.ApiVersionIsHigherOrEqual("32.0.0.0")

almaGRID API

ClearCaches #

Overview
Принудительно очищает кэши almaGRID. Обычно очистка происходит при изменении значений в текущей базе данных модели.

ClearCaches  

VBScript

ag.ppp.ClearCaches

almaGRID API

Convert #

Overview
Конвертирует объект в объект совместимого типа.

Convert  ( FromObject  Variant , ToTypeStr  String  )Variant

Возвращаемое значение
Тип: Variant
Объект заданного типа, в который из заданного объекта скопированы значения элементов простых типов и ссылки на элементы-экземпляры классов.

Параметры

FromObject Variant Объект, который будет конвертирован.

ToTypeStr String Тип, которому будет приведен конвертируемый объект:

'Dictionary' - тип Dictionary, именованный список.

'List' - тип List, список.

'Scripting.Dictionary' - тип Interop.Scripting.DictionaryClass, объект, в котором хранятся пары 'Ключ'-'Элемент' данных.

'HashTable' - тип System.Collections.HashTable, коллекция пар 'Ключ'-'Значение', которые упорядочены по хэш-коду ключа.

'SortedList' - тип System.Collections.SortedList, коллекция пар 'Ключ'-'Значение', упорядоченых по ключам.

'ArrayList' - тип System.Collections.ArrayList, коллекция элементов в виде массива с динамическим увеличением размера.

VBScript

'конвертирование таблиц и словарей
'
Set OD = NewObject("Dictionary")
OD.Add "OD-0", 222
OD.Add "OD-1", Array(11,"Яблоко")
OD.Add "OD-2", "String3"

Set dict = ag.app.Convert(OD, "Scripting.Dictionary")
Set dict = ag.app.Convert(OD, "Dictionary")
Set dict = ag.app.Convert(OD, "HashTable")
Set dict = ag.app.Convert(OD, "SortedList")


'конвертирование списков
'
Set OL = ag.app.NewObject("List")
OL.Add 222
OL.Add Array(11,"Яблоко")
OL.Add "String3"

Set list = ag.app.Convert(OL, "ArrayList")
Set list = ag.app.Convert(OL, "List")

almaGRID API

NewEngine #

Overview
Создает экземпляр указанного инструмента.

NewEngine  ( EngineType  String  )Variant

Возвращаемое значение
Тип: Variant
Объект инструмента.

Параметры

EngineType String Имя инструмента:

'NelderMead' - инструмент поиска решений методом Нелдера-Мида MonteCarlo.

'MonteCarlo' - инструмент стохастического моделирования методом Монте-Карло NelderMead.

VBScript

Set mc = ag.app.NewEngine("MonteCarlo")

almaGRID API

NewObject #

Overview
Создает экземпляр указанного класса.

NewObject  ( ObjectType  String , [ValueArray  Array  = null ] )Variant

Возвращаемое значение
Тип: Variant
Объект класса.

Параметры

ObjectType String Имя класса:

'Dictionary' - объект класса Dictionary, именованный список.

'List' - объект класса List, список.

'Obj' - объект класса Obj, объект базы данных.

'ObjCollection' - объект класса ObjCollection, коллекция объектов базы данных.

'ChainCollection' - объект класса ChainCollection, коллекция цепочек (путей) на графе. ValueArray(0)-граф Graph для которого создается коллекция. ValueArray(1)-(необязательный параметр)-Коллекция цепочек ChainCollection, которой будет инициализировна создаваемая коллекция.

'TagSet' - объект класса TagSet, набор тегов.

'File' - объект класса File, текстовый файл.

'Scripting.Dictionary' - объект класса Interop.Scripting.DictionaryClass, объект, в котором хранятся пары 'Ключ'-'Элемент' данных.

'HashTable' - объект класса System.Collections.HashTable, коллекция пар 'Ключ'-'Значение', которые упорядочены по хэш-коду ключа.

'SortedList' - объект класса System.Collections.SortedList, коллекция пар 'Ключ'-'Значение', упорядоченых по ключам.

'ArrayList' - объект класса System.Collections.ArrayList, коллекция элементов в виде массива с динамическим увеличением размера.

ValueArray Array Необязательный параметр. Значение по умолчанию null .

Массив значений, которые будут использованы для инициализации объекта.

VBScript

'----------------------
' List
'----------------------
'Создаем пустой список
Set list1 = ag.app.NewObject("List")

'Создаем список и добавляем к нему пять значений 1, 2, 3, 4, 5
Set list2 = ag.app.NewObject("List", Array(1, 2, 3, 4, 5))


'----------------------
' Dictionary
'----------------------
'Создаем пустой именованный список
Set dict1 = ag.app.NewObject("Dictionary")

'Создаем именованный список и добавляем к нему две пары значений ("Cat" - 23) и ("Dog" - 33)
Set dict2 = ag.app.NewObject("Dictionary", Array("Cat", 23, "Dog", 33))

'это эквивалентно
Set dict2 = ag.app.NewObject("Dictionary")
dict2.Add "Cat", 23
dict2.Add "Dog", 33


'----------------------
' HashTable
'----------------------
'Создаем коллекцию HashTable. В VBScript это эквивалентно CreateObject("System.Collections.HashTable")
Set objHT = ag.app.NewObject("HashTable") 

'Создаем коллекцию SortedList и инициализируем ее значения.
Set objHT = ag.app.NewObject("HashTable", Array("HT-0", objAL, "HT-1", Array(11,"Яблоко"), "HT-2", fruit))

'это эквивалентно
Set objHT = ag.app.NewObject("HashTable")
objHT.Add "HT-0", objAL
objHT.Add "HT-1", Array(11,"Яблоко")
objHT.Add "HT-2", fruit


'----------------------
' SortedList
'----------------------
'Создаем коллекцию SortedList. В VBScript это эквивалентно CreateObject("System.Collections.SortedList")
Set objSL = ag.app.NewObject("SortedList")

'Создаем коллекцию SortedList и инициализируем ее значения.
Set objSL = ag.app.NewObject("SortedList", Array("SL-1", "Стол", "SL-0", Array(33,"Шкаф"), "SL-2", objQ))

'это эквивалентно
Set objSL = ag.app.NewObject("SortedList")
objSL.Add "SL-1", "Стол"
objSL.Add "SL-0", Array(33,"Шкаф")
objSL.Add "SL-2", objQ


'----------------------
' ArrayList
'----------------------
'Создаем динамический массив ArrayList. В VBScript это эквивалентно CreateObject("System.Collections.ArrayList")
Set objAL = ag.app.NewObject("ArrayList")  

'Создаем коллекцию ArrayList и инициализируем ее значения.
Set objAL = ag.app.NewObject("ArrayList", Array(1, "2", 3.3, objSL))

'это эквивалентно
Set objAL = ag.app.NewObject("ArrayList")
objAL.Add 1
objAL.Add "2"
objAL.Add 3.3
objAL.Add objSL

Замечания по производительности.

Ниже приведены результаты оценки производительности

  • добавления элемента (Add),
  • определения вхождения ключа (Contains) и
  • извлечения элемента по ключу (Iterate)

для словарей и таблиц с различным количеством элементов.

almaGRID API

NewReader #

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

NewReader  ( ReaderType  String , Source  String , [Sheet  Variant  = '' ], [RangeFields  Array  = (пустой массив) ], [PrmXML  String  = '' ] )Variant: FrameReader | RowReader

Возвращаемое значение
Тип: Variant: FrameReader | RowReader
Экземпляр класса.

Параметры

ReaderType String Тип ридера:

'FrameReader' - ридер с произвольным доступам к данным FrameReader.

'RowReader' - ридер с построчным доступам к данным RowReader.

Source String Источник данных:

(1) имя текстового файла CSV с расширением .csv) или

(2) имя файла в формате Office Open XML с расширением .xlsx или

(3) '' (пустая строка) - будет использована активная рабочая книга, открытая в пользовательском интерфейсе приложения almaGRID.

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

Используется для многостраничного источника: имя листа - String или индекс листа - Integer. Индекс первого листа - 1. См параметр onlyVisibleSheetIndex строки параметров PrmXML.

(1) имя листа - String или

(2) индекс листа - Integer; индекс первого листа - 1, см. параметр onlyVisibleSheetIndex строки параметров PrmXML или

(3) '' (пустая строка) - будет использован активный лист документа.

RangeFields Array Необязательный параметр. Значение по умолчанию (пустой массив) .

Массив названий и типов полей, используемых при чтении диапазона FrameReader.ReadRange, с элементами: String - НазваниеПоля<ТипПоля> или Integer - количество столбцов, которые будут пропущены при чтении данных.

Приведение строковых значений к указанным типам полей зависит от региональных настроек.

При приведении к целым числам, дробные числа будут округляться.

Название типов полей, в скобках указана поддержка скриптами:

'Boolean'(vbs, js) логический, значения 0 и 'False' приводятся к False (Ложь). Значения 1 и 'True' приводятся к True (Истина).

'Byte','Int8'(vbs) целый, диапазон от 0 до 255.

'Integer','Int16'(vbs) целый, диапазон от -32768 до 32767.

'Long','Int32'(vbs) целый, диапазон от -2147483648 до 2147483647.

'LongLong','Int64' — целый, диапазон от –9223372036854775808 до 9223372036854775807.

'Decimal' — дробный, диапазон от ±1E-28 до ±7,9228162514264337593543950335E+28 System.Decimal.

'Single'(vbs) дробный, диапазон от ±1.5E−45 до ±3.40282347E+38E+38, 6–9 цифр, 4 байта.

'Double'(vbs, js) дробный, диапазон от ±5.0E−324 до ±1.79769313486232E+308, 15–17 цифр, 8 байт. См. флаг app.Set 'TryAssumeAsDbl'.

'DateOLE'(vbs) дата и время в виде значения Double, принятом в OLE-автоматизации для представления даты и времени OLE Date.

'String'(vbs, js) строка.

Если ТипПоля не указан, то значение приводится к строке.

Например, ['Name1',2,'Name2<Long>'] — значения поля 'Name1' будут приведены к строке.

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

Строка параметров в виде <prm name1='value1' name2='value2' ... nameN='valueN'/>

Параметры:

onlyVisibleSheetIndex - Boolean. Если 'True', то при указании индекса скрытые листы не учитываются. Значение по умолчанию: 'True'.

csvDelimiter - String. Разделитель значений в CSV-файле. Значение по умолчанию: ';'.

trimWhiteSpace - Boolean. Указывает, нужно ли удалять начальные и конечные пробелы из значений поля. Значение по умолчанию: 'True'.

removeWhiteSpaceInNumbers - Boolean. Указывает, нужно ли удалять все пробелы из значений полей, приводимых к числам. Значение по умолчанию: 'True'.

Комментарии

Замечания по производительности:

  1. FrameReader и RowReader читают данные из csv-файла примерно с одинаковой скоростью.
  2. FrameReader читает данные из xlsx-файла быстрее, чем RowReader.
  3. FrameReader более требователен к размеру доступной оперативной памяти, чем RowReader.
  4. Обычно, чтение csv-файла происходит быстрее, чем из xlsx-файла.
  5. Методы ‘ReadArray’ и ‘ReadArrayLn’ выполняюся быстрее, чем методы ‘ReadRange’ и ‘ReadRangeLn’.

VBScript

set rd = ag.app.NewReader("FrameReader", "", "", Array("Количество, шт.<Integer>", "Пробег, км<Double>"))

almaGRID API

NewWorkbook #

Поддержка в версии: старше или равно 34.24.2.0.

Overview
Устанавливает или создает рабочую книгу.

NewWorkbook  ( [Source  String  = '' ], [OpenInUserInterface  Boolean  = False ] )

Параметры

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

Рабочая книга:

(1) '' (пустая строка) - будет использована активная рабочая книга пользовательского интерфейса приложения almaGRID или создана новая рабочая книга, если приложение запущено без пользовательского интерфейса.

(2) путь к файлу Office Open XML с расширением .xlsx, с которым будет ассоциирован объект рабочей книги.

(3) Variant, объект рабочей книги Excel.

OpenInUserInterface Boolean Необязательный параметр. Значение по умолчанию False .

Указывает на то, будет ли открываемый файл отображен в пользовательском интерфейсе. Параметр обрабатывается только для вызовов из скриптов, запущенных из пользовательского интерфейса almaGRID.

Комментарии

Открытие файла Open XML с расширением .xlsx использующего специфические описания (например, файла, созданного Excel), может занять продолжительное время. Чтобы повысить производительность, можно использовать csv-файлы или xlsx-файлы предварительно сохраненные из пользовательского интерфейса или скриптов almaGRID.

VBScript

'Использование активной рабочей книги пользовательского интерфейса приложения almaGRID
set wb = ag.app.NewWorkbook()

'Загрузка рабочей книги из файла
set wb = ag.app.NewWorkbook("c:\Users\User1\MyDocuments\file.xlsx")

almaGRID API

Set #

Overview
Устанавливает параметры приложения.

Set  ( Name  String , Value  String  )

Параметры

Name String Имя параметра. Параметры приложения:

'ScriptEncoding' - Кодировка текущего файла скрипта. Значения: 'Unicode', 'UTF32', 'UTF7', 'UTF8', 'ASCII', 'BigEndianUnicode', 'Default'. Значение по умолчанию: 'UTF8'.

'DateFormat' - Строка формата даты. Значение по умолчанию: 'dd.MM.yyyy'.

'CsvDelimiter' - Cимвол-разделитель, используемый в csv-файлах, например ','.

'GlbNormWt' - Нормировочный множитель весов узлов и дуг, только для поддержки проектов, созданных до 05.01.2022. Значения: '1', '10'. Значение по умолчанию: '1'.

'TraceWsChange' - Отслеживание изменений ячеек при использовании Excel. Значения: 'Off' - отключить, 'SwitchBack' - переключить на предыдущее состояние. Значение по умолчанию: Включено.

'TryAssumeAsDbl' - Если в свойствах и методах API-almaGRID будет присвоение переменной типа Double значения, которое непредставимо, как Double, для текущих региональных настроек, то будет предприниматься попытка привести такое значение к типу Double.
Например, в Attrib.Dbl, FrameReader.Read, FrameReader.ReadRange, RowReader.Read, RowReader.ReadRange и т.п.
Значения: 'Off' - отключить, 'On' - включить. Значение по умолчанию: 'On'.

Value String Значение параметра.

VBScript

'Устанавливаем формат даты вида "2022-10-21"
ag.app.Set "DateFormat", "yyy-MM-dd"

'Устанавливаем символ-разделитель, используемый в csv-файлах
ag.app.Set "CsvDelimiter", ";"

'Устанавливаем нормировочный множитель весов узлов и дуг
ag.app.Set "GlbNormWt", 1

'Выключаем/возвращаем прежнее состояние отслеживание изменений ячеек при использовании Excel 
ag.app.Set "TraceWsChange", "Off"
ag.app.Set "TraceWsChange", "SwitchBack"

'Выключаем/выключаем представление нечисловых значений к типу Double
ag.app.Set "TryAssumeAsDbl", "On"
ag.app.Set "TryAssumeAsDbl", "Off"

almaGRID API

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

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

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