2016-08-09 3 views
0

jquery에서이 정적 웹 메서드를 호출하고 jquery를 사용하여 테이블을 채 웁니다. 데이터가 테이블에 성공적으로 표시되었습니다. 웹 양식 페이지에는이 값 데이터의 선택에 따라 하나의 드롭 다운과 두 개의 날짜 선택 도구 (날짜는 &까지)가 표에 표시됩니다. 이제 내보내기 단추를 클릭하고 테이블 데이터를 클릭하면 Crystal 보고서를 만들고 싶습니다. Crystal 보고서의 세션 호출

내가 크리스탈 리포트에 전화를 걸 세션 호출 DT를 저장하고 내가

내가 웹 정적의 WebMethod 즉

이 크리스탈 보고서에 통해 CrystalReportViewer을 추가 보고서

에 표시됩니다 값 & 날짜 선택기 값을 드롭 다운
[WebMethod] 
public static string search_data(DateTime fromdate, DateTime todate, string region) 
{ 
     try 
     { 
      string result = ""; 
      Ts1 td = new T1(); 
      DateTime frDate = new DateTime(fromdate.Year, fromdate.Month, fromdate.Day, 0, 0, 0); 
      DateTime to_Date = new DateTime(todate.Year, todate.Month, todate.Day, 23, 59, 59); 
      List<griddataresult_Result> dq = td.griddataresult(frDate, to_Date, region).ToList(); 

       DataTable dt = new DataTable(); 
       dt.Columns.Add("ID", typeof(int)); 
       dt.Columns.Add("OwnerName", typeof(string)); 
       dt.Columns.Add("RegNo", typeof(string)); 
       foreach (var c in dq) 
       { 

        dt.Rows.Add(c.ID, c.OwnerName, c.RegNo); 
       } 

      DataTable dtt= (DataTable)HttpContext.Current.Session["datagrid"];    
       result = DataSetToJSON(dt);    
      return result; 
     } 
     catch (Exception) 
     { 
      throw new Exception(); 
     } 
} 

업데이트

내가 검색을 클릭하면 지금은 다음 테이블 데이터 표시입니다 웹 양식

private void BindReport(ReportDocument crystalReport, DateTime fromdate, DateTime todate, string region) 
    { 


     TrackDataEntities1 t = new TrackDataEntities1(); 
     crystalReport.Load(Server.MapPath("data.rpt")); 
     List<griddataresult_Result> dsc = t.griddataresult(fromdate, todate, region).ToList(); 
     crystalReport.SetDataSource(dsc); 
     CrystalReportViewer1.ReportSource = crystalReport; 
    } 
    protected void Report_Click(object sender, EventArgs e) 
    { 

     DataTable dt = Session["datagrid"] as DataTable; 
     ReportDocument crystalReport = new ReportDocument(); 
     //crystalReport.SetParameterValue("@fromdate", fromdate.Value); 
     //crystalReport.SetParameterValue("@todate", todate.Value); 
     //crystalReport.SetParameterValue("@region", regiondrop.SelectedValue); 
     BindReport(crystalReport,Convert.ToDateTime(fromdate.Value), Convert.ToDateTime(todate.Value), regiondrop.SelectedValue); 

    } 

이를 추가 한 후 나는 내가보고 버튼 테이블을 클릭하면됩니다 사라지고 빈 보고서는 디스플레이

+0

먼저 Crystal 보고서를 만든 다음 ReportDocument 개체를 만들고 크리스탈 보고서를 추가 한 경로를 제공하여 crstalreport를로드하고 objreport.SetParameterValue ("@ frmdate", frmdate)와 같은 매개 변수를 전달합니다. 그런 다음 crstalreportviewer.ReportSource = objreport; crstalreportviewer.Databind();를 바인딩하십시오. –

+0

확인 업데이트 @ManishGoswami – user6628729

+0

확인 업데이트 @ManishGoswami – user6628729

답변

0

그냥이다 당신의 ButtonClick 이벤트 안에 다음 코드를 추가

protected void Button5_Click(object sender, EventArgs e) 
    { 
    dynamic rpt = new ReportDocument(); 
    ApplyCRLogin(rpt); 
    DataSet dtu = new DataSet(); 
     // Your Stored Procedure Here 
     // Bind dtu to the ObjReport 
     rpt .Database.Tables["Command"].SetDataSource(dtu.Tables[0]); 
    // Here Command is name which you can see inside Field Explorer in Crystal Report Design Mode 
     // Then Pass your SP parametrs 
     rpt.SetParameterValue("@dtFromDate", txtFromDate.Text); 
     rpt.SetParameterValue("@dtToDate", txtToDate.Text); 

     //After this Export your Crstal Report to PDF 
     ExportToPDF(rpt); 
    } 

    public void ApplyCRLogin(CrystalDecisions.CrystalReports.Engine.ReportDocument oRpt) 
      { 
       CrystalDecisions.CrystalReports.Engine.Database oCRDb = oRpt.Database; 
       CrystalDecisions.CrystalReports.Engine.Tables oCRTables = oCRDb.Tables; 
       CrystalDecisions.Shared.TableLogOnInfo oCRTableLogonInfo; 
       CrystalDecisions.Shared.ConnectionInfo oCRConnectionInfo = new CrystalDecisions.Shared.ConnectionInfo(); 
       oCRConnectionInfo.DatabaseName = "DatabaseName"; 
       oCRConnectionInfo.ServerName = "DBSRV_NAME"; 
       oCRConnectionInfo.UserID = "UserID"; 
       oCRConnectionInfo.Password = "Password"; 
       foreach (CrystalDecisions.CrystalReports.Engine.Table oCRTable in oCRTables) 
       { 
        oCRTableLogonInfo = oCRTable.LogOnInfo; 
        oCRTableLogonInfo.ConnectionInfo = oCRConnectionInfo; 
        oCRTable.ApplyLogOnInfo(oCRTableLogonInfo); 
       } 
      } 

How to Export Crystal Report to PDF

+0

하지만 datetime 형식의 fromdate. datetime picker – user6628729

+0

아무런 문제가 없으므로 친절하게도 datetime 형식을 frmdate 및 SP의 @todate로 전달하거나 varchar로 유지하십시오 –

+0

ApplyCRLogin을 만드는 이유는 무엇입니까? 나는 linq 및 데이터베이스 이름 사용자 ID 등을 이미 web.congif에서 구성합니다. – user6628729