Hi kkindhu,
Check this example. Now please take its reference and correct your code.
Using the below article i have created the example.
HTML
<%@ Register Assembly="CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
Namespace="CrystalDecisions.Web" TagPrefix="CR" %>
<div id="dvReport">
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true"
BestFitPage="False" />
</div>
<br />
<asp:Button runat="server" ID="btnPrint" OnClick="Print" Text="Print" />
Namespaces
C#
using System.Configuration;
using System.Data.SqlClient;
using System.Drawing.Printing;
using CrystalDecisions.CrystalReports.Engine;
VB.Net
Imports CrystalDecisions.CrystalReports.Engine
Imports System.Data.SqlClient
Imports System.Drawing.Printing
Code
C#
ReportDocument crystalReport = new ReportDocument();
protected void Page_Load(object sender, EventArgs e)
{
crystalReport.Load(Server.MapPath("~/CrystalReport.rpt"));
Customers dsCustomers = GetData();
crystalReport.SetDataSource(dsCustomers);
CrystalReportViewer1.ReportSource = crystalReport;
CrystalReportViewer1.DisplayGroupTree = false;
}
private Customers GetData()
{
string conString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
string query = "SELECT CustomerId,ContactName,City,Country FROM Customers";
SqlCommand cmd = new SqlCommand(query);
using (SqlConnection con = new SqlConnection(conString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (Customers ds = new Customers())
{
sda.Fill(ds, "DataTable1");
return ds;
}
}
}
}
protected void Print(object sender, EventArgs e)
{
// Refresh Report.
crystalReport.Refresh();
// Set Paper Orientation.
crystalReport.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape;
// Set Paper Size.
crystalReport.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4;
// CrystalDecisions.Shared.ExportFormatType to change the format i.e. Excel, Word, PDF
//crystalReport.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Response, true, "CustomerDetails");
crystalReport.PrintOptions.PrinterName = GetDefaultPrinter();
crystalReport.PrintToPrinter(1, true, 0, 0);
}
private string GetDefaultPrinter()
{
PrinterSettings settings = new PrinterSettings();
foreach (string printer in PrinterSettings.InstalledPrinters)
{
settings.PrinterName = printer;
if (settings.IsDefaultPrinter)
{
return printer;
}
}
return string.Empty;
}
VB.Net
Private crystalReport As ReportDocument = New ReportDocument()
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
crystalReport.Load(Server.MapPath("~/CrystalReport.rpt"))
Dim dsCustomers As Customers = GetData()
crystalReport.SetDataSource(dsCustomers)
CrystalReportViewer1.ReportSource = crystalReport
CrystalReportViewer1.DisplayGroupTree = False
End Sub
Private Function GetData() As Customers
Dim conString As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Dim query As String = "SELECT CustomerId,ContactName,City,Country FROM Customers"
Dim cmd As SqlCommand = New SqlCommand(query)
Using con As SqlConnection = New SqlConnection(conString)
Using sda As SqlDataAdapter = New SqlDataAdapter()
cmd.Connection = con
sda.SelectCommand = cmd
Using ds As Customers = New Customers()
sda.Fill(ds, "DataTable1")
Return ds
End Using
End Using
End Using
End Function
Protected Sub Print(ByVal sender As Object, ByVal e As EventArgs)
' Refresh Report.
crystalReport.Refresh()
' Set Paper Orientation.
crystalReport.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape
' Set Paper Size.
crystalReport.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4
' CrystalDecisions.Shared.ExportFormatType to change the format i.e. Excel, Word, PDF
'crystalReport.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Response, true, "CustomerDetails")
crystalReport.PrintOptions.PrinterName = GetDefaultPrinter()
crystalReport.PrintToPrinter(1, True, 0, 0)
End Sub
Private Function GetDefaultPrinter() As String
Dim settings As PrinterSettings = New PrinterSettings()
For Each printer As String In PrinterSettings.InstalledPrinters
settings.PrinterName = printer
If settings.IsDefaultPrinter Then
Return printer
End If
Next
Return String.Empty
End Function
Screenshot