powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / PB10 + CR10
25 сообщений из 25, страница 1 из 1
PB10 + CR10
    #33208137
JustVas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь запустить отчет от CrystalReports10, который не связывается с базой и выводит пустую страницу.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
function long PEOpenEngine() library "crpe32.dll"
function long PEOpenPrintJob(string as_file) library "crpe32.dll"
function long PEOutputToWindow(long al_job, string as_caption, long al_1, long al_2, long al_3, long al_4, long al_5, long al_6) library "crpe32.dll"
function long PEOutputToPrinter(long al_job, long al_copy) library "crpe32.dll"
function long PEStartPrintJob(long al_job, long al_wait) library "crpe32.dll"
function long PEClosePrintJob(long al_job) library "crpe32.dll"
function long PECloseEngine() library "crpe32.dll"

long ll_engine, ll_job, ll_output, ll_print
string ls_report

ll_engine = PEOpenEngine()
if ll_engine =  0  then
	MessageBox ("Error", "Engine")
end if
ls_report = "c:\report1.rpt"
ll_job = PEOpenPrintJob(ls_report)
if ll_job =  0  then
	MessageBox ("Error", "Job")
end if
//ll_output = PEOutputToPrinter(ll_job,  1 )
ll_output = PEOutputToWindow(ll_job, "Отчет",  30 ,  30 ,  200 ,  200 ,  0 ,  0 )
if ll_output =  0  then
	MessageBox("Error", "OutputToWindow") // здесь стабильно ll_output =  0 
end if
ll_print = PEStartPrintJob(ll_job,  1 )
if ll_print =  0  then
	MessageBox("Error", "StartPrintJob")
end if
PEClosePrintJob(ll_job)
PECloseEngine()
результат одинаков и при OutputToWindow() и при OutputToPrinter().
1. Где я неправ?
2. Где взять полные примеры для работы с CR, включая описания внешних функций и структур (с CR этого нет)?
...
Рейтинг: 0 / 0
PB10 + CR10
    #33208389
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JustVas wrote:

> Пытаюсь запустить отчет от CrystalReports10, который не связывается с
> базой и выводит пустую страницу.
>
> function long PEOpenEngine() library "crpe32.dll"
> function long PEOpenPrintJob(string as_file) library "crpe32.dll"
> function long PEOutputToWindow(long al_job, string as_caption, long al_1, long al_2, long al_3, long al_4, long al_5, long al_6) library "crpe32.dll"
> function long PEOutputToPrinter(long al_job, long al_copy) library "crpe32.dll"
> function long PEStartPrintJob(long al_job, long al_wait) library "crpe32.dll"
> function long PEClosePrintJob(long al_job) library "crpe32.dll"
> function long PECloseEngine() library "crpe32.dll"

PB10 - Юникодный, а CR10? Я не в курсе, но советую внимательно
посмотреть в эту сторону.
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
PB10 + CR10
    #33208520
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имею опыт (незнаю интиресно это или нет?) только с РВ9 и CR9 но ч/з OLE все ок работает
...
Рейтинг: 0 / 0
PB10 + CR10
    #33208555
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PB 6.5 CR 10 все работает

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
// open report
li_printjob = PEOpenPrintJob(ls_file)

if li_printjob =  0  then
	of_pemessage("PEOpenPrintJob")
	PECloseEngine()
	Return
end if
...
li_hwnd = Handle(gnv_app.iw_main)
lb_ret = PEOutputToWindow(li_PrintJob, pwin.title,  0 , 0 , 0 , 0 , 0 , li_hwnd)

if lb_ret <> TRUE then
	of_pemessage("PEOutputToWindow")
end if

lb_ret = PEStartPrintJob(li_printjob, TRUE)
if lb_ret <> TRUE then
	of_pemessage("PEStartPrintJob")
end if
...
Рейтинг: 0 / 0
PB10 + CR10
    #33209571
JustVas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EstetsPB 6.5 CR 10 все работает

можно глянуть ВЕСЬ код, включая описания функций, структур, заполнения параметров и Logon информации. Если сильно много, то лучше в мыло

P.S. А можно как-то узнать код и описание ошибки, выдаваемое самим CR?
...
Рейтинг: 0 / 0
PB10 + CR10
    #33209866
JustVas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DIGITALPROИмею опыт (незнаю интиресно это или нет?) только с РВ9 и CR9 но ч/з OLE все ок работает
Ok - давай исходники - погляжу...
...
Рейтинг: 0 / 0
PB10 + CR10
    #33210073
JustVas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЛЮДИ!!!! Неужели никто не работает с Crystal Reports? И никак нельзя кинуть полный пример запуска отчета?! Очень надо!
...
Рейтинг: 0 / 0
PB10 + CR10
    #33210107
alexis glinski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JustVasЛЮДИ!!!! Неужели никто не работает с Crystal Reports? И никак нельзя кинуть полный пример запуска отчета?! Очень надо!
тебе же Dim2000 идею про unicode подкинул. вот эти 2 определения скорее всего нужно поменять (потому что там string используется):
Код: plaintext
1.
function long PEOpenPrintJob(string as_file) library "crpe32.dll"
function long PEOutputToWindow(long al_job, string as_caption, long al_1, long al_2, long al_3, long al_4, long al_5, long al_6) library "crpe32.dll"
...
Рейтинг: 0 / 0
PB10 + CR10
    #33210167
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JustVas
P.S. А можно как-то узнать код и описание ошибки, выдаваемое самим CR?

Функция of_pemessage из моего примера

FUNCTION int PEGetErrorCode(int PrintJob) LIBRARY "crpe32.dll"
FUNCTION boolean PEGetErrorText(int PrintJob, ref long texthandle, ref int textLength) LIBRARY "crpe32.dll"
FUNCTION boolean PEGetHandleString( long textHandle, ref string errorText, int textLength ) LIBRARY "crpe32.dll"

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
int		errcode
long		texthandle
int		textLength
string		errorText
boolean	lb_ret

errcode = PEGetErrorCode(li_printjob) 

lb_ret = PEGetErrorText( li_printjob, texthandle, textLength )
errorText = fill('', textLength)
lb_ret = PEGetHandleString( textHandle, errorText, textLength )

messagebox(a_header + ' (' + string(errcode) +')', errortext) 

Return TRUE
...
Рейтинг: 0 / 0
PB10 + CR10
    #33210180
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JustVasЛЮДИ!!!! Неужели никто не работает с Crystal Reports? И никак нельзя кинуть полный пример запуска отчета?! Очень надо!
К сожалению исходники мне не принадлежат, но в свое время с этим разбирался. На сколько помню так и не смог до конца победить две проблемы, это переключение отчета на разные БД и были проблемы с передачей нескольких аргументов в отчет на ХП.
...
Рейтинг: 0 / 0
PB10 + CR10
    #33210243
JustVas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexis glinski JustVasЛЮДИ!!!! Неужели никто не работает с Crystal Reports? И никак нельзя кинуть полный пример запуска отчета?! Очень надо!
тебе же Dim2000 идею про unicode подкинул. вот эти 2 определения скорее всего нужно поменять (потому что там string используется):
Код: plaintext
1.
function long PEOpenPrintJob(string as_file) library "crpe32.dll"
function long PEOutputToWindow(long al_job, string as_caption, long al_1, long al_2, long al_3, long al_4, long al_5, long al_6) library "crpe32.dll"

на что поменять?
...
Рейтинг: 0 / 0
PB10 + CR10
    #33210256
JustVas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Estets JustVas
P.S. А можно как-то узнать код и описание ошибки, выдаваемое самим CR?

Функция of_pemessage из моего примера

FUNCTION int PEGetErrorCode(int PrintJob) LIBRARY "crpe32.dll"
FUNCTION boolean PEGetErrorText(int PrintJob, ref long texthandle, ref int textLength) LIBRARY "crpe32.dll"
FUNCTION boolean PEGetHandleString( long textHandle, ref string errorText, int textLength ) LIBRARY "crpe32.dll"

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
int		errcode
long		texthandle
int		textLength
string		errorText
boolean	lb_ret

errcode = PEGetErrorCode(li_printjob) 

lb_ret = PEGetErrorText( li_printjob, texthandle, textLength )
errorText = fill('', textLength)
lb_ret = PEGetHandleString( textHandle, errorText, textLength )

messagebox(a_header + ' (' + string(errcode) +')', errortext) 

Return TRUE

Спасибо.
Вдогонку: где даются расшифровки кодов ошибок (у меня вылезла 501), а то errorText содержит квадратики - видать и впрямь что-то с кодировками, только раньше с этим не сталкивался, и где копать - не представляю :(
...
Рейтинг: 0 / 0
PB10 + CR10
    #33210270
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JustVasВдогонку: где даются расшифровки кодов ошибок (у меня вылезла 501), а то errorText содержит квадратики - видать и впрямь что-то с кодировками, только раньше с этим не сталкивался, и где копать - не представляю :(
У меня был PB 6.5 и таких проблем не возникало. Кстати PB 10 из каких соображений?
...
Рейтинг: 0 / 0
PB10 + CR10
    #33210282
JustVas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Estets JustVasВдогонку: где даются расшифровки кодов ошибок (у меня вылезла 501), а то errorText содержит квадратики - видать и впрямь что-то с кодировками, только раньше с этим не сталкивался, и где копать - не представляю :(
У меня был PB 6.5 и таких проблем не возникало. Кстати PB 10 из каких соображений?
Какой нашел в инете, тот и взял
...
Рейтинг: 0 / 0
PB10 + CR10
    #33210293
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JustVas... где даются расшифровки кодов ошибок
P.S. Должны быть в документации к CR, не знаю как для 10-ки, для старых версий список ошибок можно найти в форумах по CR
...
Рейтинг: 0 / 0
PB10 + CR10
    #33210314
JustVas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем СПАСИБО!!! Проблема действительно была в unicode... добавка ALIAS FOR все решила
...
Рейтинг: 0 / 0
PB10 + CR10
    #33210658
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JustVas wrote:

> Всем СПАСИБО!!! Проблема действительно была в unicode... добавка ALIAS
> FOR все решила

Если у Вас после перехода с PBx на PB10 что-то сломалось - ищите Юникод :).

Кстати, а в чём кайф использования CR в эхотаге и что я теряю, не
пользуясь CR?
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
PB10 + CR10
    #33210678
JustVas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dim2000
JustVas wrote:

> Всем СПАСИБО!!! Проблема действительно была в unicode... добавка ALIAS
> FOR все решила

Если у Вас после перехода с PBx на PB10 что-то сломалось - ищите Юникод :).

Кстати, а в чём кайф использования CR в эхотаге и что я теряю, не
пользуясь CR?
Posted via ActualForum NNTP Server 1.2
создание _сложных_ отчетов - возможности DW весьма ограничены
...
Рейтинг: 0 / 0
PB10 + CR10
    #33210813
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JustVas wrote:

> создание _сложных_ отчетов - возможности DW весьма ограничены

Благодарствую :).
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
PB10 + CR10
    #33211469
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JustVasсоздание _сложных_ отчетов - возможности DW весьма ограничены
Бред.
...
Рейтинг: 0 / 0
PB10 + CR10
    #33211925
JustVas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Филипп JustVasсоздание _сложных_ отчетов - возможности DW весьма ограничены
Бред.
Да ну? Уважаемый, например, видал в глаза русскую накладную "Торг-12"? Сделайте ее в PB, и я изменю свое мнение
...
Рейтинг: 0 / 0
PB10 + CR10
    #33212094
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JustVasДа ну? Уважаемый, например, видал в глаза русскую накладную "Торг-12"? Сделайте ее в PB, и я изменю свое мнение
ИМХО все , что можно сделать через CR, можно сделать и на DW, а вот обратное утверждение неверно, например из за ограничения вложенности CR. Единственное из за чего мы вообще связались с CR это возможность CR10 достаточно корректно выгружать данные в Excel и Word.
...
Рейтинг: 0 / 0
PB10 + CR10
    #33212129
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JustVasДа ну? Уважаемый, например, видал в глаза русскую накладную "Торг-12"? Сделайте ее в PB, и я изменю свое мнение
А что в ней такого сложного? Насколько я помню, собственноручно делал года три назад на PB6. Никаких сложностей не возникло.
...
Рейтинг: 0 / 0
PB10 + CR10
    #33212357
JustVas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Видать, я много не знаю:
1. Есть узкое поле, в котором хранится строка неопределенной длины. Как изменять высоту, чтобы строка всегда помещалась, но и лишнего пустого места не было (autosize height не помогает)?
2. Nested report - если он ничего не содержит, то остается пустое место. Чтобы этого не было, надо уменьшить высоту группы - тогда Nested уходит за пределы видимости - это из области неудобства рисования.
3. Как вызывать функции БД от Calculated fileds? Например, в подгруппах подсчитваются суммы, и есть функция перевода их в строку - как ее вызывать?
4. Создание более сложных полей-функций, которые нельзя сделать одним вызовом к базе или простейшим скриптом. Например, если товар на складе есть, выводить одну цену, нет - другую.
...
Рейтинг: 0 / 0
PB10 + CR10
    #33212571
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JustVasВидать, я много не знаю:
1. Есть узкое поле, в котором хранится строка неопределенной длины. Как изменять высоту, чтобы строка всегда помещалась, но и лишнего пустого места не было (autosize height не помогает)?
Почему не помогает? В принципе, можно и expression на height повесить...
JustVas2. Nested report - если он ничего не содержит, то остается пустое место. Чтобы этого не было, надо уменьшить высоту группы - тогда Nested уходит за пределы видимости - это из области неудобства рисования.
Уменьшить высоту Nested report до минимальной.
JustVas3. Как вызывать функции БД от Calculated fileds? Например, в подгруппах подсчитваются суммы, и есть функция перевода их в строку - как ее вызывать?
Через global functions, в том числе и вызов функций БД.
JustVas4. Создание более сложных полей-функций, которые нельзя сделать одним вызовом к базе или простейшим скриптом. Например, если товар на складе есть, выводить одну цену, нет - другую.
Подзапросом, с помощью хранимой процедуры, udf - зависит от базы.
И почему остатки нельзя расчитать с помощью "одного вызова к базе"?
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / PB10 + CR10
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]