Структура объектов генератора отчётов URep (ver.2.5).

ActiveX сервер URepGenApp.exe
Корневой объект URepMain
Объект функций URepFunction
Объект отчёта UReport
Объекты запросов URepQuerys и URepQuery
Объекты параметров отчёта URepParams и URepParam
Объекты доступа к полям запроса URepFields и URepField
Объекты импорта данных URepDataImports и URepDataImport
Объекты параметров запроса URepQueryParams и URepQueryParam

ActiveX сервер URepGenApp.exe

Сам ГО URep (URepGenApp.exe) является ActiveX сервером. Согласно спецификации ActiveX для работы с приложением используется объект Application. При использовании генератора отчётов в режиме ActiveX сервера необходимо после создания объекта Application (ProgID="URepGenApp.Application") сначала подключиться к БД, вызвав метод Connect, а затем получить ссылку на главный объект ГО через свойство URepMain. Свойство IsConnected позволяет проверить наличие подключения к БД, а свойство ConnectionName - наименование подключения к БД. Для того чтобы закрыть приложение, нужно вызвать метод Quit.

Объекты URepGenApp.exe:

URepGenApp25.GIF

Синтаксис свойств и методов 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

Объектом верхнего уровня для работы с генератором отчётов является URepMain. При использовании в скриптах самого генератора отчётов этот объект не требует точечной нотации.

Cвойства и методы объекта URepMain:

URepMain25.gif

Синтаксис свойств и методов объекта 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 запросу.

Объект функций URepFunction

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):
Dim oURepApp, oURepMain, oUReport 'объявляем переменные
Set oURepApp = CreateObject("URepGenApp.Application") 'создаём объект Приложение
oURepApp.Connect "Connection_Name", "user_name", "password"  ' подключаемся к БД
If oURepApp.IsConnected Then
  Set oURepMain = oURepApp.URepMain   'получаем объект URepMain
  Set oUReport = oURepMain.GetReport("Проверочный отчёт") ' получаем отчёт
  oUReport.RunReport ' выводим отчёт
Else
  MsgBox "Ошибка подключения к БД"
End If
oURepApp.Quit  ' закрыть приложение

Объект отчёта UReport

Объект 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):

Dim oUReport, bExec
bExec = True
Set oUReport=GetReport(1) ' вызывается свойство объекта URepMain - получаем отчёт с Id=1
If oUReport.Params.Count>0 Then
  bExec = oUReport.AskParams
End If
If bExec Then
  oUReport.RunReport
  MsgBox "Надо же, работает!"
End If

Объекты запросов URepQuerys и URepQuery

Коллекцию 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):

' переменные можно и не объявлять
Set oUReport = GetReport(1)   ' получаем отчёт с Id=1
If oUReport.Params.Count>0 Then
  oUReport.AskParams
End If
Set oURepQuery = oUReport.GetQuerys(1) ' получаем первый запрос
     ' далее используем Excel
Set objXL = CreateObject("Excel.Application")
objXL.Visible = TRUE
Set xlWorkbook = objXL.Workbooks.Add   ' создаём новую книгу
Set xlSheet = xlWorkbook.ActiveSheet          'получаем текущий лист
CellFrom = "A1"   '   устанавливаем диапазон ячеек
CellTo = Chr(Asc("A")+oURepQuery.FieldCount-1) & (oURepQuery.RecordCount+1)
MsgBox CellFrom &" - "&CellTo  ' маленькая проверка
xlSheet.Range(CellFrom, CellTo).FormulaArray = oURepQuery.LabeledValues 'копируем все ячейки сразу!
xlSheet.Cells(1,1).Select  'форматируем
xlSheet.Rows(1).Font.Bold=true
xlSheet.Columns.AutoFit   

Объекты параметров отчёта URepParams и URepParam

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 и URepField

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 и URepDataImport

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 и URepQueryParam

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

На главную страницу

Hosted by uCoz