Сам ГО URep (URepGenApp.exe) является ActiveX сервером. Согласно спецификации ActiveX для работы с приложением используется объект Application. При использовании генератора отчётов в режиме ActiveX сервера необходимо после создания объекта Application (ProgID="URepGenApp.Application") сначала подключиться к БД, вызвав метод Connect, а затем получить ссылку на главный объект ГО через свойство URepMain. Свойство IsConnected позволяет проверить наличие подключения к БД, а свойство ConnectionName - наименование подключения к БД. Для того чтобы закрыть приложение, нужно вызвать метод Quit.
Объекты URepGenApp.exe:
Синтаксис свойств и методов URepGenApp.exe:
Sub Connect(ConnectionName as String, Login as String, Password as String) |
Property Read-Only ConnectionName as String |
Property Read-Only IsConnected as Boolean |
Sub Quit |
Property Read-Only URepMain as Dispatch |
Объекты нижнего уровня описаны в библиотеке типов URepGen.tlb. Файл URepGen.tlb должен находится в том же каталоге, где URepGenApp.exe или в системном каталоге.
Объектом верхнего уровня для работы с генератором отчётов является URepMain. При использовании в скриптах самого генератора отчётов этот объект не требует точечной нотации.
Cвойства и методы объекта URepMain:
Синтаксис свойств и методов объекта URepMain:
Function Create_URepQueryParams as URepQueryParams |
Function GetDataImports as URepDataImports |
Function GetReport(ReportId) as UReport |
Property Read-Only URepFunction as URepFunction |
Вызвав функцию GetReport, можно получить объект UReport,
инкапсулирующий работу с отчётом. Получить отчёт
можно по имени (если ReportId - строка) или по Id (ReportId - число).
Вызвав функцию GetDataImports, можно получить коллекцию
URepDataImports объектов URepDataImport, предназначенных для
импорта данных.
Через свойство URepFunction получается доступ к
объекту URepFunction, в котором содержаться глобальные
функции.
Функция Create_URepQueryParams используется для создания
объекта URepQueryParams - коллекции параметров запроса. Этот объект используется для
передачи параметров SQL запросу.
Cвойства и методы объекта URepFunction:
Синтаксис свойств и методов объекта URepFunction:
Function AnsiToOem(InputStr as String) as String |
Function CreateObject(ObjectID as String, ComputerName as String) as Dispatch |
Function DelExtraSpace(InStr as String) as String |
Sub ExecQuery(SQLtext as String, [Params]) |
Function GetComputerName as String |
Function GetLogin as String |
Function InputBox([Caption as String =''], [Prompt as String =''], [Default as String ='']) as String |
Function LoadURL(URL as String, [OutFileName as String ='']) as Variant |
Function MessageBox(Prompt as String, [Buttons as Integer =0], [Title as String ='']) as Integer |
Sub NWSendMessage(User as String, Message as String) |
Function NumToWordRus(fSumm as Double, [bIsMoney as Boolean =-1], [iFracAccuracy as Integer =2], [IntNames], [FracNames]) as String |
Function OemToAnsi(InputStr as String) as String |
Function OpenLocalTable(TblName as String, [TblType as URepExportType =0]) as URepQuery |
Function OpenQuery(SQLtext as String, [Params]) as URepQuery |
Function Pretty(InputStr as String) as String |
Sub SendEmail(Subject as String, Message as String, EMailTo, [Attachment], [Options as Integer =0]) |
Sub SendToMailSlot(Servers, Slot as String, Message as String, [Asynchronously as Boolean =-1], [Notise as Boolean =0]) |
Sub SetStatusText(Text as String, [Color as OLE_COLOR = Black], [isBold as Boolean =0], [isItalic as Boolean =0], [isUnderline as Boolean =0]) |
Function StrToDateFmt(InStr as String, Format as String, [dtType as URepDateTimeType =0]) as Date |
Function StrToDoubleFmt(InStr as String, [DecimalSep as String =''], [ThousandSep as String ='']) as Double |
AnsiToOem - переводит из Windows кодировки в DOS;
OemToAnsi - переводит из DOS кодировки в Windows;
NumToWordRus - позволяет преобразовать сумму к строке написания;
Pretty - преобразует строку к виду: первый символ - прописные, остальные - строчные;
DelExtraSpace - убирает все двойные пробелы;
CreateObject - создание объекта по ProgID (напр. "Excel.Application") или по GUID (напр. "{89B9D28B-AAEB-11D0-9796-00A0C908612D}"), возможно на другом компьютере (исп. ComputerName);
LoadURL - скачать страничку из интернета. Используется Win32 Internet API (aka IE);
ExecQuery, OpenQuery - выполняет SQL запрос. В качестве Params принимает объект URepQueryParams или объект 'Scripting.Dictionary'.OpenQuery - возвращает набор даннных;
OpenLocalTable - открыть локальную таблицу (DBF, Paradox) через BDE;
SendEmail - отсылка писем по E-Mail. Используется Simple MAPI (aka Outlook Express). Options: 0 - тихий режим, 1 - показывать диалог Login, 2 - показывать диалог Login и показывать отправляемое письмо;
SendToMailSlot - посылка пакетов используя Mail Slot. Если Slot = "messngr" то получателем будет WinPopup в Win9x или сервис в NT;
SetStatusText - вывести текст в строку статуса. Значения Color - как в VB;
StrToDateFmt - преобразовать строку в дату по формату (поддерживаются спецификаторы: dd, d, mmm, mm, m, yyyy, yy, hh, mi, ss);
StrToDoubleFmt - преобразовать строку в дробное. DecimalSep и ThousandSep - разделитель целой и дробной части и разделитель разрядов;
Пример запуска генератора отчётов из скрипт-файла WSH (testRun.vbs): |
|
Объект UReport позволяет получить доступ к свойствам и методам отчёта (объекта ГО типа форма отчёта). Он позволяет запрашивать параметры и выводить отчёты.
Cвойства и методы объекта UReport:
Синтаксис свойств и методов объекта UReport:
Function AskParams as Boolean |
Property Read-Only Description as String |
Property Read-Only Destination as URepDestination |
Property Read-Only GetQuerys as URepQuerys |
Property Read-Only Id as Integer |
Property Read-Only Name as String |
Property Read-Only Numm as Integer |
Property Read-Only Params as URepParams |
Sub RunReport |
Sub RunReportExt(Destination as URepDestination, TypExec as URepTypExec, FileName as String) |
Property Read-Only TypExec as URepTypExec |
Read-Only свойства Id, Name, Numm, Description, Destination - свойства (атрибуты) данного отчёта.
Свойство Params - даёт доступ к коллекции URepParams объектов URepParam - параметры запуска данного отчёта. Таким образом можно програмно установить параметры запуска отчёта. Другой способ установки параметров - вызов функции AskParams. В этом случае произойдёт запрос параметров у пользователя стандартным диалогом генератора отчётов.
Свойство GetQuerys - даёт доступ к коллекции URepQuerys объектов URepQuery - запросы в данном отчёте. При первом доступе к свойство GetQuerys происходит открытие запросов с указанными ранее параметрами.
Методы RunReport и RunReportExt выполняют данный отчёт, используя установленные параметры. RunReport выполняет отчёт с его собственными установками, а RunReportExt позволяет переопределить источник вывода информации (экран, принтер, файл) и вид выполнения (отчёт, таблица).
Пример использования в скрипте генератора отчётов (VBScript): |
|
Коллекцию URepQuerys можно получить прочитав свойство GetQuerys объекта UReport.
Cвойства и методы коллекции URepQuerys:
Синтаксис свойств и методов коллекции URepQuerys:
Property Read-Only Count as Integer |
Function ExportToExcel(FileName as String) as Boolean |
Property Read-Only Item(Index) as URepQuery |
URepQuerys - коллекция объектов URepQuery. К объекту URepQuerys применимы все стандартные методы работы с коллекциями, включая оператор For Each. Свойство Item является сфойством по умолчанию и не требует точечной нотации. Функция ExportToExcel объектов URepQuerys выводит в файл Excel все запросы коллекции - по одному на каждый лист (Sheet).
Cвойства и методы объекта URepQuery:
Синтаксис свойств и методов объекта URepQuery:
Property Read-Only BOF as Boolean |
Sub Close |
Property Read-Only CurrRecord as Variant |
Property Read-Only DisplayLabels as Variant |
Property Read-Only EOF as Boolean |
Function ExportTo(FileName as String, [TableType as URepExportType =0], [AsciiDelimited as Boolean =-1]) as Boolean |
Property Read-Only FieldCount as Integer |
Property Read-Only FieldNames as Variant |
Property Read-Only Fields as URepFields |
Sub First |
Property Read-Only LabeledValues as Variant |
Sub Last |
Function MoveBy(Distance as Integer) as Integer |
Property Read-Only Name as String |
Sub Next |
Property Read-Only Numm as Integer |
Sub Prior |
Property RecNo as Integer |
Property Read-Only RecordCount as Integer |
Property Read-Only ShortName as String |
Property Read-Only Values as Variant |
URepQuery - это полученный запрос.
Read-Only свойства Numm, Name, ShortName - свойства (атрибуты) данного отчёта -
порядковый номер запроса в коллекции URepQuerys, ролное и короткое имя запроса.
Методы First, Next, Last, Prior,MoveBy и свойства EOF, BOF
позволяет осуществлять навигацию по записям.
Свойство CurrRecord возвращает текущую запись как массив Variant. Свойства DisplayLabels и FieldNames также возвращают массив Variant, содержащий наименования колонок и наименования полей соответственно. Свойства CurrRecord, DisplayLabels и FieldNames индексированны от 1 до FieldCount.
Свойства Values и LabeledValues возвращают двумерный массив Variant, содержащий значения полей и значения полей вместе с наименованиями колонок. Свойства Values является двумерным массивом строк размерностью [1...RecordCount][1..FieldCount], а LabeledValues - двумерным массивом строк размерностью [1...(RecordCount+1)][1..FieldCount]и содержит дополнительную строку с именами полей. Например, LabeledValues можно использовать для передачи результата запроса в Word или Excel c последующим форматированием данных.
Если же нужно только экспортировать запрос в файл, то можно использовать функцию ExportTo. По умолчанию эта функция сохраняет результат в формате DBF, но могут быть указаны другие форматы - exptParadox, exptFoxPro, exptASCII, exptExcel. При экспорте в exptParadox, exptFoxPro, exptASCII используется BDE и кодовая страница должна быть установленна именно в BDE.Параметр AsciiDelimited имеет значение только для экспорта в exptASCII.
Свойство Fields позволяет получить доступ к коллекции URepFields полей запроса.
Пример использования Excel в скрипте генератора отчётов (VBScript): |
|
URepParams - коллекция параметров отчёта.
Коллекцию URepParams можно получить прочитав свойство Params объекта UReport.
Свойство Item является свойством по умолчанию и позволяет
получить доступ к объекту URepParam.
Свойство Count - количество параметров в коллекции.
С коллекцией URepParams можно работать через оператор With.
Cвойства и методы коллекции URepParams:
Синтаксис свойств и методов коллекции URepParams:
Property Read-Only Count as Integer |
Property Read-Only Item(Index) as URepParam |
URepParam - параметр отчёта.
Read-Only свойства Id, Name, Numm, ParLabel, ParType - атрибуты параметра.
Свойство ParLabel - это метка параметра в диалоге, Name - имя параметра.
Свойство ParType позволяет определить тип данных параметра.
Свойство Value позволяет устанавливать и считывать значение параметра.
Cвойства и методы объекта URepParam:
Синтаксис свойств и методов объекта URepParam:
Property Read-Only Id as Integer |
Property Read-Only Name as String |
Property Read-Only Numm as Integer |
Property Read-Only ParLabel as String |
Property Read-Only ParType as URepParamType |
Property Value as Variant |
URepFields - коллекция полей запроса.
Коллекцию URepFields можно получить прочитав свойство Fields объекта URepQuery.
Свойство Item является свойством по умолчанию и позволяет
получить доступ к объекту URepField.
Свойство Count - количество полей в коллекции.
С коллекцией URepFields можно работать через оператор With.
Cвойства и методы коллекции URepFields:
Синтаксис свойств и методов коллекции URepFields:
Property Read-Only Count as Integer |
Property Read-Only Item(Index) as URepField |
URepField - поле запроса.
Свойство Value позволяет узнать значение поля текущей записи.
Свойства BDEDataType и ADODataType позволяют узнать тип
поля с точки зрения BDE и с точки зрения ADO, что
позволяет перекинуть URepQuery в ADO.Recordset.
Свойства DisplayLabel и FieldName - метка и имя поля.
Свойство Size - размер поля.
Метод SaveBLOBToFile позволяет сохранить BLOB поле в указанный файл.
Cвойства и методы объекта URepField:
Синтаксис свойств и методов объекта URepField:
Property Read-Only ADODataType as Integer |
Property Read-Only BDEDataType as BDEFieldType |
Property Read-Only DisplayLabel as String |
Property Read-Only FieldName as String |
Sub SaveBLOBToFile(FileName as String) |
Property Read-Only Size as Integer |
Property Read-Only Value as Variant |
URepDataImports - коллекция объектов для импорта данных.
Коллекцию URepDataImports можно получить прочитав свойство GetDataImports объекта URepMain.
Cвойства и методы коллекции URepDataImports:
URepDataImport - объект, предназначенный для импорта данных.
Cвойства и методы объекта URepDataImport:
Синтаксис свойств и методов объекта URepDataImport:
Property Read-Only Description as String |
Function ExecSQL([Params], [SQLtext as String ='']) |
Property FileName as String |
Property Read-Only FileTemplate as String |
Property Read-Only Id as Integer |
Property Read-Only Name as String |
Property Read-Only Numm as Integer |
Property Read-Only SQLtext as String |
Property Read-Only ScrEngName as String |
Property Read-Only ScriptText as String |
Property Read-Only URepFunction as URepFunction |
Property Read-Only URepMain as URepMain |
Когда пользователь импортирует данные, вызывается на выполнение скрипт, хранящийся в свойстве ScriptText. В этом случае данный объект URepDataImport будет объектом, не требующим точечной нотации. При этом метод ExecSQL можно использовать для выполнения SQL запроса для модификации данных. Если параметр SQLtext метода ExecSQL не установлен, используется свойство SQLtext объекта URepDataImport. Для передачи параметров в запрос можно использовать стандартный объект Dictionary (ProgId="Scripting.Dictionary") или объект URepQueryParams.
В свойстве FileName содержится установленное пользователем имя файла. Вызвав функцию OpenQuery и передав ей строку с SQL запросом на выборку данных и, возможно, параметры выполнения запроса (Dictionary или URepQueryParams), получаем объект URepQuery.
URepQueryParams - коллекция параметров запроса. Этот объект используется для
передачи параметров SQL запросу.
Коллекцию URepQueryParams можно создать вызвав функцию Create_URepQueryParams объекта URepMain.
Далле используя метод Add в коллекциию добавляются параметры. Каждый параметр - это пара из имени (Name) и значения (Value) параметра. При добавлении параметра обязательно необходимо указать уникальное имя параметра. По этому имени будет производится привязка значений параметров при выполнении методов OpenQuery или ExecQuery объекта URepFunction и передачи в качестве Params объекта URepQueryParams.
Каждый параметр обязательно должен иметь тип данных - DataType. Если установлено свойство FileName, то параметр принимает BLOB тип и значение параметра считывается из указанного файла.
Cвойства и методы коллекции URepQueryParams:
Синтаксис свойств и методов коллекции URepQueryParams:
Function Add(Name as String, [Value], [DataType as BDEFieldType =0], [FileName as String ='']) as URepQueryParam |
Sub Clear |
Property Read-Only Count as Integer |
Property Read-Only Item(Index) as URepField |
У объекта URepQueryParam свойства DataType, Value, FileName можно устанавливать и изменять после создания параметра.
Cвойства и методы объекта URepQueryParam:
Синтаксис свойств и методов объекта URepQueryParam:
Property DataType as BDEFieldType |
Property FileName as String |
Property Read-Only Name as String |
Property Value as Variant |