2012-12-03 2 views
0

Asp.net 4.0 및 SAP Crystal 보고서를 사용하고 있는데 데이터 집합을 바인딩 한 후 reportViewer에 데이터를 표시 할 수 없다는 문제가 있습니다.Crystal 보고서에서 Asp.net을 사용하여 데이터를 표시하지 않습니다.

아래는 내 영문 디자이너 코드

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="productRepot.aspx.cs" Inherits="ProductionPlanning1.productRepot" %> 

<%@ Register Assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" 
Namespace="CrystalDecisions.Web" TagPrefix="CR" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 

<asp:Label ID="prdt_Label1" runat="server" Text="ProductID"></asp:Label> 
<asp:TextBox ID="matrl_TextBox" runat="server"></asp:TextBox> 

<asp:Button ID="rpt_Button1" runat="server" Text="PrintProduct" 
    onclick="rpt_Button1_Click"></asp:Button> 
<CR:CrystalReportViewer ID="product_CrystalReportViewer1" runat="server" 
    AutoDataBind="true"></CR:CrystalReportViewer> 

</asp:Content> 

제품 Report.aspx.cs

protected void rpt_Button1_Click(object sender, EventArgs e) 
    { 
     //DataSet2 DS2 = new DataSet2(); 
     //Fyp_1.Product pp = new Fyp_1.Product(); 
     //DS2.Tables.Add(pp.GetProduct(Convert.ToInt16(matrl_TextBox.Text)).Copy()); 
     //DS2.Tables[0].TableName = "Product"; 
     //CrystalReportProduct TR = new CrystalReportProduct(); 
     //TR.SetDataSource(DS2); 
     //product_CrystalReportViewer1.ReportSource = TR; 
     //product_CrystalReportViewer1.DataBind(); 

     GenerateReport(); 




     //DataSet ds = new DataSet(); 
     //BookTicket_Class BT = new BookTicket_Class(); 
      //ds.Tables.Add(BT.GetBookTicketReport(Convert.ToInt16(TicketNO_TextBox.Text)).Copy()); 
     //ds.Tables[0].TableName = "BookTicket"; 
     //TicketReport TR = new TicketReport(); 
     //TR.SetDataSource(ds); 
     //CrystalReportViewer1.ReportSource = TR; 
     //CrystalReportViewer1.DataBind(); 
    } 

    protected void GenerateReport() 
    { 
     SqlConnection sqlConn = new SqlConnection(@"Data Source=PROZECK- PC\R2MSSQLSERVER;Initial Catalog=FYP;Integrated Security=True"); 

     SqlCommand comd; 
     comd = new SqlCommand(); 
     comd.Connection = sqlConn; 
     comd.CommandType = CommandType.StoredProcedure; 
     comd.CommandText = "spgetproductNEW"; 



     comd.Parameters.Add("@MaterialID", SqlDbType.Int); 
     // int VAL = Convert.ToInt32(matrl_TextBox.Text); 
     if (matrl_TextBox.Text.Trim() != "") 
      comd.Parameters[0].Value = Convert.ToInt32(matrl_TextBox.Text); 
     else 
      comd.Parameters[0].Value = DBNull.Value; 




     SqlDataAdapter sqlAdapter = new SqlDataAdapter(); 
     sqlAdapter.SelectCommand = comd; 

     DataSet2 DS2 = new DataSet2(); 
     sqlAdapter.Fill(DS2, "Product"); 

     //oRpt.SetDataSource(ds); 

     //CrystalReportViewer1.Visible = true; 

     //CrystalReportViewer1.ReportSource = oRpt; 
     CrystalReportProduct TR = new CrystalReportProduct(); 
     TR.SetDataSource(DS2); 
     product_CrystalReportViewer1.ReportSource = TR; 
     // product_CrystalReportViewer1.DataBind(); 




    } 
} 

다음은 문제의 스크린 샷이 당신에게 설명이다.

enter image description here

하지만 크리스탈 리포트 디자이너의 데이터를 확인할 때이 데이터 을 보여 데이터 바인딩의 내 첫 번째 코드는이 후 나는

을 붙여 위의 코드에서 변경되었습니다 enter image description here

 DataSet2 DS2 = new DataSet2(); 
     Fyp_1.Product pp = new Fyp_1.Product(); 
     DS2.Tables.Add(pp.GetProduct(Convert.ToInt16(matrl_TextBox.Text)).Copy()); 
     DS2.Tables[0].TableName = "Product"; 
     CrystalReportProduct TR = new CrystalReportProduct(); 
     TR.SetDataSource(DS2); 
     product_CrystalReportViewer1.ReportSource = TR; 
     product_CrystalReportViewer1.DataBind(); 

답변

0

최종 통화가 누락 된 것 같습니다. product_CrystalReportViewer1.Refresh();

0

수정 crystalReport.web dll을 삭제 한 다음 crystalReport.web dll의 최신 버전을 추가해야 정상적으로 작동합니다.

관련 문제