using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using EAS.Services; using EAS; using SOH.Data; using SOH.Entities; namespace SOH.BasicSettings { public partial class frmMenuAdd : Form { public int mid = 0; public frmMenuAdd() { InitializeComponent(); } private void frmMenuAdd_Load(object sender, EventArgs e) { myinit(); if (mid != 0) { initedit(); } } /// /// 初始化修改数据 /// private void initedit() { var vser = ServiceContainer.GetService(); var lm = vser.getMenu(mid); if (lm != null) { txtcdmc.Text = lm.menuname; txtpx.Text = lm.px.ToString(); mcbsjcd.SelectedValue = lm.pid; cbcdlx.SelectedItem = lm.mtype == 0 ? "菜单" : "功能"; if (lm.mtype == 1) { cbbrsfs.SelectedItem = lm.opentype == 0 ? "窗口" : "对话框"; cbbass.SelectedValue = lm.module.assid; dgvgn.ClearSelection(); foreach (DataGridViewRow dr in dgvgn.Rows) { if (((DataRowView)dr.DataBoundItem).Row["mid"].ToString() == lm.modulesid.ToString()) dr.Selected = true; } } } else { mid = 0; } } /// /// 初始化基本数据 /// private void myinit() { dgvgn.AutoGenerateColumns = false; initass(); initmk(); //throw new NotImplementedException(); var vser = ServiceContainer.GetService(); string sm = vser.getMunelist(0); DataTable dt = (DataTable)Newtonsoft.Json.JsonConvert.DeserializeObject(sm, typeof(DataTable)); dt.Columns.Add("px1", typeof(int)); if (dt.Rows.Count == 0) { dt.Columns.Add("id", typeof(int)); dt.Columns.Add("pid", typeof(int)); dt.Columns.Add("px", typeof(int)); dt.Columns.Add("cdname", typeof(string)); } DataRow dr = dt.NewRow(); dr["id"] = 0; dr["cdname"] = "顶级菜单"; dr["pid"] = -1; dr["px"] = 0; dr["px1"] = -1; dt.Rows.Add(dr); addkg(dt, 0, 1); try { dt.DefaultView.Sort = "px1,px"; } catch (System.Exception ex) { MessageBox.Show(ex.Message); return; } DataTable fdt = dt.DefaultView.ToTable(); mcbsjcd.ValueMember = "id"; mcbsjcd.DisplayMember = "cdname"; mcbsjcd.ViewColList.Add(new MFCComboBox.MComboColumn("cdname", "菜单名称", 200, MFCComboBox.HorizontalAlign.Left)); mcbsjcd.DataSource = fdt; } private void initmk() { // throw new NotImplementedException(); var vser = ServiceContainer.GetService(); string ls = vser.getAssModuleList(); DataTable dt = Newtonsoft.Json.JsonConvert.DeserializeObject(ls, typeof(DataTable)) as DataTable; if (dt.Rows.Count > 0) { if (cbbass.SelectedValue != null && cbbass.SelectedValue.ToString() != "") { dt.DefaultView.RowFilter = "id=" + cbbass.SelectedValue.ToString(); } dgvgn.DataSource = dt; } } /// /// 初始化过滤程序集 /// private void initass() { //throw new NotImplementedException(); var vser = ServiceContainer.GetService(); List ass = vser.getAssList(); cbbass.DataSource = ass; } private void addkg(System.Data.DataTable dt, int p, int deep) { //throw new NotImplementedException(); DataRow[] drs = dt.Select("pid=" + p); foreach (DataRow dr in drs) { dr["cdname"] = dr["cdname"].ToString().PadLeft((deep+1) *3 ); dr["px1"] = deep; addkg(dt, int.Parse(dr["id"].ToString()), deep + 1); } } private void btnok_Click(object sender, EventArgs e) { //MessageBox.Show(mcbsjcd.SelectedValue.ToString()); //MessageBox.Show(cbcdlx.SelectedValue.ToString()); if (txtcdmc.Text.Trim() == "") { MessageBox.Show("菜单名称不能为空"); return; } if (txtpx.Text.Trim() == "") { MessageBox.Show("排序不能为空"); return; } int ls = 0; if (!int.TryParse(txtpx.Text.Trim(), out ls)) { MessageBox.Show("请输入正确的排序数字!"); return; } if (mcbsjcd.SelectedValue == null || mcbsjcd.SelectedValue.ToString() == "") { MessageBox.Show("请选择上级菜单"); return; } if (cbcdlx.SelectedItem == null || cbcdlx.SelectedItem.ToString() == "") { MessageBox.Show("请选择菜单类型"); return; } if (cbcdlx.SelectedItem.ToString()=="功能"&&dgvgn.SelectedRows.Count == 0) { MessageBox.Show("请选择菜单类型"); return; } if (cbcdlx.SelectedItem.ToString() == "功能") { if (cbbrsfs.SelectedItem == null || cbbrsfs.SelectedItem.ToString() == "") { MessageBox.Show("请选择菜单打开方式"); return; } } //MessageBox.Show(mcbsjcd.SelectedValue.ToString()); //MessageBox.Show(cbcdlx.SelectedItem.ToString()); var vser = ServiceContainer.GetService(); SYS_MENU sm=new SYS_MENU(); sm.px=ls; sm.menuname=txtcdmc.Text.Trim(); sm.id=mid; sm.pid=int.Parse(mcbsjcd.SelectedValue.ToString()); sm.mtype = (byte)(cbcdlx.SelectedItem.ToString() == "功能" ? 1 : 0); if (cbcdlx.SelectedItem.ToString() == "功能") { sm.modulesid = int.Parse((dgvgn.SelectedRows[0].DataBoundItem as DataRowView).Row["mid"].ToString()); sm.opentype = (byte)((cbbrsfs.SelectedItem.ToString()=="对话框"?1:0)); } OperationResult or = vser.setMenu(sm); MessageBox.Show(or.Message); if (or.State == 1) { DialogResult = DialogResult.OK; } } private void cbcdlx_SelectedIndexChanged(object sender, EventArgs e) { if (cbcdlx.SelectedItem.ToString() == "功能") { panelcdgn.Enabled = true; } else { panelcdgn.Enabled = false; } } private void cbbass_SelectedValueChanged(object sender, EventArgs e) { if (dgvgn.DataSource != null) { DataTable dt = dgvgn.DataSource as DataTable; if (dt.Rows.Count > 0) { dt.DefaultView.RowFilter = "id=" + cbbass.SelectedValue.ToString(); } } } } }