2011-09-15 3 views
1

다음 코드를 사용하여 페이지로드 이벤트에서 Crystal Reports를 바인딩합니다.SAP Crystal Reports for VS2010 데이터 바인딩

using (MilitrymessEntities entity = new MilitrymessEntities()) 
      { 

       BarporderReports barporpt = new BarporderReports(); 

       barporpt.Refresh(); 


       barporpt.SetDataSource(query); 

       //barporpt.SetParameterValue("norows", 10); 
       crviewer_barpurchaseorder.RefreshReport(); 

       crviewer_barpurchaseorder.ReportSource = barporpt; 
      } 

제대로 바인딩되어 있으며 보고서를 표시합니다. 버튼 클릭 이벤트의 필터에 필터를 적용했습니다. 검색 버튼을 클릭하면 보고서에 동일한 데이터 세트가 표시됩니다. 필터링 된 값을 표시하지 않습니다. 버튼 클릭 이벤트 코드는 다음과 같습니다.

using (MilitrymessEntities entity = new MilitrymessEntities()) 
     { 

      DateTime dt1 = Convert.ToDateTime(txt_fromdate.Text); 
      DateTime dt2 = Convert.ToDateTime(txt_todate.Text); 

      string strdt1 = dt1.Date.ToString("MM/dd/yyyy"); 
      string strdt2 = dt2.Date.ToString("MM/dd/yyyy"); 

      dt1 = Convert.ToDateTime(strdt1); 
      dt2 = Convert.ToDateTime(strdt2); 


          var query = from data in entity.BarPurchaseOrders.AsEnumerable() 
         where (data.Date >= dt1) && (data.Date <= dt2) && data.ItemName == drp_itemname.SelectedItem.Text 
         select data; 


          BarporderReports barporpt = new BarporderReports(); 
          barporpt.Refresh(); 

          barporpt.SetDataSource(query); 


      crviewer_barpurchaseorder.RefreshReport(); 
      crviewer_barpurchaseorder.ReportSource = barporpt; 




     } 

이 문제에 대해 알고 계십니까?

답변

0

페이지로드 이벤트에서 포스트 백을 확인해야합니다. 또한

if(!page.IsPostback()) 
{ 
    using (MilitrymessEntities entity = new MilitrymessEntities()) 
    { 
     BarporderReports barporpt = new BarporderReports(); 
     barporpt.Refresh(); 
     barporpt.SetDataSource(query); 
     crviewer_barpurchaseorder.RefreshReport(); 
     crviewer_barpurchaseorder.ReportSource = barporpt; 
    } 
} 

, 아래처럼, 당신은 당신의 보고서 상쾌한 전에 데이터 소스를 설정해야

BarporderReports barporpt = new BarporderReports(); 
barporpt.SetDataSource(query); 
barporpt.Refresh(); 

crviewer_barpurchaseorder.ReportSource = barporpt; 
crviewer_barpurchaseorder.RefreshReport();