public override InqFilterInfoMDX Get_FilterInfo()
        {
            try
            {
                InqFilterInfoMDX ret = new InqFilterInfoMDX();

                InqFieldInfoMDX whereKey = new InqFieldInfoMDX();
                whereKey.Name = cbbKeyField.Text;
                whereKey.UniqueName = Lib.NTE(cbbKeyField.Value);
                ret.WhereKey = whereKey;

                ret.Logic = Lib.NTE(this.cbbAndOr.Value);
                ret.Operator = this.cbbOperator.Text;
                ret.Value = this.txtValue.Text;
                ret.FilterType = "NORMAL";
                return ret;
            }
            catch { return null; }
        }
        protected void btn_Click(object sender, EventArgs e)
        {
            try
            {
                var btn = sender as DevExpress.Web.ASPxEditors.ASPxButton;
                if (btn == null) return;

                if (btn.ID == this.btnNewDS.ID)
                {
                    MySession.DSDefine_CurEditing = null;
                    // Clear Selected field
                    this.lbxFieldSelected.Items.Clear();
                    MySession.DSDefine_SelFieldInfo.Clear();
                    this.lbxMetricFieldSelected.Items.Clear();
                    MySession.DSDefine_SelSumInfo.Clear();

                    // Clear filtered field
                    this.FilterControlSet.Clear();
                    this.ctrlCollect.Controls.Clear();

                    // Clear Input
                    this.txtDisplayNameDS.Text = "";
                    this.cboDatasource.Text = "";
                    this.txtDisplayName0.Text = "";
                    this.txtDisplayName.Text = "";
                    this.cboFuncs.Text = "";
                    this.cboOrderBy1.Text = "";
                    this.lblSavingMsg.Text = "";

                    // Update Display to clientside...
                    this.upp_SelectClause.Update();
                    this.upp_Filter.Update();
                    this.upp_SavingMsg.Update();
                    // Focus
                    this.txtDisplayName.Focus();
                }
                else if (btn.ID == this.btnIn_1.ID)
                {
                    var item = this.lbxField.SelectedItem;
                    if (item == null) return;
                    var tblName = Lib.NTE(item.GetValue("TblName_Virtual"));
                    var colName = Lib.NTE(item.GetValue("ColName"));
                    var colAlias = Lib.NTE(item.GetValue("ColAliasVI"));
                    var colDataType = Lib.NTE(item.GetValue("DataType"));
                    var info = new InqFieldInfoMDX(tblName, colName, colAlias, colDataType);
                    var sel_InqFieldInfo = MySession.DSDefine_SelFieldInfo;
                    if (sel_InqFieldInfo.Exists(p => p.KeyField == info.KeyField)) return;
                    sel_InqFieldInfo.Add(info);
                    Helpers.SetDataSource(this.lbxFieldSelected, sel_InqFieldInfo, "KeyField", "ColAliasVI");
                }
                else if (btn.ID == this.btnIn_2.ID)
                {
                    var item = this.lbxMetricField.SelectedItem;
                    if (item == null) return;
                    var tblName = Lib.NTE(item.GetValue("TblName_Virtual"));
                    var colName = Lib.NTE(item.GetValue("ColName"));
                    var colAlias = Lib.NTE(item.GetValue("ColAliasVI"));
                    var colDataType = Lib.NTE(item.GetValue("DataType"));
                    var fieldInfo = new InqFieldInfoMDX(tblName, colName, colAlias, colDataType);
                    var info = new InqSummaryInfoMDX(fieldInfo, "SUM", colAlias);
                    var sel_InqSummaryInfo = MySession.DSDefine_SelSumInfo;
                    if (sel_InqSummaryInfo.Exists(p => p.Field.KeyField == info.Field.KeyField)) return;
                    sel_InqSummaryInfo.Add(info);
                    Helpers.SetDataSource(this.lbxMetricFieldSelected, sel_InqSummaryInfo, "Field.KeyField", "FieldAlias");
                }
                else if (btn.ID == this.btnOut_1.ID)
                {
                    var item = lbxFieldSelected.SelectedItem;
                    lbxFieldSelected.Items.Remove(item);
                    MySession.DSDefine_SelFieldInfo.RemoveAll(p => p.KeyField == Lib.NTE(item.GetValue("KeyField")));
                }
                else if (btn.ID == this.btnOut_2.ID)
                {
                    var item = lbxMetricFieldSelected.SelectedItem;
                    lbxMetricFieldSelected.Items.Remove(item);
                    MySession.DSDefine_SelSumInfo.RemoveAll(p => p.Field.KeyField == Lib.NTE(item.GetValue("Field.KeyField")));
                }
            }
            #if DEBUG
            catch (Exception ex)
            {
                throw ex;
            }
            #else
            catch { }
            #endif
        }