我試圖創建一個參數化的報告,使用一個數據集中的兩個數據表,這是因爲在第一個數據表中,我獲取所有記錄並將其顯示在頁面加載事件,但是當用戶輸入日期和日期參數並單擊過濾器時,我希望報告更改爲接受參數的其他數據表。未提供數據源實例的數據源rdlc報告
在頁面加載什麼appreas:
我完成了上面這段代碼
if (Page.IsPostBack == false)
{
NetWeightIolaDataSet.Net_Weight_Tracking1DataTable table = new NetWeightIolaDataSet.Net_Weight_Tracking1DataTable();
NetWeightIolaDataSetTableAdapters.Net_Weight_Tracking1TableAdapter adpt =
new NetWeightIolaDataSetTableAdapters.Net_Weight_Tracking1TableAdapter();
adpt.Fill(table);
ReportDataSource rds = new ReportDataSource("NetWeightIolaDataSet_Net_Weight_Tracking1", table);
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();
ReportViewer1.Visible = true;
}
我可以得到這些參數對報告工作,如果我用這個代碼,並添加報告中的參數:
//ReportParameter param = new ReportParameter("fromdate", fromdate.Text);
//this.ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { param });
//ReportParameter paramm = new ReportParameter("todate", todate.Text);
//this.ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { paramm });
但我沒有要像這樣做,而不是我想通過數據表來傳遞數據集中的參數報告,然後分配具有源的報告,但是當我這樣做,我得到這個錯誤:
A data source instance has not been supplied for the data source 'NetWeightIolaDataSet_Net_Weight_Tracking1'.
我數據集:
所以頁面加載顯示器上使用的數據表不帶參數,但所有數據時的日期範圍被設置,並且當過濾器按鈕被點擊使用其他的數據表作爲報告源:
這是從文本框傳遞值和填充在數據表與參數代碼:
NetWeightIolaDataSet.Net_Weight_TrackingDataTable table = new NetWeightIolaDataSet.Net_Weight_TrackingDataTable();
NetWeightIolaDataSetTableAdapters.Net_Weight_TrackingTableAdapter adpt = new NetWeightIolaDataSetTableAdapters.Net_Weight_TrackingTableAdapter();
adpt.Fill(table, DateTime.Parse(fromdate.Text), DateTime.Parse(todate.Text));
ReportDataSource rds = new ReportDataSource("NetWeightIolaDataSet_Net_Weight_Tracking", table);
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();
ReportViewer1.Visible = true;