Beispiel #1
0
 //初始化RANGE
 private void initRange()
 {
     foreach (DataCfg cfg in cfgdata.datas)           //遍历RANGE配置
     {
         XRange range = XRangeFactory.getXRange(cfg); //工厂模式,根据配置生成实际FORM/RANGE/TABLE 对象
         try
         {
             range.init(cfg, book);         //range 初始化
             ranges.Add(range.Name, range); //将 range 放入集合,后续可根据range名获取range
             if (range.getRange() == null)  //如果对应的工作表中range区域 不存在,则报错,并将系统状态设置为Designer状态
             {
                 AlertUtil.Show("error", "Range对应命名区域不存在或配置异常,RangeId:" + cfg.RangeName + " 即将进入Designer模式");
                 statu = SysStatu.Designer;
             }
         }
         catch (Exception e)
         {
             Console.WriteLine(e.ToString());
             MessageBox.Show("Range对应命名区域不存在或配置异异常,RangeId:" + cfg.RangeName + "\n" + e.ToString());
             this.statu = SysStatu.RangeError;
             return;
         }
     }
     if (ranges.Count == 0)
     {
         this.statu = SysStatu.Designer;
         AlertUtil.Show("info", "未查询到有效DATA,进入设计模式!");
     }
 }
Beispiel #2
0
 //初始化全部配置Action
 private void initActions()
 {
     statu = SysStatu.ActionError;
     foreach (ActionCfg cfg in cfgdata.actions)
     {
         initAction(cfg);
     }
     statu = SysStatu.Single;
 }
Beispiel #3
0
 //状态变化
 private void ChangeToStatu(SysStatu newstatu)
 {
     //labels["lbl_User"].Text = app.statu.ToString();
     if (currentXRange != null && newstatu != app.statu)
     {
         currentXRange.ResetSelected();
     }
     app.statu = newstatu;
     AlertUtil.Show("状态变更", "状态变更为" + newstatu);
     ChangeButtonsStatu();
 }
Beispiel #4
0
        }                                         //私有化无参构造函数,初始化必须带参

        public XApp(IWorkbook book, XCfgData cfg) //初始化
        {
            statu     = SysStatu.Single;          //默认为单选模式
            this.book = book;
            rsheets   = new Dictionary <string, XRSheet>();
            ranges    = new Dictionary <string, XRange>();
            commands  = new Dictionary <string, XCommand>();
            actions   = new Dictionary <string, XAction>();
            try
            {
                init(cfg);//执行初始化
            }
            catch (Exception)
            {
                //MessageBox.Show(e.ToString());
                this.cfgdata = null;
                this.statu   = SysStatu.SheetError;
            }
        }
Beispiel #5
0
        //根据名称获取SHEET
        public XRSheet getRSheetByName(String name)
        {
            XRSheet rsheet = null;

            try
            {
                rsheet = rsheets[name];
            }
            catch (Exception)
            {
                rsheet = new XRSheet(book.Worksheets.ActiveWorksheet);
                AlertUtil.Show("error", "Sheet:" + name + "未注册!请检查配置!");
                statu = SysStatu.Designer;
                if (rsheet.sheetName != name)
                {
                    return(null);
                }
                rsheets.Add(rsheet.sheet.Name, rsheet);
            }
            return(rsheet);
        }
Beispiel #6
0
        //Sheet的初始化
        private void initSheet()
        {
            this.rsheets = new Dictionary <string, XRSheet>();
            foreach (SheetCfg sheetdata in cfgdata.sheets)
            {
                Worksheet sheet = getSheetByName(sheetdata.SheetName);


                //xsheet.initTables();
                if (sheet == null)
                {//如果对应sheet为空,则进入设计模式
                    statu = SysStatu.Designer;
                    return;
                }
                XRSheet xsheet = new XRSheet(sheet);
                xsheet.hideflag = sheetdata.NeedHide;
                xsheet.app      = this;
                xsheet.setVisable("");
                rsheets.Add(xsheet.sheetName, xsheet);
            }
            LoadRangeToSheet();
        }
Beispiel #7
0
        //根据ActionCfg初始化单个Action
        private void initAction(ActionCfg cfg)
        {
            XAction action = ActionFactory.MakeAction(cfg, this);

            if (action == null)
            {
                statu = SysStatu.Error;
                return;
            }
            XCommand cmd = getCommandByName(cfg.CommandName);

            try
            {
                action.cmd = cmd;
                cmd        = getCommandByName(cfg.CommandName);
                cmd.actions.Add(action.actionSeq, action);
            }
            catch (Exception)
            {
                MessageBox.Show("Action:" + action.ActionName + "与命令:" + cfg.CommandName + "绑定失败,请检查Action配置是否正确!");
                return;
            }
            this.actions.Add(action.ActionName, action);
        }