Rave сообщает о проблемах, если принтер не установлен - PullRequest
0 голосов
/ 12 апреля 2011

Я тестировал некоторый код D2006 с использованием отчетов Rave на виртуальной машине и обнаружил, что приложение зависает при создании отчета в формате PDF, если принтер не установлен.Здесь происходит зависание:

exception message : The application seems to be frozen.

main thread ($108):
005c5e62 +106 MyApp.exe    RpRPTF          SimpleTextWidth
006198f7 +31b MyApp.exe    RpMemo          TMemoBuf.GetLine
0061a44a +086 MyApp.exe    RpMemo          TMemoBuf.MemoLinesLeft
005cba28 +014 MyApp.exe    RpBase          TBaseReport.MemoLines
00672e8e +072 MyApp.exe    MyAppReports    PrintReportParagraph
00677f73 +acb MyApp.exe    MyAppReports    PrintSummaryReportBody
0066b208 +010 MyApp.exe    MyAppMainForm   TMainForm.RvSystemSummaryReportPrint
005c6f35 +015 MyApp.exe    RpBase          TBaseReport.PrintEvent
005c8066 +03a MyApp.exe    RpBase          TBaseReport.Execute
0060a299 +125 MyApp.exe    RpSystem        TRvSystem.GenerateReport
0060a52a +07e MyApp.exe    RpSystem        TRvSystem.Execute
0067d364 +0ac MyApp.exe    MyAppReports    DoPrintSummaryReport
0067d64d +1d5 MyApp.exe    MyAppReports    ProduceReports
0066e966 +1e6 MyApp.exe    MyAppProcessing ProcessMyAppData
0066ab9b +0d7 MyApp.exe    MyAppMainForm   TMainForm.DoProcessData

и, несомненно, это связано с нулевой шириной страницы, что приводит к путанице в коде, который вычисляет, сколько строк может уместиться на странице или что-то подобное.

Дело в том, что я пишу PDF, а не печатаю, поэтому я не понимаю, почему отсутствие принтера может привести к отключению этого кода (установлен Acrobat Reader).Если я устанавливаю принтер, он ведет себя.Зачем мне нужен принтер (приложение может быть установлено на рабочей станции без установленного принтера - с сообщением об ошибке «Вы не можете сгенерировать отчет в формате PDF, если не установите принтер» кажется немного неуклюжим)?

1 Ответ

1 голос
/ 12 апреля 2011

Это давняя ошибка в Rave Reports. Это связано с отсутствием установленного принтера по умолчанию. Я поищу ссылки на старые сообщения форума Borland / CodeGear ( CodeNewsFast , похоже, не отвечает прямо сейчас). Возникла проблема с предположением о наличии принтера. Я не знаю, было ли это исправлено в самых последних версиях Rave. (D2006 был довольно давно.)

Если я правильно помню, решение было установить текстовый драйвер на «макетный» принтер. Это позволяет Rave продолжать функционировать.

...