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