Свойства #
IsReady #
Overview
Возвращает состояние готовности приложения almaGRID для обработки запросов по API.
isReady : Boolean
Значение свойства (ReadOnly)
Тип: Boolean
Состояние готовности приложения almaGRID.
VBScript
isReady = ag.app.IsReady
RunMode #
Поддержка в версии: старше или равно 34.24.2.0.
Overview
Возвращает режим работы приложения.
RunMode : String
Значение свойства (ReadOnly)
Тип: String
Принимает значения:
WinFormApp - если приложение запущено с интерфейсом пользователя, \
COMServerApp - если приложние запущено из другого приложения, например, при выполнении скрипта VBScript в среде Windows,
'' (пустая строка) - если не удалось определить режим работы приложения.
VBScript
ag.app.MsgBox ag.app.RunMode
SilentMode #
Overview
Возвращает или устанавливает режим работы приложения без диалога с пользователем. По умолчанию False - диалог с пользователем разрешен.
SilentMode : Boolean
Значение свойства
Тип: Boolean
Принимает значение True - запрет на диалог с пользователем или False в ином случае.
VBScript
ag.app.SilentMode = True
Методы #
ApiVersion #
Поддержка в версии: старше или равно 34.24.2.0.
Overview
Номер версии API.
ApiVersion : String
Возвращаемое значение
Тип: String
Возвращает номер версии API.
VBScript
ag.app.MsgBox ag.app.ApiVersion
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")
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")
ClearCaches #
Overview
Принудительно очищает кэши almaGRID. Обычно очистка происходит при изменении значений в текущей базе данных модели.
ClearCaches
VBScript
ag.ppp.ClearCaches
Convert #
Overview
Конвертирует объект в объект совместимого типа.
Возвращаемое значение
Тип: 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")
NewEngine #
Overview
Создает экземпляр указанного инструмента.
NewEngine ( EngineType String ) : Variant
Возвращаемое значение
Тип: Variant
Объект инструмента.
Параметры
EngineType | String | Имя инструмента:
'NelderMead' - инструмент поиска решений методом Нелдера-Мида MonteCarlo. 'MonteCarlo' - инструмент стохастического моделирования методом Монте-Карло NelderMead.
|
VBScript
Set mc = ag.app.NewEngine("MonteCarlo")
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)
для словарей и таблиц с различным количеством элементов.
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'. |
Комментарии
Замечания по производительности:
- FrameReader и RowReader читают данные из csv-файла примерно с одинаковой скоростью.
- FrameReader читает данные из xlsx-файла быстрее, чем RowReader.
- FrameReader более требователен к размеру доступной оперативной памяти, чем RowReader.
- Обычно, чтение csv-файла происходит быстрее, чем из xlsx-файла.
- Методы ‘ReadArray’ и ‘ReadArrayLn’ выполняюся быстрее, чем методы ‘ReadRange’ и ‘ReadRangeLn’.
VBScript
set rd = ag.app.NewReader("FrameReader", "", "", Array("Количество, шт.<Integer>", "Пробег, км<Double>"))
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")
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.
|
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"