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(); }