Exemplo n.º 1
0
        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("ไม่พบข้อมูล");
            }
        }