2013-07-02 3 views
0

У меня есть Crystal Report, разработанный в Crystal report 13, но сервер, на котором я должен развернуть его, имеет Crystal Report 10. Мой клиент хочет распечатать отчет о кристалле прямо на своем принтере. Они не хотят никакого PDF-документа, но теперь он экспортируется как PDF-файл. Затем с помощью друга Stackoverflow я написал код ниже и теперь просил распечатать. Мой код, как показано ниже:Как распечатать отчет Crystal с помощью Javascript?

CrystalDecisions.CrystalReports.Engine.ReportClass clsReport = new CrystalDecisions.CrystalReports.Engine.ReportClass(); 

protected void Button3_Click(object sender, EventArgs e) 
{ 
    System.Windows.Forms.PrintDialog dialog1 = new System.Windows.Forms.PrintDialog(); 



    dialog1.AllowSomePages = true; 
    dialog1.AllowPrintToFile = false; 
    dialog1.ShowDialog(); 


    if (dialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
    { 
     int copies = dialog1.PrinterSettings.Copies; 
     int fromPage = dialog1.PrinterSettings.FromPage; 
     int toPage = dialog1.PrinterSettings.ToPage; 
     bool collate = dialog1.PrinterSettings.Collate; 


     clsReport.PrintOptions.PrinterName = dialog1.PrinterSettings.PrinterName; 
     clsReport.PrintToPrinter(copies, collate, fromPage, toPage); 



    } 

этот код позволяет печатать из диалогового окна печати, но когда я развернуть эту систему на сервер, который: Windows Server 2008 R2 Enterprise

Я получаю ошибку сообщение, которое

The ShowDialog is not applicable with server

Итак, теперь я хочу код Javascript, который может позволить, чтобы распечатать страницу со стороны клиента также. Но я не знаю, как это сделать. И как я могу скрыть кнопку на странице от Javascript Печать: window.print();

Ваша помощь будет наиболее заметной. Я хотел бы отметить: Моя система представляет собой веб-приложение, с помощью ASP.NET, C#

+0

Вы (и, возможно, через клиент) должны отделить ваше мышление от «разработки Windows» до «веб-разработки». Что вы используете для отображения отчета на странице ASP.NET? – Alexander

+0

Я использую reportviewer, чтобы показать отчет – barsan

+0

Помогает ли это? http://stackoverflow.com/questions/6465155/asp-net-crystal-report-viewer-print-button-not-working-in-asp-net – Alexander

ответ

0

Java Script:

function printCrystal() {    
     var printContent = document.getElementById('printReady');    
     var windowUrl = 'about:blank'; 
     var uniqueName = new Date(); 
     var windowName = 'Print' + uniqueName.getTime(); 
     var printWindow = window.open(); 
     printWindow.document.write('<HTML><HEAD></HEAD><BODY>'+printContent.innerHTML+'</BODY></HTML>'); 
     printWindow.focus(); 
     printWindow.print(); 
     printWindow.close(); 
    } 

DIV тег для печати:

<div id="printReady" class="ReportViewerContainerStyle"> 
     <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true" 
      OnNavigate="CrystalReportViewer1_Navigate" HasCrystalLogo="False" HasToggleGroupTreeButton="False" 
      Width="350px" HasToggleParameterPanelButton="False" ToolPanelView="None" Height="50px" 
      EnableDrillDown="False" EnableParameterPrompt="False" /> 
    </div> 
+0

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

+0

Попробуйте без Focus-Methode. BTW: http://stackoverflow.com/questions/2255291/print-the-contents-of-a-div – Smartis

Смежные вопросы