private void Print_Report_Click(object sender, EventArgs e) { double sumAllPersonEducate = 0; double sumAllPersonOccupation = 0; DataTable dataSourceEducate = dcore.GetReportEducation(mtxtYearin.Text.Trim()); DataTable dataSourceOccupation = dcore.GetReportOccupation(mtxtYearin.Text.Trim()); List <ReportParameter> reportParam = new List <ReportParameter>(); DataTable DataEducateToReport = new DataTable(); DataTable DataOccupationToReport = new DataTable(); // Console.WriteLine("Found " + dataSourceEducate.Rows.Count + "item"); if (dataSourceEducate.Rows.Count > 0 && dataSourceOccupation.Rows.Count > 0) { //============================================================== //===================== Education ========================== //============================================================== #region "Education" //นับ count ทั้งหมดที่พบ --> เพื่อใช้หา percent ต่อไป foreach (DataRow dr in dataSourceEducate.Rows) { sumAllPersonEducate += Convert.ToInt32(dr["Educount"]); //get summary } if (checkBox1.Checked) { DataEducateToReport = Create_DataTableEducation_Signature(); //Add data into Dataset foreach (DataRow dr in dataSourceEducate.Rows) { DataEducateToReport.Rows.Add("ผนวก ก", "ข้อมูลความรู้ของทหารกองประจำการ รุ่น พ.ศ." + SplitYear_Yearin(mtxtYearin.Text) + " ผลัดที่ " + SplitCount_Yearin(mtxtYearin.Text), Convert_EducateType(dr["EduType"].ToString()), Convert.ToInt32(dr["Educount"]), Convert.ToDouble(String.Format("{0:0.00}", Convert.ToInt32(dr["Educount"]) * 100.00 / sumAllPersonEducate)), txttext.Text.Trim(), txtrank.Text.Trim(), txtname.Text.Trim(), txtposition.Text.Trim(), Convert_ThNumber(dpday.Text.Trim()) ); } } else { DataEducateToReport = Create_DataTableEducation(); //Add data into Dataset foreach (DataRow dr in dataSourceEducate.Rows) { DataEducateToReport.Rows.Add("ผนวก ก", "ข้อมูลความรู้ของทหารกองประจำการ รุ่น พ.ศ." + SplitYear_Yearin(mtxtYearin.Text) + " ผลัดที่ " + SplitCount_Yearin(mtxtYearin.Text), Convert_EducateType(dr["EduType"].ToString()), Convert.ToInt32(dr["Educount"]), Convert.ToDouble(String.Format("{0:0.00}", Convert.ToInt32(dr["Educount"]) * 100.00 / sumAllPersonEducate))); } } #endregion //============================================================== //===================== Occupation ========================== //============================================================== #region "Occupation" //นับ count ทั้งหมดที่พบ --> เพื่อใช้หา percent ต่อไป foreach (DataRow dr2 in dataSourceOccupation.Rows) { sumAllPersonOccupation += Convert.ToInt32(dr2["OccCount"]); //get summary } if (checkBox1.Checked) { DataOccupationToReport = Create_DataTableOccupation_Signature(); foreach (DataRow dr2 in dataSourceOccupation.Rows) { DataOccupationToReport.Rows.Add("ผนวก ข", "ข้อมูลอาชีพก่อนเข้ารับราชการของทหารกองประจำการ รุ่น พ.ศ." + SplitYear_Yearin(mtxtYearin.Text) + " ผลัดที่ " + SplitCount_Yearin(mtxtYearin.Text), Convert_OccuptType(dr2["OccType"].ToString()), Convert.ToInt32(dr2["OccCount"]), Convert.ToDouble(String.Format("{0:0.00}", Convert.ToDouble(dr2["OccCount"]) * 100.00 / sumAllPersonOccupation)), txttext.Text.Trim(), txtrank.Text.Trim(), txtname.Text.Trim(), txtposition.Text.Trim(), Convert_ThNumber(dpday.Text.Trim()) ) ; } } else { DataOccupationToReport = Create_DataTableOccupation(); foreach (DataRow dr2 in dataSourceOccupation.Rows) { DataOccupationToReport.Rows.Add("ผนวก ข", "ข้อมูลอาชีพก่อนเข้ารับราชการของทหารกองประจำการ รุ่น พ.ศ." + SplitYear_Yearin(mtxtYearin.Text) + " ผลัดที่ " + SplitCount_Yearin(mtxtYearin.Text), Convert_OccuptType(dr2["OccType"].ToString()), Convert.ToInt32(dr2["OccCount"]), Convert.ToDouble(String.Format("{0:0.00}", Convert.ToInt32(dr2["OccCount"]) * 100.00 / sumAllPersonOccupation)) ); } } //==================== Make Report ======================== reportViewer1.Reset(); reportViewer1.LocalReport.ReportEmbeddedResource = "Navy.Reports.Report_EducateandOccuption.rdlc"; reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", DataEducateToReport)); reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet2", DataOccupationToReport)); //Process and render the report reportViewer1.LocalReport.Refresh(); reportViewer1.RefreshReport(); //reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", DataEducateToReport)); #endregion } else { MessageBox.Show("ไม่พบข้อมูล"); } }