예제 #1
0
        protected void cbKPI_ValueChanged(object sender, EventArgs e)
        {
            ASPxComboBox           _sender = (ASPxComboBox)sender;
            lsttbl_DashboardSource _Kpi    = Kpi;

            if (_Kpi == null)
            {
                return;
            }

            MySession.KPIDefine_CurEditing = _Kpi.Code;
            txtKPIDisplayName.Text         = _Kpi.NameVI;
            var kpi = _Kpi.JsonObjKPI;

            // Set value to control
            if (!string.IsNullOrEmpty(kpi.CtrlTypeDefault) && !string.IsNullOrEmpty(kpi.VisibleTypeDefault))
            {
                cbCtrlType.Value = kpi.CtrlTypeDefault;
                cbCtrlType_ValueChanged(cbCtrlType, EventArgs.Empty);
                cbCtrl.Value = string.Format("{0}-{1}", kpi.CtrlTypeDefault, kpi.VisibleTypeDefault);
            }

            // Add new Part controls of KPI is selected
            foreach (var part in kpi.Dimensions)
            {
                KPIPartCtrlBase ctrl = AddKPIPartControl("dimension", String.Empty);
                ctrl.Set_Info(part);
                m_PartControls.Add(new PartControlInfo()
                {
                    ID = ctrl.ID, ControlType = ctrl.PartType
                });
            }

            /**
             * foreach (var part in kpi.Measures)
             * {
             *     var myCtrl = this.Add_PartControl("measure", false);
             *     myCtrl.Set_Info(part);
             * }
             * foreach (var part in kpi.Contexts)
             * {
             *     var type = "";
             *     if (part.HasCalcFields())
             *             type = "context-Calc";
             *     else
             *             type = "context-Normal";
             *     var myCtrl = this.Add_PartControl(type, false);
             *     myCtrl.Set_Info(part);
             * }
             * foreach (var part in kpi.Filters)
             * {
             *     var myCtrl = this.Add_FilterControl(part.GetTinyType(), false);
             *     myCtrl.Set_Info(part);
             * }
             * // Raise Event OnChange.
             * this.MyPage.My_wcLayoutSetting.Raise_OnChange("KPI", null);
             * this.MyPage.My_wcDSSetting.Raise_OnChange("KPI", new HTLBIEventArgs(item.ParentCode));
             */
        }
예제 #2
0
        protected void popMenAddCalcField_ItemClick(object source, DevExpress.Web.ASPxMenu.MenuItemEventArgs e)
        {
            KPIPartCtrlBase ctrl = AddKPIPartControl(String.Format("context-{0}", e.Item.Name).ToLower(), string.Empty);

            m_PartControls.Add(new PartControlInfo()
            {
                ID = ctrl.ID, ControlType = ctrl.PartType
            });
        }
예제 #3
0
        protected void btnAddMeasure_Click(object sender, EventArgs e)
        {
            KPIPartCtrlBase ctrl = AddKPIPartControl("measure", string.Empty);

            m_PartControls.Add(new PartControlInfo()
            {
                ID = ctrl.ID, ControlType = ctrl.PartType
            });
        }
예제 #4
0
        private KPIPartCtrlBase AddKPIPartControl(String type, String id)
        {
            if (String.IsNullOrWhiteSpace(type))
            {
                return(null);
            }
            Control         container = null;
            KPIPartCtrlBase ctrl      = null;

            switch (type)
            {
            case "dimension":
                ctrl      = LoadControl("~/App/Setting/wcKPIDimension.ascx") as KPIPartCtrlBase;
                container = tabPageDimensionsContainer;
                break;

            case "measure":
                ctrl      = LoadControl("~/App/Setting/wcKPIMeasure.ascx") as KPIPartCtrlBase;
                container = measureContainer;
                break;

            case "context-normal":
                ctrl      = this.LoadControl("~/App/Setting/wcKPIContextMetric.ascx") as KPIPartCtrlBase;
                container = kpiContextMetricContainer;
                break;

            case "context-calc":
                ctrl      = this.LoadControl("~/App/Setting/wcKPIContextMetric_Calc.ascx") as KPIPartCtrlBase;
                container = kpiContextMetricContainer;
                break;

            case "filter-normal":
                ctrl          = this.LoadControl("~/App/Setting/wcNormalFilter.ascx") as KPIPartCtrlBase;
                ctrl.PartType = "filter-normal";
                container     = kpiFilterContainer;
                break;

            case "filter-num":
                ctrl          = this.LoadControl("~/App/Setting/wcNumFilter.ascx") as KPIPartCtrlBase;
                ctrl.PartType = "filter-num";
                break;

            default:                     // date
                ctrl          = this.LoadControl("~/App/Setting/wcTimeFilter.ascx") as KPIPartCtrlBase;
                ctrl.PartType = "filter-date";
                break;
            }
            if (string.IsNullOrWhiteSpace(id))
            {
                id = Guid.NewGuid().ToString();
            }
            ctrl.ID        = id;
            ctrl.OnRemove += new EventHandler(KPIPartControl_OnRemove);
            container.Controls.Add(ctrl);
            return(ctrl);
        }
        private KPIPartCtrlBase Add_PartControl(string type, bool isReCreate)
        {
            if (string.IsNullOrEmpty(this.DSCode_Target))
            {
                this.tabCtrl_PortletSetting.ActiveTabIndex = 0;
                return(null);
            }

            try
            {
                var             guiID         = Guid.NewGuid().ToString();
                var             ctrlID        = string.Format("gen_{1}_{0}", guiID, type);
                var             ctrlID_Store  = string.Format("{0},{1}", ctrlID, type);
                KPIPartCtrlBase ctrl          = null;
                Control         ctrlContainer = null;

                if (isReCreate)
                {
                    foreach (var iD_Type in this.CtrlKPIPartIDs)
                    {
                        var arr = iD_Type.Split(',', StringSplitOptions.RemoveEmptyEntries);
                        ctrlID = arr.First();
                        var ctrlType = arr.Last();
                        if (ctrlType.StartsWith("dimension"))
                        {
                            ctrl          = this.LoadControl("wcKPIDimension.ascx") as KPIPartCtrlBase;
                            ctrlContainer = this.ctrl_Dimensions;
                        }
                        else if (ctrlType.StartsWith("measure"))
                        {
                            ctrl          = this.LoadControl("wcKPIMeasure.ascx") as KPIPartCtrlBase;
                            ctrlContainer = this.ctrl_Measures;
                        }
                        else if (ctrlType.StartsWith("context"))
                        {
                            var childCtrlType = ctrlType.Split('-', StringSplitOptions.RemoveEmptyEntries).LastOrDefault();
                            if (childCtrlType == "Normal")
                            {
                                ctrl = this.LoadControl("wcKPIContextMetric.ascx") as KPIPartCtrlBase;
                            }
                            else if (childCtrlType == "Calc")
                            {
                                ctrl = this.LoadControl("wcKPIContextMetric_Calc.ascx") as KPIPartCtrlBase;
                            }
                            ctrlContainer = this.ctrl_ContextMetric;
                        }
                        ctrl.ID        = ctrlID;
                        ctrl.OnRemove += this.PartCtrl_Remove;
                        // Set datasource.
                        var ds = this.Get_Datasource();
                        if (ds != null)
                        {
                            ctrl.Set_Source(ds);
                        }
                        ctrlContainer.Controls.Add(ctrl);
                    }
                    return(null);
                }

                if (string.IsNullOrEmpty(type))
                {
                    return(null);
                }
                if (type.StartsWith("dimension"))
                {
                    ctrl          = this.LoadControl("wcKPIDimension.ascx") as KPIPartCtrlBase;
                    ctrlContainer = this.ctrl_Dimensions;
                }
                else if (type.StartsWith("measure"))
                {
                    ctrl          = this.LoadControl("wcKPIMeasure.ascx") as KPIPartCtrlBase;
                    ctrlContainer = this.ctrl_Measures;
                }
                else if (type.StartsWith("context"))
                {
                    var childType = type.Split('-', StringSplitOptions.RemoveEmptyEntries).LastOrDefault();
                    if (childType == "Normal")
                    {
                        ctrl = this.LoadControl("wcKPIContextMetric.ascx") as KPIPartCtrlBase;
                    }
                    else if (childType == "Calc")
                    {
                        ctrl = this.LoadControl("wcKPIContextMetric_Calc.ascx") as KPIPartCtrlBase;
                    }
                    ctrlContainer = this.ctrl_ContextMetric;
                }
                ctrl.ID = ctrlID;
                this.CtrlKPIPartIDs.Add(ctrlID_Store);
                ctrl.OnRemove += this.PartCtrl_Remove;
                // Set datasource.
                var ds1 = this.Get_Datasource();
                if (ds1 != null)
                {
                    ctrl.Set_Source(ds1);
                }
                ctrlContainer.Controls.Add(ctrl);
                return(ctrl);
            }
            catch { }
            return(null);
        }