VB6+Crystal Reports 9 - запуск с параметрами?

Узнай цену своей работы

Формулировка задачи:

Всем хорошего дня!
Коллеги, если кто-то имеет успешный опыт запуск отчетов Crystall Reports 9 с параметрами из VB6, не могли бы вы поделиться секретами мастерства? Или дайте пожалуйста ссылки, где про сие безобразие можно почитать?
Пытаюсь огранизовать это через "кристаловский" Print Engine в соответствии с примерами, описанными в книжке Маклакова и Матвеева "Анализ данных. Генератор отчетов Crystall Reports.", издание БХВ-Петербург, 2003 год. Вроде все делаю так, как написано, но не работает. Ругается на модули самого "кристала" - global32.bas и crwrap.bas, якобы там не описаны всякие переменные. Ошибки у штатовцев? Кто-нибудь с этим сталкивался? Помогите. если можно...
Заранее спасибо огромное!
Юрий.
Кто знает жизнь, тот не торопится... Удачи на дорогах!

Решение задачи: «VB6+Crystal Reports 9 - запуск с параметрами?»

textual
Листинг программы
'#USES "C:\Program Files\ARIS6\script\report\en\global32.bas"<br>'#USES "C:\Program Files\ARIS6\script\report\en\crwrap.bas"<br><br>Global g_nLoc As Long 'Variable for the current language.<br>Global oModels As Object 'List of selected models.<br>Global oCurrentModel As Object 'Current model contained in the list oModells.<br>Sub Main<br><br><br>  Dim nPrintJob As Integer<br>  Dim vParamInfo As PEParameterFieldInfo<br>  Dim CRFileName As String<br>  Dim result%<br>  Dim ResultL&<br><br><br>  ' Получаем язык, на котором работает Aris<br>  g_nLoc = SelectedLanguage()<br>  ErrLog=""<br><br>  'Выбираем текущую модель<br>  Set oModels = SelectedModels()<br>  Set oCurrentModel = oModels.Get(0)<br>  <br>  'Задаем имя файла с отчетом<br>  CRFileName = "c:\temp\reglament1.rpt"<br>  'Пытаемся запустить движок CR<br>  If PEOpenEngine Then<br>    'Открываем отчет<br>    nPrintJob = PEOpenPrintJob(CRFileName)<br>    'Если отчет не открыт то nPrintJob = 0, иначе больше 0<br>    If nPrintJob = 0 Then<br>      MsgBox("Ошибка открытия отчета")<br>    Else<br>      'Определяем структуру параметра отчета<br>      vParamInfo.StructSize = PE_SIZEOF_PARAMETER_FIELD_INFO<br>      'Определяем текущее значение параметра отчета<br>      result% = PEGetNthParameterField(nPrintJob, 0, vParamInfo) <br>      'Вносим в параметр отчета GUID текущей модели<br>      vParamInfo.CurrentValue = Left(oCurrentModel.GUID,36)<br>      'Включаем использование этого параметра без дополнительных запросов<br>      vParamInfo.CurrentValueSet = 1<br>      'Задаем параметер отчета отчету<br>      result% = PESetNthParameterField(nPrintJob, 0, vParamInfo)<br>      'Задаем окно для вывода отчета<br>      result% = PEOutputToWindow(nPrintJob, "Регламент модели со всеми декомпозициями", 0, 0, 0, 0, WS_MAXIMIZE + WS_MINIZEBOX + WS_MAXIMIZEBOX + WS_SYSMENU, 0)<br>      'Запускаем собственно сам отчет<br>      result% = PEStartPrintJob(nPrintJob, False)<br>      ResultL& = 1<br>      Do While ResultL& <> 0<br>        DoEvents<br>        ResultL& = PEGetWindowHandle(nPrintJob)<br>      Loop<br>      'Закрываем отчет<br>      PEClosePrintJob(nPrintJob)<br>    End If<br>    'Останавливаем движок CR<br>    PECloseEngine<br>  End If<br>End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5