Как распечатать отчеты на выбранном принтере, используя .NET, 64-битный сервер отчетов Crystal Crystal на 64-битном сервере (Win2k8)?

1

У нас есть приложение Windows, которое построено на удалении.NET. Его 32-битное приложение построено с использованием.NET Framework 2.0. Мы используем механизм выполнения отчетов SAP Crystal для.NET Framework 4 (32-разрядная версия 13.0.3) для функций отчетов. Существует также функция печати, которая печатает соответствующий отчет выбранному принтеру пользователем во время пакетного запуска. Вся эта настройка отлично работает на сервере Windows Server 2003. Теперь мы пытаемся перенести приложение на сервер Windows 2008, печать работает неправильно. Он всегда печатает отчеты на принтере по умолчанию на компьютере с сервером Windows 2008 вместо того, чтобы печатать его на выбранном принтере.

CrystalDecisions.CrystalReports.Engine, CrystalDecisions.ReportSource & CrystalDecisions.Shared - это библиотеки DLL, на которые ссылаются

C:\Program Files\sap businessobjects\crystal reports для.net framework 4.0\common\sap businessobjects enterprise xi 4.0\win32_x86

Мы конвертировали приложение в 64-битную версию. На сервере Windows 2008, даже несмотря на то, что мы установили, SAP Crystal сообщает о запуске механизма времени выполнения для.NET Framework 4 (64-разрядная версия 13.0.3), печать работает некорректно (печать всегда на принтер по умолчанию). Также не удалось найти вышеуказанные DLL в 64-битной папке установки.

C:\Program Files\sap businessobjects\crystal reports для.net framework 4.0\common\sap businessobjects enterprise xi 4.0\win64_x64

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

  • 0
    Команда установки принтера, выполняемая в коде, была изменена путем изменения файла конфигурации, поскольку пути к файлам, связанным с принтером (предоставленным Microsoft), различаются в Windows Server 2003 и 2008. Windows server 2003: c: \ windows \ system32 \ cscript.exe C: \ Windows \ system32 \ prnmngr.vbs -ac -p имя принтера Windows server 2008: c: \ windows \ system32 \ cscript.exe C: \ Windows \ SysWOW64 \ Printing_Admin_Scripts \ en-US \ prnmngr. vbs -ac -p имя принтера
Теги:
printing
crystal-reports

1 ответ

2
Лучший ответ

Мы обнаружили проблему и исправление. Это связано с кодом.

string printPath = System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string rptFileName=@"\sample.rpt";
string PrinterName=Console.ReadLine();

ReportDocument reportDocument = new ReportDocument();
reportDocument.Load(printPath + rptFileName);
reportDocument.PrintOptions.PrinterName = PrinterName;           
reportDocument.PrintToPrinter(1, true, 0, 0);

reportDocument.PrintOptions.PrinterName всегда пуст, даже если назначено правильное имя принтера. Код был изменен следующим образом и тот же, что и на сервере Windows 2008 R2 с существующими установками (SAP Crystal сообщает 32-битную/64-разрядную версию - 13.0.3), даже не конвертируя его в 64-разрядный.

ReportDocument reportDocument = new ReportDocument();
reportDocument.Load(printPath + rptFileName);
System.Drawing.Printing.PrinterSettings printerSettings = new     System.Drawing.Printing.PrinterSettings();
printerSettings.PrinterName = PrinterName;
reportDocument.PrintToPrinter(printerSettings, new PageSettings(), false);

С наилучшими пожеланиями, Сринивас

  • 0
    Это ошибка в среде выполнения Crystal 13. Мне любопытно, однако, с каким изменением (создание новых настроек принтера), сколько времени займет задание печати? Когда я впервые обновился до Crystal Runtime 13, задание печати заняло более 3 минут для первой страницы! Так что я опустился до 10.
  • 0
    Это делает мгновенно для меня, проверить ваш код и установки, совместимость ОС и т. Д.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню