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

Я намеренно буду путать понятия "интерфейс", "класс объекта" и "объект класса", заменяя всё на объект. С моей точки зрения это упростит описание. Тем, кто разбирается в этом, я рекомендую первоисточник - файл URepGen.Tlb.

Объектом верхнего уровня для работы с генератором отчётов является URepMain. При использовании в скриптах самого генератора отчётов этот объект не требует точечной нотации. При использовании генератора отчётов в режиме ActiveX сервера необходимо после создания объекта (ProgID="URepGenApp.URepGenApplication") сначала подключиться к БД, вызвав метод Login, а затем получить ссылку на объект через свойство URepMain. Для того чтобы закрыть приложение, нужно вызвать метод Quit.

imgURepMain.gif (3197 bytes)

Вызвав функцию GetReport, можно получить объект UReport, инкапсулирующий работу с отчётом. Получить отчёт можно по имени или по Id.
Вызвав функцию GetDataImports, можно получить коллекцию URepDataImports объектов URepDataImport, предназначенных для импорта данных.
Через свойствоURepFunction получается доступ к объекту URepFunction, в котором содержаться глобальные функции.

imgURepFunction.gif (4543 bytes)

Функция NumToWordRus позволяет преобразовать сумму к строке написания, а функция Pretty преобразует строку к виду: первый символ - прописные, остальные - строчные.

Пример запуска генератора отчётов из скрипт-файла WSH (testRun.vbs):

Dim oURepApp, oURepMain, oURepFunction, nNumm; 'объявляем переменные
Set oURepApp = CreateObject("URepGenApp.URepGenApplication")'создаём объект
Set oURepMain = oURepApp.URepMain  'получаем объект URepMain
nNumm = InputBox("Введите число:","Тест функции NumToWordRus","12345")
If IsNumeric(nNumm) Then
  MsgBox oURepMain.URepFunction.NumToWordRus(nNumm)
Else
  MsgBox nNumm & " - это не число!"
End If
oURepApp.Quit  ' закрыть приложение

Объект UReport позволяет получить доступ к свойствам и методам отчёта:

imgUReport.gif (6740 bytes)

Свойство 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

 

imgURepQuerys.gif (3178 bytes)

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 полей запроса.

imgURepQuery.gif (10523 bytes)

Пример использования 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 - коллекция параметров отчёта.
Свойство Value позволяет устанавливать значение параметра.

imgURepParams.gif (5533 bytes)

URepFields - коллекция полей запроса. Свойство Value позволяет узнать значение поля текущей записи.
Свойства BDEDataType и ADODataType позволяют узнать тип поля с точки зрения BDE и с точки зрения ADO, что позволяет перекинуть URepQuery в ADO.Recordset.

imgURepFields.gif (5660 bytes)

И наконец, объекты для импорта данных.

URepDataImports - коллекция объектов для импорта данных.

imgURepDataImports.gif (2592 bytes)

URepDataImport - объект, предназначенный для импорта данных.

Когда пользователь импортирует данные, вызывается на выполнение скрипт, хранящийся в свойстве ScriptText. В этом случае данный объект URepDataImport будет объектом, не требующим точечной нотации. При этом метод ExecSQL можно   использовать для выполнения SQL запроса для модификации данных. Если параметр SQLtext метода ExecSQL не установлен, используется свойство SQLtext объекта URepDataImport. Для передачи параметров в запрос можно использовать стандартный объект Dictionary (ProgId="Scripting.Dictionary").

imgURepDataImport.gif (7193 bytes)

В свойстве FileName содержится установленное пользователем имя файла. Вызвав функцию OpenQuery и передав ей строку с SQL запросом на выборку данных и, возможно, параметры выполнения запроса (Dictionary), получаем объект URepQuery.

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

Hosted by uCoz