void tsbTotal_Click(object sender, EventArgs e) { DataTable dtTotal = null; string strColumnName = string.Empty; string strHeaderText = string.Empty; string strFilter = string.Empty; Form frm = this.Parent.FindForm().GetType().Name == "frmMain" ? this.Parent.FindForm().ActiveMdiChild : this.Parent.FindForm(); // Tim form tren tabcontrol if (frm == null) { frm = Common.FindFormChildInTab(); } if (frm == null) { frm = Common.FindFormReportResultInTab(); } if (frm == null) { return; } object ExportControl = ((frmBase)frm).ExportControl; if (ExportControl == null) { return; } #region dgvControl, tlControl //dgvControl if (Common.Inlist(ExportControl.GetType().Name, "dgvControl,dgvReport,dgvVoucher")) { dgvControl dgv = (dgvControl)ExportControl; if (dgv.DataSource == null) { return; } if (dgv.DataSource.GetType().Name != "BindingSource") { return; } BindingSource bds = (BindingSource)dgv.DataSource; if (bds == null) { return; } if (dgv.CurrentCell == null) { return; } dtTotal = (DataTable)bds.DataSource; strColumnName = dgv.CurrentCell.OwningColumn.DataPropertyName; strHeaderText = dgv.CurrentCell.OwningColumn.HeaderText; strFilter = bds.Filter; } if (Common.Inlist(ExportControl.GetType().Name, "dgvGridReport,dgvGridControl,dgvReportGrid")) { dgvGridControl dgv = (dgvGridControl)ExportControl; if (dgv.DataSource == null) { return; } if (dgv.DataSource.GetType().Name != "BindingSource") { return; } BindingSource bds = (BindingSource)dgv.DataSource; if (bds == null) { return; } if (dgv.dgvGridView == null) { return; } dtTotal = (DataTable)bds.DataSource; strColumnName = dgv.dgvGridView.FocusedColumn.Name; strHeaderText = dgv.dgvGridView.FocusedColumn.Caption; strFilter = bds.Filter; } //tlControl if (Common.Inlist(ExportControl.GetType().Name, "tlControl,tlReport")) { tlControl tl = (tlControl)ExportControl; if (tl.DataSource == null) { return; } if (tl.DataSource.GetType().Name != "BindingSource") { return; } BindingSource bds = (BindingSource)tl.DataSource; if (bds == null) { return; } if (tl.FocusedColumn == null) { return; } dtTotal = (DataTable)bds.DataSource; strColumnName = tl.FocusedColumn.FieldName; strHeaderText = tl.FocusedColumn.Caption; strFilter = bds.Filter; } if (!Common.Inlist(dtTotal.Columns[strColumnName].DataType.Name, "Byte, Int16, Int32, Int64, Decimal, Double")) { return; } #endregion if (dtTotal == null) { return; } double dbSumToltal = Common.SumDCValue(dtTotal, strColumnName, strFilter); string strMsg = Languages.GetLanguage("SUM") + " " + strHeaderText + ": " + dbSumToltal.ToString("N"); if (dtTotal.Columns.Contains("Bold")) { string strFilterNormal = strFilter + (strFilter == string.Empty || strFilter == null ? "" : " AND ") + " Bold = 0 "; string strFilterBold = strFilter + (strFilter == string.Empty || strFilter == null ? "" : " AND ") + " Bold = 1 "; double dbSumNormal = Common.SumDCValue(dtTotal, strColumnName, strFilterNormal); double dbSumBold = Common.SumDCValue(dtTotal, strColumnName, strFilterBold); strMsg += "\n" + Languages.GetLanguage("SUM_NORMAL") + ": " + dbSumNormal.ToString("N"); strMsg += "\n" + Languages.GetLanguage("SUM_BOLD") + ": " + dbSumBold.ToString("N"); } EpointMessage.MsgOk(strMsg); }