Я намеренно буду путать понятия "интерфейс", "класс объекта" и "объект класса", заменяя всё на объект. С моей точки зрения это упростит описание. Тем, кто разбирается в этом, я рекомендую первоисточник - файл URepGen.Tlb.
Объектом верхнего уровня для работы с генератором отчётов является URepMain. При использовании в скриптах самого генератора отчётов этот объект не требует точечной нотации. При использовании генератора отчётов в режиме ActiveX сервера необходимо после создания объекта (ProgID="URepGenApp.URepGenApplication") сначала подключиться к БД, вызвав метод Login, а затем получить ссылку на объект через свойство URepMain. Для того чтобы закрыть приложение, нужно вызвать метод Quit.
Вызвав функцию GetReport, можно получить объект UReport,
инкапсулирующий работу с отчётом. Получить отчёт
можно по имени или по Id.
Вызвав функцию GetDataImports, можно получить коллекцию
URepDataImports объектов URepDataImport, предназначенных для
импорта данных.
Через свойствоURepFunction получается доступ к
объекту URepFunction, в котором содержаться глобальные
функции.
Функция NumToWordRus позволяет преобразовать сумму к строке написания, а функция Pretty преобразует строку к виду: первый символ - прописные, остальные - строчные.
Пример запуска генератора отчётов из скрипт-файла WSH (testRun.vbs): |
|
Объект UReport позволяет получить доступ к свойствам и методам отчёта:
Свойство Params - даёт доступ к коллекции URepParams объектов URepParam - параметры запуска данного отчёта. Таким образом можно програмно установить параметры запуска отчёта. Другой способ установки параметров - вызов функции AskParams. В этом случае произойдёт запрос параметров у пользователя стандартным диалогом генератора отчётов.
Свойство GetQuerys - даёт доступ к коллекции URepQuerys объектов URepQuery - запросы в данном отчёте. При первом доступе к свойство GetQuerys происходит открытие запросов с указанными ранее параметрами.
Методы RunReport и RunReportExt выполняют данный отчёт, используя установленные параметры. RunReport выполняет отчёт с его собственными установками, а RunReportExt позволяет переопределить источник вывода информации (экран, принтер, файл) и вид выполнения (отчёт, таблица).
Пример использования в скрипте генератора отчётов (VBScript): |
|
URepQuerys - коллекция объектов URepQuery. К объекту URepQuerys применимы все стандартные методы работы с коллекциями, включая оператор For Each. Функция ExportToExcel объектов URepQuerys выводит в файл Excel все запросы коллекции - по одному на каждый лист (Sheet).
URepQuery - это полученный запрос.
Методы First, Next, Last, Prior,MoveBy и свойства EOF, BOF
позволяет осуществлять навигацию по записям.
Свойство CurrRecord возвращает текущую запись как
массив Variant.
Свойства DisplayLabels и FieldNames также возвращают массив
Variant, содержащий наименования колонок и
наименования полей соответственно.
Свойства Values и LabeledValues возвращают двумерный
массив Variant, содержащий значения полей и значения
полей вместе с наименованиями колонок. Например,
LabeledValues можно использовать для передачи
результата запроса в Word или Excel. Если же нужен
только файл, то можно использовать функцию ExportTo.
По умолчанию эта функция сохраняет результат в
формате DBF.
Свойство Fields позволяет получить доступ к
коллекции URepFields полей запроса.
Пример использования Excel в скрипте генератора отчётов (VBScript): |
|
URepParams - коллекция параметров отчёта.
Свойство Value позволяет устанавливать значение
параметра.
URepFields - коллекция полей запроса. Свойство Value
позволяет узнать значение поля текущей записи.
Свойства BDEDataType и ADODataType позволяют узнать тип
поля с точки зрения BDE и с точки зрения ADO, что
позволяет перекинуть URepQuery в ADO.Recordset.
И наконец, объекты для импорта данных.
URepDataImports - коллекция объектов для импорта данных.
URepDataImport - объект, предназначенный для импорта данных.
Когда пользователь импортирует данные, вызывается на выполнение скрипт, хранящийся в свойстве ScriptText. В этом случае данный объект URepDataImport будет объектом, не требующим точечной нотации. При этом метод ExecSQL можно использовать для выполнения SQL запроса для модификации данных. Если параметр SQLtext метода ExecSQL не установлен, используется свойство SQLtext объекта URepDataImport. Для передачи параметров в запрос можно использовать стандартный объект Dictionary (ProgId="Scripting.Dictionary").
В свойстве FileName содержится установленное пользователем имя файла. Вызвав функцию OpenQuery и передав ей строку с SQL запросом на выборку данных и, возможно, параметры выполнения запроса (Dictionary), получаем объект URepQuery.