我有一个名为“dts_Material_Report”的数据集,用于生成报告。在该数据集中,我有一个名为“dt_report_Received_Materials”的tableAdapter。
以前我已使用以下代码
将数据加载到该表适配器private void generate_report( string qry )
{
string query, qry1;
query = qry;
int pr_id = Form_Common_PCM.pr_id;
clz_Common_SqlConnection con = new clz_Common_SqlConnection();
SqlDataAdapter sda = new SqlDataAdapter(query, con.ActiveCon());
DataSet dts = new DataSet();
sda.Fill(dts, "dt_report_Received_Materials");
rdc.SetDataSource(dts);
crystalReportViewer1.ReportSource = rdc;
crystalReportViewer1.DisplayToolbar = true;
crystalReportViewer1.Show();
}
但是目前我拥有在我的一个名为“dt_mat_cost”的数据表中生成报告所需的所有数据。
int Ref_ID_s_category;
Ref_ID_s_category = Convert.ToInt16(cbo_sub_category .SelectedValue );
int pro_id = Form_Common_PCM.pr_id;
clz_Received_Material_Summary rms = new clz_Received_Material_Summary();
DataTable dt_mat_cost = rms.Summary_Material_Cost_Filter_By_Project_By_Sub_Category(Ref_ID_s_category);
现在我想将这些数据从“dt_mat_cost”加载到我的tableAdapter“dt_report_Received_Materials”。有没有办法做到这一点。
先谢谢。
答案 0 :(得分:0)
解决此问题的一种方法是将DataTable放入DataSet,然后运行晶体代码,如下所示。您可以将ReportSource设置为数据表,但如果可以的话,我不记得我的头脑。
DataTable dt_matCost = rms.Summary_Material_Cost_Filter_By_Project_By_Sub_Category(Ref_ID_s_category);
DataSet dts = new DataSet();
dts.Tables.Add(dt_matCost);
//ds.Tables[0].TableName = "Whatever CR thinks it is"; // may need to set for CR
rdc.SetDataSource(dts);
crystalReportViewer1.ReportSource = rdc;
crystalReportViewer1.DisplayToolbar = true;
crystalReportViewer1.Show();