2016-08-08 2 views
0

Crystal Reports에서 매개 변수와 함께 저장 프로 시저를 사용하려면 어떻게해야합니까? VS 2013, asp.net, MVC 및 면도기 함께 다음 코드를 사용하고 있습니다.보고서에 매개 변수가있는 저장 프로 시저 사용

public ActionResult AllCustomerReports() 
{ 
    ReportDocument rd = new ReportDocument(); 
    rd.Load(Server.MapPath("\\Reports\\rpt_AllCustomers.rpt")); 
    rd.SetDataSource(db.CUSTOMERs.Select(p => new 
    { 
     Id = p.Id, 
     CUSTOMER_CODE = p.CUSTOMER_CODE, 
     CUSTOMER_NAME = p.CUSTOMER_NAME, 
     CUSTOMER_EMAIL_ADDRESS = p.CUSTOMER_EMAIL_ADDRESS, 
     CUSTOMER_LANDLINE = p.CUSTOMER_LANDLINE, 
     CUSTOMER_TYPE_ID = p.CUSTOMER_TYPE.Id, 
     CUSTOMER_TYPE_NAME = p.CUSTOMER_TYPE.CUSTOMER_TYPE_NAME, 
     LOCATION_TYPE_ID = p.LOCATION_TYPE.Id, 
     LOCATION_TYPE_NAME = p.LOCATION_TYPE.LOCATION_TYPE_NAME, 
     INDUSTRY_TYPE_ID = p.INDUSTRY_TYPE.Id, 
     INDUSTRY_TYPE_NAME = p.INDUSTRY_TYPE.INDUSTRY_TYPE_NAME 
    }).ToList()); 

    Response.Buffer = false; 
    Response.ClearContent(); 
    Response.ClearHeaders(); 
    Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); 
    stream.Seek(0, SeekOrigin.Begin); 
    return File(stream, "application/pdf", "ListofAllCustomers.pdf"); 
} 

답변

0

먼저 데이터 집합 또는 데이터 테이블에서 데이터베이스 레코드를 가져와 다음과 같이보고하도록 데이터를 할당해야합니다. 데이터를 가져 오려면 보고서에 매개 변수를 전달할 필요가 없습니다. 당신은 매개 변수를 sp에 직접 전달할 수 있습니다.

DataSet ds = get data from database which call sp with parameter;     

string reportPath = Server.MapPath("~/Reports/XXXXX.rpt"); 
reportDocument.Load(reportPath); 

DataTable dt = ds.Tables[0].Copy(); 

reportDocument.SetDataSource(dt); 

CrystalReportViewer.ReportSource = reportDocument; 
CrystalReportViewer.DataBind(); 
+0

datetimepicker 값을 사용하여 SP에 매개 변수를 전달하는 방법은 무엇입니까? 그리고 사용자가 제공 한 필드를 기반으로 보고서 생성을 클릭하십시오. – KimJean

+0

iframe을 사용하여 보고서 뷰어를로드 했습니까? –

+0

아니요. 어떻게 사용하는지 모르겠습니다. – KimJean

관련 문제