我已经能用reoprtDocument对象完成与数据表绑定的报表的打印,但如果报表是与DataSet绑定的如何实现打印。问题的核心是没办法将与DataSet绑定的报表装入reoprtDocument,以进行打印。
   各位大虾帮帮忙吧!

解决方案 »

  1.   

    http://support.businessobjects.com/communityCS/TechnicalPapers/ce_net_dataset_provider.pdf.asp
      

  2.   

    可以考虑把DataSet数据集中的数据转移到Excel里
      

  3.   

    private void BindReport()
    {
    CrystalReport1 ort=new CrystalReport1();
    string strconn=ConfigurationSettings.AppSettings["strconn"];
    SqlConnection myconn=new SqlConnection(strconn);
    myconn.Open();
    SqlDataAdapter sqlDataAdapter1=new SqlDataAdapter("select * from *** " ,myconn);
    DataSet ds=new DataSet();
    sqlDataAdapter1.Fill(ds,"DataBook");
    DataGrid1.DataSource=ds;
    DataGrid1.DataBind();
    ort.SetDataSource(ds);
    this.CrystalReportViewer1.ReportSource=ort; }
      

  4.   

    妳可以轉為PDF文件打印,也可以直接打印
    Dim StrSQL As String    Dim StrCnn As New SqlConnection(ConfigurationSettings.AppSettings("JDEWEB_CONNECTION"))
        Dim StrCmd As SqlDataAdapter
        Dim ds As New DS_MFG001'妳自己新建的dataset
        Dim RptDoc As New ReportDocument
        Dim fname As String = ConfigurationSettings.AppSettings("Report_Path") + "MFG001.rpt"
    Function LoadReport()
            StrCmd = New SqlDataAdapter("sp_GetMFG001_VPSLIST", StrCnn)
            StrCmd.SelectCommand.CommandType = CommandType.StoredProcedure
            StrCmd.SelectCommand.Parameters.Add(New SqlParameter("@WoNo1", SqlDbType.NVarChar, 10))
            StrCmd.SelectCommand.Parameters("@WoNo1").Value = TxtWono1.Text
            StrCmd.SelectCommand.Parameters.Add(New SqlParameter("@WoNo2", SqlDbType.NVarChar, 10))
            StrCmd.SelectCommand.Parameters("@WoNo2").Value = TxtWono2.Text
            StrCmd.Fill(ds, "VPSLIST")
            StrCmd.Fill(ds, "MFG001")
            Try
                RptDoc.Load(fname)
                RptDoc.SetDataSource(ds)
                CRViewer.ReportSource = RptDoc
            Catch sqlex As SqlException
                lblErrMessage.Text = "連接服務器失敗!請稍后重試!"
            Catch ex As LoadSaveReportException
                Response.Write("<script language='javascript'>alert('Loading Report False,Please Try Later!')</script>")
            End Try
            CRViewer.Visible = False
        End Function
        Private Sub BtnPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPreview.Click
            LoadReport()
            Dim ObjFile As New DiskFileDestinationOptions
            ObjFile.DiskFileName = ConfigurationSettings.AppSettings("Report_Path") + "Export\MFG001.pdf"
            Dim lname As String = "./Reports/Export/MFG001.pdf"
            Try
                With RptDoc.ExportOptions
                    .ExportDestinationType = ExportDestinationType.DiskFile
                    .ExportFormatType = ExportFormatType.PortableDocFormat
                    .DestinationOptions = ObjFile
                End With
                RptDoc.Export()
                If ds.Tables("VPSLIST").Rows.Count = 0 And ds.Tables("MFG001").Rows.Count = 0 Then
                    CRViewer.Visible = False
                    lblErrMessage.Visible = True
                    lblErrMessage.Text = "Not Found Recorder About This No!"
                Else
                    lblErrMessage.Visible = False
                    Response.Write("<script language='javascript'>window.open('" & lname & "','','toolbar=0,menubar=0,status=0,resizable=1')</script>")
                End If
            Catch ex As SqlException
                'lblErrMessage.Text = ex.ToString
                Response.Write("<script language='javascript'>alert('Sorry,Server Busy!Please Try Later!')</script>")
            End Try
            System.IO.File.Delete(" & lname & ")    End Sub
      

  5.   

    to:wangrenda(浪人) 
        先谢谢了!
        我用的是B/S方式,在浏览器中,CrystalViewer无法显示出“打印”按钮啊!请问大虾有办法让这个按钮显示出来吗?
      

  6.   

    to:jasonlee0927(李萬平)
         谢谢你!
         让我先试验一下!试验成功马上结帖!
      

  7.   

    回复人: lieshou(猎手) ( ) 信誉:100  2004-09-19 12:10:00  得分: 0  
     
     
       to:wangrenda(浪人) 
        先谢谢了!
        我用的是B/S方式,在浏览器中,CrystalViewer无法显示出“打印”按钮啊!请问大虾有办法让这个按钮显示出来吗?
      
     
    你的不是crystal report 10企业版吧
      

  8.   

    private void BindReport()
    {
    CrystalReport1 ort=new CrystalReport1();
    string strconn=ConfigurationSettings.AppSettings["strconn"];
    SqlConnection myconn=new SqlConnection(strconn);
    myconn.Open();
    SqlDataAdapter sqlDataAdapter1=new SqlDataAdapter("select * from *** " ,myconn);
    DataSet ds=new DataSet();
    sqlDataAdapter1.Fill(ds,"DataBook");
    DataGrid1.DataSource=ds;
    DataGrid1.DataBind();
    ort.SetDataSource(ds);
    this.CrystalReportViewer1.ReportSource=ort; }
      

  9.   

    to: wangrenda(浪人)
        我用的是.net 2003自带的水晶报表。它和企业版有很大不同吗?
        请指教!!!