Saltar al contenido

Imprima Crystal Report directamente en ASP.NET C#

Nuestros mejores desarrolladores han agotado sus reservas de café, en su búsqueda todo el tiempo por la respuesta, hasta que Lilian encontró el resultado en Beanstalk y ahora la compartimos aquí.

Solución:

       using System.Drawing.Printing;
       using Crystal Decisions.CrystalReports.Engine;
       using Crystal Decisions.Shared;
       protected void Page_Load(object sender, EventArgs e)
       
         void();
       
       public void()
       
         try
        
         ReportDocument crystalReport = new ReportDocument();
         crystalReport.Load(Server.MapPath("~/CrystalReport2.rpt"));
         DataSet dsCustomers = GetData("select * from visitor_details where  id ='" + Session["sessionvid"] + "' and  plant ='" + Session["sessionplant"] + "'");

         DataTable dataTable = dsCustomers.Tables[0];   crystalReport.Database.Tables["visitor_details"].SetDataSource((DataTable)dataTable);
          CrystalReportViewer2.ReportSource = crystalReport;
          CrystalReportViewer2.Zoom(100);
          //crystalReportViewer1.ExportReport() ;
          CrystalReportViewer2.RefreshReport();
          crystalReport.PrintOptions.PrinterName = GetDefaultPrinter();
          crystalReport.PrintToPrinter(1, false, 0, 0);
        
        catch
        
            Response.Write("");
        

Esto funciona para mí. Puedes crear el tuyo propio PageSettings si es necesario, de lo contrario, simplemente use uno vacío.

Si desea abrir un diálogo de impresión, simplemente use PrintDialog;

using System.Windows.Forms;

//...

ReportClass report = new ReportClass();
report.FileName = @"C:/Layout.rpt";
report.Load();
report.SetDataSource(YourSource);

PrinterSettings settings = new PrinterSettings();

PrintDialog pdialog = new PrintDialog();
if (pdialog.ShowDialog() == DialogResult.OK)

    settings = pdialog.PrinterSettings;


report.PrintToPrinter(settings, new PageSettings()  , false);

1. IMPRESIÓN DEL LADO DEL CLIENTE

Este es el método más ideal para imprimir en una aplicación basada en la web, ya que la mayoría de los usuarios accederán al servidor de forma remota.

Coloque este código javascript dentro de la etiqueta principal de su página .aspx donde reside el visor de informes de Crystal.

     

Con la misma página, en la etiqueta del cuerpo pon esto

  
        

— tome nota del botón allí. debe estar fuera del div que encerraba el visor de informes de cristal. Esto seguramente funcionará. consulte la discusión completa sobre este método: http://www.aspsnippets.com/Articles/Print-Crystal-Report-on-Client-Side-on-Button-Click-using-JavaScript-in-ASPNet.aspx


2. IMPRESIÓN DEL LADO DEL SERVIDOR

Las respuestas más sugeridas aquí son las función imprimiraimpresora(). Este método se realiza en el lado del servidor, por lo tanto, está limitado cuando accede al servidor de su aplicación / sitio web basado en la web de forma remota, a menos que el cliente pueda asignar o tener acceso con la impresora del servidor.


Lea esto para obtener más información: http://aspalliance.com/509_Automatically_Printing_Crystal_Reports_in_ASPNET.3

Sección de Reseñas y Valoraciones

Al final de todo puedes encontrar las referencias de otros usuarios, tú además puedes dejar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4.5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *