2012-05-28 88 views
0

我希望當頁面加載報告應顯示所有記錄。 現在,當我想通過日期顯示過濾器記錄(組字段),即顯示所有記錄沒有過濾器,否則顯示過濾器的記錄/秒。顯示過濾器記錄其他所有記錄在水晶報告

我的代碼如下,當我想過濾數據

protected void click(object sender, EventArgs e) 
     { 

      ReportDocument cryRpt = new ReportDocument(); 
      cryRpt.Load(Server.MapPath("report.rpt")); 
      cryRpt.SetDatabaseLogon("userid", "password", "server", "database"); 
      ParameterFieldDefinitions crParameterFieldDefinitions; 
      ParameterFieldDefinition crParameterFieldDefinition; 
      ParameterValues crParameterValues = new ParameterValues(); 
      ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue(); 

      crParameterDiscreteValue.Value =Convert.ToDateTime(dtAppt.Text).ToShortDateString(); 
      crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields; 
      crParameterFieldDefinition = crParameterFieldDefinitions["stdate"]; 
      crParameterValues = crParameterFieldDefinition.CurrentValues; 
      crParameterValues.Add(crParameterDiscreteValue); 
      crParameterFieldDefinition.ApplyCurrentValues(crParameterValues); 
      CrystalReportViewer1.ReportSource = cryRpt; 
      Checkbox1.Checked = false; 

     } 

enter image description here 怎麼寫if條件,這樣我可以得到所有的記錄,亦是在此通過以下路線?

crParameterDiscreteValue.Value =Convert.ToDateTime(dtAppt.Text).ToShortDateString(); 

回答

3

當你想顯示所有記錄添加特殊值,即01/01/1900

crParameterDiscreteValue.Value ="19000101"; 

{?stdate} = '19000101' or {appointment.startdate} = {?stdate} 

無需如果其他語句中使用。

0

訣竅是將「特殊值」傳遞給您的參數或創建一個新的參數來覆蓋。

A 「特殊價值」 的例子是01/01/1900:

然後在您的選擇標準:{?stdate} = '19000101' or {appointment.startdate} = {?stdate}

如果你走另一條路線創建一個布爾參數覆蓋:

那麼在你的選擇標準:{?override} or {appointment.startdate} = {?stdate}