如果是使用CrystalReportView 查看器 查看报表 ,则上面有个打印按钮
如果不使用CrystalReportView 可以用代码实现
   Dim rpt As CrystalDecisions.CrystalReports.Engine.ReportDocument
   rpt = New CrystalDecisions.CrystalReports.Engine.ReportDocument()
   rpt.Load("你的报表文件")
   '设置数据源
   rpt.SetDataSource(myTable)   '使用默认打印机
   rpt.PrintOptions.PrinterName = ""
   'a4的纸张
   rpt.PrintOptions.PaperSize = PaperSize.PaperA4
   '纵向打印
   rpt.PrintOptions.PaperOrientation = PaperOrientation.Portrait
   Try
         rpt.PrintToPrinter(1, False, 0, 0)
         
      Catch
           Me.Cursor = Cursors.Default
           MessageBox.Show("打印列表数据出错,请确认打印机状态!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
     Finally
        rpt.Dispose()
     End Try如果是在b/s的结构下,推荐把报表导出成pdf 文件 再打印。

解决方案 »

  1.   

    如果是在b/s的结构下,推荐把报表导出成pdf 文件 再打印。
    ------------------------------------------------------
    怎么导出成pdf 文件啊?
      

  2.   

    我用2003,且CrystalReportView 查看器 查看报表,也没有打印按钮!???
      

  3.   

    rpt.Load("你的报表文件")
    中的“报表文件”是指哪个文件,我加了不成功!
      

  4.   

    rpt.Load("你的报表文件")
    中的“报表文件”是指哪个文件,我加了不成功!
    -------------------------
    路径+文件名!!
      

  5.   

    http://expert.csdn.net/Expert/topic/3043/3043100.xml?temp=.9580652 
    导出
      

  6.   

    导出到PDF文件之后再打印,下面是导出为PDF的代码:
    Private Sub printreport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles printreport.Click
            Crviewer.Visible = True
            Dim lname As String
            Dim sqlstr As String = "select * from table"
            Dim cmdcommand As New SqlDataAdapter(sqlstr, cnnconnection)
            Dim ds As New ds_reportname
            cmdcommand.Fill(ds, "yourtable")
            Dim objfile As New DiskFileDestinationOptions
            rptdoc.Load(fname)
            objfile.DiskFileName = "c:\inetpub\wwwroot\webreports\export\report1.pdf"
            With rptdoc.ExportOptions
                .ExportDestinationType = ExportDestinationType.DiskFile
                .ExportFormatType = ExportFormatType.PortableDocFormat
                .DestinationOptions = objfile
            End With
            rptdoc.SetDataSource(ds)
            Crviewer.ReportSource = rptdoc
            lname = "./export/report1.pdf"
            Try
                rptdoc.Export()
                Response.Write("<script language='javascript'>window.open('" & lname & "','printwindow','toolbar=0,menubar=0,status=0,resizable=1')</script>")
            Catch ex As Exception
                Response.Write("<b style:font-color=red>Server Busy, Please Try Later. <br />OR <br />Contact System Administrator to increase the license.</b>")
            End Try
        End Sub
    ----------------------其中ds_reportname为你建立的数据集的名字,
    Imports CrystalDecisions.CrystalReports.Engine
    Imports CrystalDecisions.Shared
      

  7.   

    我刚才看了一下关于WEB页中报表打印的几种方法和一些别的相关帖子,请问:为什么要导出为pdf格式再打印?还有别这种更简单的方法吗?
      

  8.   

    楼上的xueqs()大虾,我想请教一下:
    在vs.net(web)中,水晶报表10怎样才能实现直接打印(只需单击一次即可打印报表,无需为了使用 Adobe Acrobat 中的打印功能而将报表导出为 PDF 格式)?用户文档中有如下说明:Crystal Reports 10 包含了一个更新的 DHTML 报表查看器控件(是通过一个下载到客户端机器的小 ActiveX 控件提供的)可以实现直接打印,
    请问在哪里能找到这个ActiveX控件?控件名是什么?除了这个控件,还有其他方法实现直接打印吗? 
      

  9.   

    俺的问题解决了!!水晶报表10自带的打印功能安装完(Crstal Report)10.0在(VS.net)工具栏就可以看到报表查看器控件,(把报表查看器控件)拖动到界面即可,(并把报表查看器控件属性里的)printMode选为ActiveX(大功告成)!!!It is so easy......太高兴了:D谢谢meixiaofeng(sean)!!!