2011-09-15 17 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(); 
関連する問題