/// <summary> /// 通过功能组名称根据用户角色获得 组内所以可以显示的项目的名称 /// </summary> /// <param name="groupname">功能组名称</param> /// <returns>项目名称列表</returns> public List <Outlook_Table_Jb_User> getItemNameByGroupName(string groupname) { List <Outlook_Table_Jb_User> list = new List <Outlook_Table_Jb_User>(); string sql = "select ITEMNAME,PICNAME from OUTLOOK_TABLE_JB_USER where GROUPNAME = @groupname and jiaose = @role and yesno = '1'order by TRIG_ID"; try { Hashtable table = new Hashtable(); table.Add("@groupname", groupname); table.Add("@role", Global.longid); DbParameter[] parms = dbHelper.getParams(table); DataTable ds = dbHelper.GetDataSet(sql, parms); for (int i = 0; i < ds.Rows.Count; i++) { Outlook_Table_Jb_User outlook = new Outlook_Table_Jb_User(); outlook.Itemname = ds.Rows[i]["ITEMNAME"].ToString(); outlook.Picname = ds.Rows[i]["PICNAME"].ToString(); list.Add(outlook); } dbHelper.getConnection().Close(); } catch (Exception ex) { Log.write(ex.Message + "\r\n" + ex.StackTrace); throw ex; } finally { dbHelper.getConnection().Close(); } return(list); }
/// <summary> /// 初始化工具栏中的内容 /// </summary> public void initToolBar() { List <string> groups = layoutBLL.getAllGroupName(); for (int i = 0; i < groups.Count; i++) { IconPanel iconPanel1 = new IconPanel(); MainToolBar.AddBand(groups[i].ToString(), iconPanel1); List <Outlook_Table_Jb_User> items = layoutBLL.getItemNameByGroupName(groups[i].ToString()); table.Add(iconPanel1, items); for (int j = 0; j < items.Count; j++) { Outlook_Table_Jb_User outlook = items[j]; iconPanel1.AddIcon(outlook.Itemname, imlMain.Images[outlook.Picname], new MouseEventHandler(PanelEvent)); } } //if (groups.Count < 3) //{ MainToolBar.SelectBand(0); //} //else //{ // MainToolBar.SelectBand(3); // openWatchMain(); //} }
//保存 private void btnSave_Click(object sender, EventArgs e) { try { string jiaose = comboBox1.Text; if (jiaose == "sa") { MessageBox.Show("超级管理员权限不能被修改!", "信息!", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } List <Outlook_Table_Jb_User> users = new List <Outlook_Table_Jb_User>(); foreach (DataGridViewRow row in dataGridView1.Rows) { Outlook_Table_Jb_User user = new Outlook_Table_Jb_User(); user.Groupname = row.Cells[3].Value.ToString(); user.Itemname = row.Cells[2].Value.ToString(); user.Jiase = row.Cells[0].Value.ToString(); user.Ob_name = row.Cells[7].Value.ToString(); user.Objecname = row.Cells[6].Value.ToString(); user.Picname = row.Cells[4].Value.ToString(); user.Trig_id = Convert.ToDecimal(row.Cells[5].Value); user.Yesno = row.Cells[1].Value.ToString(); users.Add(user); // MessageBox.Show(row.Cells[1].Value.ToString()); } if (bll.save(jiaose, users)) { MessageBox.Show("数据保存成功!", "信息!", MessageBoxButtons.OK, MessageBoxIcon.Information); Log.saveLog(string.Format("设置用户{0}权限成功!", jiaose)); } else { MessageBox.Show("数据保存失败!", "信息!", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception) { MessageBox.Show("与数据库连接失败,请查看网络连接是否正常。如不能解决请与网络管理员联系!", "严重错误:", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// 处理工具栏中相关项的点击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void PanelEvent(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { if (sender is Label) { try { string key = ((Label)sender).Text; //获得数据字典中的key 即功能项目的名称 string formText = " " + key; formName = Dictionary[key].ToString(); //获得数据字典中的 对应窗口的类名 if (!ShowChildrenForm(formText)) { //以下是通过反射 获得该窗体的实例 Type t = Type.GetType(Global.namespceName + "." + formName); CurrentForm = (Form)Activator.CreateInstance(t); CurrentForm.MdiParent = this; //设置窗体的标题 CurrentForm.Text = formText; if (!CurrentForm.IsDisposed) { CurrentForm.WindowState = FormWindowState.Maximized; CurrentForm.Show(); } } } catch (Exception ex) { MessageBox.Show("该功能出现错误:" + ex.Message); } } else { PanelIcon pic = (PanelIcon)sender; List <Outlook_Table_Jb_User> list = (List <Outlook_Table_Jb_User>)table[pic.iconPanel]; Outlook_Table_Jb_User jb_user = list[pic.Index]; try { string key = jb_user.Itemname; //获得数据字典中的key 即功能项目的名称 string formText = " " + key; formName = Dictionary[key].ToString(); //获得数据字典中的 对应窗口的类名 if (!ShowChildrenForm(formText)) { //以下是通过反射 获得该窗体的实例 Type t = Type.GetType(Global.namespceName + "." + formName); CurrentForm = (Form)Activator.CreateInstance(t); CurrentForm.MdiParent = this; //设置窗体的标题 CurrentForm.Text = " " + key; if (!CurrentForm.IsDisposed) { CurrentForm.WindowState = FormWindowState.Maximized; CurrentForm.Show(); } } } catch (Exception ex) { MessageBox.Show("该功能出现错误:" + ex.Message); } } } }