我有一個存儲過程將用於在reportviewer(VS2010中提供的那個)中創建報告。有4個參數 - 開始日期,結束日期 - 單個參數。 多值參數 - 狀態(6種可能的選擇), 位置(250種可能的選擇)。具有多個參數的ReportViewer
我無法確定對其進行編碼的正確方法,以便報告將顯示日期範圍內所有項目的所需的各種狀態/位置。
例如:顯示(開始日期)2012年7月1日和(結束日期)9/3/2012之間所有來自Hazleton或Butler的(位置)並且(狀態)可用或不可用的部分。
的代碼來調用存儲過程:
public DataTable StatusRpt(DateTime StartDate, DateTime EndDate)
{
SQLCON = new SqlConnection(connectionString);
SQLCON.Open();
SQLCommand = new SqlCommand("spStatusRpt",SQLCON);
SQLCommand.CommandType = CommandType.Text;
SQLCommand.Parameters.Add("@StartDate", SqlDbType.Date).Value = StartDate;
SQLCommand.Parameters.Add("@EndDate", SqlDbType.Date).Value = EndDate;
//SQLCommand.Parameters.Add("@Status", SqlDbType.Int).Value = Status;
//SQLCommand.Parameters.Add("@OrgName", SqlDbType.VarChar).Value = OrgName;
SqlDataAdapter adapter = new SqlDataAdapter(SQLCommand);
DataTable Detailtable = new DataTable();
adapter.Fill(Detailtable);
return Detailtable;
}
,這裏是我的「的onClick」事件
protected void btnStatusReport_OnClick(object sender, EventArgs e)
{
int Status = Convert.ToInt32(lbxStatus.SelectedValue);
string OrgName = lbxLocations.SelectedValue;
DateTime StartDate = Convert.ToDateTime(CalStart.SelectedDate);
DateTime EndDate = Convert.ToDateTime(CalEnd.SelectedDate);
lblPrint.Visible = true;
DataTable DetailTable = equip.StatusRpt(StartDate, EndDate);
this.RV1.Reset();
this.RV1.LocalReport.DataSources.Clear();
this.RV1.LocalReport.ReportPath = "Reports/StatusReport.rdlc";
ReportDataSource rds = new ReportDataSource("StatusDS", DetailTable);
this.RV1.LocalReport.DataSources.Add(rds);
this.RV1.DataBind();
}
我做了一些研究,但一切我發現是指使用SSRS 。如果有人能告訴我如何通過代碼應用過濾器,我可以過濾。
非常感謝您的幫助。 Cindy
您可能需要爲此問題添加'sql'標記 –