예제 #1
0
        private void AddSubMenu(SinoMenuItem _fmenuitem, List <SinoMenuItem> _menuList, FrmMenuPage _fmp)
        {
            SinoMenuFatherFinder _finder      = new SinoMenuFatherFinder(_fmenuitem.MenuID);
            List <SinoMenuItem>  _subMenuList = _menuList.FindAll(new Predicate <SinoMenuItem>(_finder.FindByFather));

            _subMenuList.Sort(new SinoMenuComparer());
            foreach (SinoMenuItem _smi in _subMenuList)
            {
                FrmMenuGroup _fmg = new FrmMenuGroup(_smi.MenuID, _smi.MenuTitle, _smi.CanUse);
                this.AddMenuGroup(_fmp, _fmg);
                if (_smi.MenuType != "")
                {
                    MenuTypeBase   _mtype        = MenuTypeCreator.CreateMenuType(_smi.MenuType);
                    IPluginService pluginService = (IPluginService)application.GetService(typeof(IPluginService));
                    IPlugin        _plugin       = pluginService.GetPluginInstance(_mtype.MenuTypePluginName);
                    if (_plugin == null)
                    {
                        RaiseLoadErrord(new CommonEventArgs(string.Format("未找到组菜单定义:{0}", _mtype)));
                    }
                    else
                    {
                        _plugin.Load(_fmg, _smi.MenuParameter);
                    }
                }
                else
                {
                    this.AddSubMenuItem(_smi, _menuList, _fmg);
                }
            }
        }
예제 #2
0
        public List <SinoMenuItem> GetAllMenus(string _postID)
        {
            SqlDataReader       dr;
            List <SinoMenuItem> _ret = new List <SinoMenuItem>();

            if (_postID != "0")
            {
                //string _sql = "zhtj_zzjg2.get_yhmenu_systemid";
                string         _sql   = "zhtj_zzjg2.Get_GWMENU";
                SqlParameter[] _param =
                {
                    new SqlParameter("nGWID",     SqlDbType.Decimal),
                    new SqlParameter("nhavemeta", SqlDbType.Decimal),
                    //new SqlParameter("curMENU",SqlDbType.RefCursor,DBNull.Value,ParameterDirection.Output)
                };
                _param[0].Value = decimal.Parse(_postID);
                _param[1].Value = (decimal)1;

                dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringProfile, CommandType.StoredProcedure,
                                             _sql, _param);
            }
            else
            {
                string         _sql   = "zhtj_zzjg2.get_yhmenu_systemid";
                SqlParameter[] _param =
                {
                    new SqlParameter("nyhid",       SqlDbType.Decimal),
                    new SqlParameter("nhavemeta",   SqlDbType.Decimal),
                    new SqlParameter("strsystemid", SqlDbType.VarChar, 12),
                    //new SqlParameter("curMENU",SqlDbType.RefCursor,DBNull.Value,ParameterDirection.Output)
                };
                _param[0].Value = (decimal)0;
                _param[1].Value = (decimal)1;
                _param[2].Value = ConfigFile.SystemID;


                //dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringProfile, CommandType.StoredProcedure,
                //                                _sql, _param);
                dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringProfile, CommandType.Text, yhmenu_systemId, null);
            }

            while (dr.Read())
            {
                SinoMenuItem _mitem = new SinoMenuItem(
                    dr.IsDBNull(0) ? "" : dr.GetDecimal(0).ToString(),
                    dr.IsDBNull(1) ? "" : dr.GetString(1),
                    dr.IsDBNull(2) ? "" : dr.GetString(2),
                    dr.IsDBNull(3) ? "" : dr.GetString(3),
                    dr.IsDBNull(4) ? 0 : Convert.ToInt32(dr.GetDecimal(4)),
                    dr.IsDBNull(5) ? "0" : dr.GetDecimal(5).ToString(),
                    dr.IsDBNull(11) ? false : (dr.GetDecimal(11) > 0),
                    dr.IsDBNull(12) ? 0 : Convert.ToInt32(dr.GetDecimal(12)),
                    dr.IsDBNull(7) ? "-1" : dr.GetDecimal(7).ToString(),
                    dr.IsDBNull(10) ? "" : dr.GetString(10)
                    );
                _ret.Add(_mitem);
            }
            dr.Close();
            return(_ret);
        }
예제 #3
0
        /// <summary>
        /// 取子菜单
        /// </summary>
        /// <param name="_menuList"></param>
        /// <param name="_fatherItem"></param>
        private static void GetChildMenu(List <SinoMenuItem> _menuList, SinoMenuItem _fatherItem)
        {
            var _subMenuList = from _c in _menuList
                               where _c.FatherID == _fatherItem.MenuID
                               orderby _c.DisplayOrder
                               select _c;

            if (childMenuDict.ContainsKey(_fatherItem.MenuID))
            {
                childMenuDict[_fatherItem.MenuID] = _subMenuList.ToList <SinoMenuItem>();
            }
            else
            {
                childMenuDict.Add(_fatherItem.MenuID, _subMenuList.ToList <SinoMenuItem>());
            }

            foreach (SinoMenuItem _smi in _subMenuList)
            {
                GetChildMenu(_menuList, _smi);
            }
        }
예제 #4
0
        private void AddSubMenuItem(SinoMenuItem _fmenuitem, List <SinoMenuItem> _menuList, FrmMenuGroup _fmg)
        {
            SinoMenuFatherFinder _finder      = new SinoMenuFatherFinder(_fmenuitem.MenuID);
            List <SinoMenuItem>  _subMenuList = _menuList.FindAll(new Predicate <SinoMenuItem>(_finder.FindByFather));

            _subMenuList.Sort(new SinoMenuComparer());
            foreach (SinoMenuItem _smi in _subMenuList)
            {
                if (_smi.CanUse)
                {
                    FrmMenuItem _mitem = null;
                    if (_smi.MenuType == "")
                    {
                        _mitem = new FrmMenuItem(_smi.MenuID, _smi.MenuTitle, "", global::SinoSZClientBase.Properties.Resources.foward2, _smi.CanUse, null);
                    }
                    else
                    {
                        #region  类型定义

                        string[] _typeStrs = _smi.MenuType.Split('.');
                        if (_typeStrs.Length > 1)
                        {
                            string         _pluginName   = _typeStrs[0];
                            string         _commandName  = _typeStrs[1];
                            IPluginService pluginService = (IPluginService)application.GetService(typeof(IPluginService));
                            IPlugin        _plugin       = pluginService.GetPluginInstance(_pluginName);
                            if (_plugin == null)
                            {
                                RaiseLoadErrord(new CommonEventArgs(string.Format("未找到菜单定义用的插件:{0}", _pluginName)));
                                _mitem = new FrmMenuItem(_smi.MenuID, _smi.MenuTitle, "", global::SinoSZClientBase.Properties.Resources.foward2, _smi.CanUse, null);
                            }
                            else
                            {
                                _mitem = _plugin.GetMenuItem(_commandName, _smi.MenuTitle, _smi.MenuParameter);
                                if (_mitem == null)
                                {
                                    RaiseLoadErrord(new CommonEventArgs(string.Format("插件{1}中未找到菜单定义用的:{0}", _commandName, _pluginName)));
                                    _mitem = new FrmMenuItem(_smi.MenuID, _smi.MenuTitle, "", global::SinoSZClientBase.Properties.Resources.foward2, _smi.CanUse, null);
                                }
                                else
                                {
                                    _mitem.MenuID = _smi.MenuID;
                                }
                            }
                        }
                        #endregion
                    }

                    if (_mitem != null)
                    {
                        MenuDict.Add(_smi.MenuID, _mitem);
                        if (_smi.IconName != "-1")
                        {
                            Image _mIcon = SinoSZResources.GetIcon(_smi.IconName);
                            if (_mIcon != null)
                            {
                                _mitem.MenuIcon = _mIcon;
                            }
                        }
                        this.AddMenuItem(_fmg, _mitem);
                        _mitem.ChildMenus = CreateChildItems(_mitem, _menuList);
                    }
                }
            }
        }