Beispiel #1
0
        private void getReport()
        {
            if (cbbType.SelectedIndex < 0)
            {
                MessageBox.Show("Bạn chưa chọn loại báo cáo!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            //check valid period time
            if (DateTime.Parse(dtpFrom.Text) > DateTime.Parse(dtpTo.Text))
            {
                MessageBox.Show("Khoảng thời gian không hợp lệ", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            pgbExport.Visible = true;
            pgbExport.Style   = ProgressBarStyle.Marquee;
            pgbExport.Left    = this.Width / 2;
            pgbExport.Top     = this.Height / 2;
            this.Enabled      = false;

            //get data report
            string from = new DateTime(dtpFrom.Value.Year, dtpFrom.Value.Month, dtpFrom.Value.Day, 0, 0, 0).ToString("yyyy-MM-dd HH:mm:ss");
            string to   = new DateTime(dtpTo.Value.Year, dtpTo.Value.Month, dtpTo.Value.Day, 23, 59, 59).ToString("yyyy-MM-dd HH:mm:ss");
            string productStepCode;
            string productGroupCode;

            if (cbbProductStepCode.SelectedIndex != 0)
            {
                productStepCode = cbbProductStepCode.Text;
            }
            else
            {
                productStepCode = string.Empty;
            }
            if (cbbGroupProductCode.SelectedIndex != 0)
            {
                productGroupCode = cbbGroupProductCode.SelectedValue.ToString();
            }
            else
            {
                productGroupCode = string.Empty;
            }
            int Type = cbbType.SelectedIndex;

            System.Data.DataTable dtReport = LibIE.GetDataTableFromSP("spGetAndonReport",
                                                                      new string[] { "@StartDate", "@EndDate", "@ProductStepCode", "@ProductGroupCode", "@Type" },
                                                                      new object[] { from, to, productStepCode, productGroupCode, Type });
            int totalDelay     = 0;
            int totalRisk      = 0;
            int totalTimeDelay = 0;
            int totalTimeRisk  = 0;

            totalRisk  = TextUtils.ToInt(dtReport.Compute("Count(Type)", "Type = 2"));
            totalDelay = TextUtils.ToInt(dtReport.Compute("Count(Type)", "Type = 1"));;

            totalTimeDelay = TextUtils.ToInt(dtReport.Compute("Sum(DelayTime)", "Type = 1"));;
            totalTimeRisk  = TextUtils.ToInt(dtReport.Compute("Sum(RiskTime)", "Type = 2"));;

            grdReport.DataSource = dtReport;

            txtTotalDelay.Text = totalDelay.ToString();
            txtTotalRisk.Text  = totalRisk.ToString();
            txtTimeDelay.Text  = totalTimeDelay.ToString();
            txtTimeRisk.Text   = totalTimeRisk.ToString();
        }