예제 #1
0
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);

            if (menuItems != null)
            {
                ToolDispose.dispose(menuItems);
            }

            menuItems = null;

            if (filterWrap != null)
            {
                filterWrap.Dispose();
            }

            filterWrap = null;
        }
예제 #2
0
        public virtual void loadFilterStruct()
        {
            try
            {
                getGrid().beginDataLoad();

                if (!HasFilter)
                {
                    getFilterTreePanel().Visible = false;
                    getFilterGridPanel().Visible = false;
                }
                else
                {
                    getFilterTreePanel().Visible = false;
                    List <MobDataGrid> list = new List <MobDataGrid>();
                    {
                        if (FilterCols.Length > 0)
                        {
                            list.Add(getFilterGrid1());
                        }
                        if (FilterCols.Length > 1)
                        {
                            list.Add(getFilterGrid2());
                        }
                        else
                        {
                            getFilterGrid2().Visible = false;
                        }
                    }

                    filterWrap = new ImplFilterWrapGrid(list.ToArray());
                    //filterWrap = new ImplFilterWrapTree(getFilterTree());
                    filterWrap.FilterChanged += filterWrap_FilterChanged;
                    //getFilter().NodeClick += MobDataReferenceGridFormBase_NodeClick;

                    string stateNameFilterTree = globalStoreName() + "/filtertree";

                    object[][] tree_ = environment.getStateData(stateNameFilterTree) as object[][];

                    if (tree_ == null)
                    {
                        string           name_ = getDsName();
                        ITableDescriptor td_   = environment.getDbDescriptor().getTable(name_);
                        if (td_ == null)
                        {
                            throw new MyExceptionError("Cant find table [" + name_ + "] descriptor");
                        }

                        string tabFullName_ = td_.getNameFull();

                        string    sql_ = string.Format("SELECT DISTINCT {0} FROM {1}", ToolString.joinList(FilterCols), tabFullName_);
                        DataTable tab_ = SqlExecute.execute(environment, sql_, null);
                        tree_ = ToolTable.getGroups(tab_, FilterCols);
                    }

                    filterWrap.fill(tree_);
                    // getFilter().fillTree(tree_);


                    environment.setStateData(stateNameFilterTree, tree_);
                }
            }
            catch (Exception exc)
            {
                ToolMobile.setException(exc);
            }
            finally
            {
                getGrid().endDataLoad();
            }
        }