Как печатать непосредственно на принтере клиента?
всегда печатайте на принтере сервера
Что я уже пробовал:
Dim doc как новый Отчетдокумент
doc.Load("..\CrystalReport4.rpt")
док.PrintToPrinter(1, True, 0, 0)
Цитата:всегда печатайте на принтере сервера
Цитата:всегда печатайте на принтере сервера
Он печатает на принтере сервера, поскольку ваш код выполняется на сервере, он не имеет доступа к оборудованию клиента. Вы не можете печатать на принтере пользователя из своего веб-кода. Если бы вы могли, то веб-сайты также постоянно посылали бы спам-рекламу на ваш принтер.
Код выполняется на сервере и поэтому обращается к принтеру сервера.
По соображениям безопасности такой код, запущенный на сервере, не имеет или очень ограничен доступом к оборудованию клиента. Но есть решения для печати Crytal отчетов на клиенте:
Crystal Reports печать на стороне клиента без средства просмотра[^]
Печать отчета Crystal непосредственно в ASP.NET C# - переполнение стека[^]
Большое спасибо.
Я знал, как использовать Crystal Report для печати на принтере, но просто нужно было
(1) Выберите условия , нажмите кнопку Печать и покажите отчет.
(2) Нажмите кнопку crystal report print .
(3) Выберите принтер, а затем печать.
Я написал::
Дим oRpt в новом документе
oRpt.Load(сервер.MapPath("T13RLABEL.rpt"))
Dim mytablelogoninfo как новый TableLogOnInfo
Затемните mytable как таблицу
Для каждой таблицы mytable в базе данных oRpt.Таблицы
mytablelogoninfo = mytable.LogOnInfo
С помощью mytablelogoninfo.ConnectionInfo
.ServerName = ConfigurationSettings.AppSettings("ServerString")
.Имя Базы Данных = ConfigurationSettings.Параметр Appsettings("DatabaseString")
.UserID = ConfigurationSettings.Параметр Appsettings("UidString")
.Password = ConfigurationSettings.Параметр Appsettings("PwdString")
Конец С
таблица MyTable.ApplyLogOnInfo(mytablelogoninfo)
Следующий
oRpt.RecordSelectionFormula = "{T13LABEL.Функция user_id} = """ &амп; sys_user усилителя; """"
oRpt.Обновить()
CreportV.ReportSource = oRpt
Вы поняли, что я и другие писали?
Код может получить доступ только к принтерам локальной системы, в которой он запущен. Поскольку ваш код выполняется на сервере, он не может получить доступ к принтеру клиента.
Существуют хитрости, позволяющие клиентам печатать отчеты, как показано в ссылках из моего решения. Но затем выбор принтера и выбор параметров принтера должны выполняться на клиенте, который должен быть инициирован пользователем.
Я понял.
Спасибо.