Exemple #1
0
        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);
        }