using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using CoreFS.CA06; using Infragistics.Win.UltraWinGrid; using Infragistics.Win.UltraWinTree; using System; using System.Collections; using System.Data; using System.Drawing; using System.Windows.Forms; namespace Core.StlMes.Client.Qcm { public partial class FrmMenuzConfigure : FrmBase { public FrmMenuzConfigure() { InitializeComponent(); ExceptionHelper.RegistException(); //this.IsLoadUserView = true; //平台F1功能 } public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "doQuery": try { this.Cursor = Cursors.WaitCursor; doQuery(); } finally { this.Cursor = Cursors.Default; } break; case "Close": this.Close(); break; } } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { if ("doQuery".Equals(e.Tool.Key)) { DoQueryPage(); } if ("doAdd".Equals(e.Tool.Key)) { DoAdd(); } if ("doUpdate".Equals(e.Tool.Key)) { DoUpdate(); } if ("doDelete".Equals(e.Tool.Key)) { DoDelete(); } } public void DoQueryPage() { this.dataTable1.Clear(); if (treeView1.ActiveNode == null) return; parentCode = treeView1.ActiveNode.Tag.ToString(); DataTable dt = new DataTable(); dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.getPageData", new Object[] { "10", parentCode }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true); //不同颜色区分是否有效数据 Infragistics.Win.UltraWinGrid.UltraGridRow row = null; for (int i = 0; i < ultraGrid1.Rows.Count; i++) { row = ultraGrid1.Rows[i]; if (!row.Cells["VALIDFLAG"].Value.ToString().Equals("10")) { row.Appearance.ForeColor = Color.Red; } else { row.Appearance.ForeColor = Color.Black; } } //内容自适应 GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, new UltraGridColumn[] { ultraGrid1.DisplayLayout.Bands[0].Columns["MEMO"] }); } public void DoAdd() { if (treeView1.ActiveNode == null) return; parentCode = treeView1.ActiveNode.Tag.ToString(); PageEdit page = new PageEdit(); page.ShowDialog(); if (string.IsNullOrEmpty(page.isClickYes)) return; ArrayList parm = new ArrayList(); DataTable dt = new DataTable(); dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.GetMaxBaseCode", new Object[] { parentCode }, this.ob); string baseCode = ""; if (dt.Rows.Count > 0 && !"".Equals(dt.Rows[0][0].ToString())) { baseCode = parentCode + (Convert.ToInt64(dt.Rows[0][0].ToString().Substring(parentCode.Length, 2)) + 1).ToString().PadLeft(2, '0'); } else { baseCode = parentCode + "01"; } parm.Add(baseCode); parm.Add(page.Content); parm.Add(page.Key); parm.Add(page.icoKey); parm.Add("P"); parm.Add(parentCode); parm.Add(page.Seq); parm.Add("10"); parm.Add(page.Memo); parm.Add(UserInfo.GetUserID()); parm.Add(UserInfo.GetUserName()); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure"; ccp.MethodName = "doAddMemu"; ccp.ServerParams = new object[] { parm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp != null) { if (ccp.ReturnCode == -1) { MessageUtil.ShowWarning(ccp.ReturnInfo); return; } } else { return; } MessageUtil.ShowTips("新增成功"); //查询 DoQueryPage(); } public void DoUpdate() { if (ultraGrid1.ActiveRow == null) return; UltraGridRow row = ultraGrid1.ActiveRow; String baseCode = row.Cells["PAGE_ID"].Text; PageEdit page = new PageEdit(); page.Content = row.Cells["PAGE_NAME"].Text; page.Key = row.Cells["PAGE_KEY"].Text; page.icoKey = row.Cells["ICO_KEY"].Text; page.Seq = row.Cells["PAGE_SEQ"].Text; page.Memo = row.Cells["MEMO"].Text; page.ShowDialog(); if (string.IsNullOrEmpty(page.isClickYes)) return; ArrayList parm = new ArrayList(); DataTable dt = new DataTable(); parm.Add(page.Content); parm.Add(page.Key); parm.Add(page.icoKey); parm.Add(page.Seq); parm.Add(page.Memo); parm.Add(UserInfo.GetUserID()); parm.Add(UserInfo.GetUserName()); parm.Add(baseCode); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure"; ccp.MethodName = "doUpdatePage"; ccp.ServerParams = new object[] { parm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp != null) { if (ccp.ReturnCode == -1) { MessageUtil.ShowWarning(ccp.ReturnInfo); return; } } else { return; } MessageUtil.ShowTips("修改成功"); DoQueryPage(); } public void DoDelete() { if (ultraGrid1.ActiveRow == null) { MessageUtil.ShowTips("请先选中需要删除的数据"); return; } UltraGridRow row = ultraGrid1.ActiveRow; String baseCode = row.Cells["PAGE_ID"].Text; ArrayList parm = new ArrayList(); parm.Add("00"); parm.Add(UserInfo.GetUserID()); parm.Add(UserInfo.GetUserName()); parm.Add(baseCode); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure"; ccp.MethodName = "doDelete"; ccp.ServerParams = new object[] { parm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp != null) { if (ccp.ReturnCode == -1) { MessageUtil.ShowWarning(ccp.ReturnInfo); return; } } else { return; } MessageUtil.ShowTips("作废成功"); DoQueryPage(); } /// /// 树节点选中事件触发时,存储父节点id,防止当父节点选中项转移到其他焦点时,无法获取数据。 /// private static string parentCode = ""; /// /// 用于修改时验证重复项 /// private static string VName = ""; private bool IsExistValidChild(string baseCode) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreBaseInfoNew.isExistValidChild", new object[] { baseCode }, ob); if (dt != null && dt.Rows[0][0].ToString() != "0") { return true; } return false; } private bool IsExistValidParent(string sortCode) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreBaseInfoNew.isExistValidParent", new object[] { sortCode }, ob); if (dt != null && dt.Rows[0][0].ToString() != "0") { return true; } return false; } /// /// 查找具体的tag /// /// /// /// private void FindTreeNodeFromTag(TreeNode trnode, string treeTag, ref ArrayList treelist) { if (trnode.Tag != null && trnode.Tag.ToString() == treeTag) { treelist.Add(trnode); } foreach (TreeNode anode in trnode.Nodes) { FindTreeNodeFromTag(anode, treeTag, ref treelist); } } /// /// 刷新操作 /// private void doQuery() { //查询按钮就当刷新功能。 bandTreeView(); } /// /// 刷新树控件 /// /// /// private void FrmBaseInfoNew_Load(object sender, EventArgs e) { bandTreeView(); } /// /// 树控件绑定数据源 /// public void bandTreeView() { treeView1.Nodes.Clear(); DataTable dt = new DataTable(); dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.getTreeData", new Object[] { }, this.ob); //树控件递归绑定方法。 Bind_Tv(dt, treeView1.Nodes, null, "PAGE_ID", "SORT_CODE", "PAGE_NAME"); } /// /// top复选框选中事件触发,更新树控件数据源 /// /// /// private void chbx_CheckedChanged(object sender, EventArgs e) { if (this.Cursor == Cursors.WaitCursor) return; //刷新功能。 try { this.Cursor = Cursors.WaitCursor; bandTreeView(); } finally { this.Cursor = Cursors.Default; } } /// /// 刷新Grid数据源 /// /// //private void binUltraGrid(string basecode) //{ // this.dataTable1.Clear(); // DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.GetMaxBaseCode", new Object[] { basecode }, this.ob); // GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true); // //不同颜色区分是否有效数据 // Infragistics.Win.UltraWinGrid.UltraGridRow row = null; // for (int i = 0; i < ultraGrid1.Rows.Count; i++) // { // row = ultraGrid1.Rows[i]; // if (!row.Cells["VALIDFLAG"].Value.ToString().Equals("1")) // { // row.Appearance.ForeColor = Color.Red; // } // else // { // row.Appearance.ForeColor = Color.Black; // } // } // //内容自适应 // GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, new UltraGridColumn[] { // ultraGrid1.DisplayLayout.Bands[0].Columns["MEMO"] // }); //} /// /// 绑定TreeView(利用TreeNodeCollection) /// /// TreeNodeCollection(TreeView的节点集合) /// 父id的值 /// 数据库 id 字段名 /// 数据库 父id 字段名 /// 数据库 文本 字段值 private void Bind_Tv(DataTable dtOld, TreeNodesCollection tnc, string pid_val, string id, string pid, string text) { dtOld.DefaultView.Sort = id + " Asc"; DataTable dt = dtOld.DefaultView.ToTable(); DataView dv = new DataView(dt);//将DataTable存到DataView中,以便于筛选数据 UltraTreeNode tn;//建立TreeView的节点(TreeNode),以便将取出的数据添加到节点中 //以下为三元运算符,如果父id为空,则为构建“父id字段 is null”的查询条件,否则构建“父id字段=父id字段值”的查询条件 string filter = string.IsNullOrEmpty(pid_val) ? pid + " is null" : string.Format(pid + "='{0}'", pid_val); dv.RowFilter = filter;//利用DataView将数据进行筛选,选出相同 父id值 的数据 dt.DefaultView.Sort = id + " Asc"; foreach (DataRowView drv in dv) { tn = new UltraTreeNode();//建立一个新节点(学名叫:一个实例) tn.Tag = drv[id].ToString();//节点的Value值,一般为数据库的id值 tn.Text = drv[text].ToString();//节点的Text,节点的文本显示 tnc.Add(tn);//将该节点加入到TreeNodeCollection(节点集合)中 Bind_Tv(dt, tn.Nodes, tn.Tag.ToString(), id, pid, text);//递归(反复调用这个方法,直到把数据取完为止) } } private void treeView1_AfterActivate(object sender, NodeEventArgs e) { try { this.Cursor = Cursors.WaitCursor; DoQueryPage(); } finally { this.Cursor = Cursors.Default; } } private void addParent_Click(object sender, EventArgs e) { MenuzEdit menu = new MenuzEdit(); //parentCode = treeView1.ActiveNode.Tag.ToString(); menu.ShowDialog(); if (string.IsNullOrEmpty(menu.isClickYes)) return; ArrayList parm = new ArrayList(); DataTable dt = new DataTable(); dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.GetMaxBaseCode", new Object[] { "" }, this.ob); string baseCode = ""; if (dt.Rows.Count > 0 && !"".Equals(dt.Rows[0][0].ToString())) { baseCode = "A"+(Convert.ToInt64(dt.Rows[0][0].ToString().Substring(1,2)) + 1).ToString().PadLeft(2,'0'); } else { baseCode = "A01"; } parm.Add(baseCode); parm.Add(menu.Content); parm.Add(""); parm.Add(menu.Key); parm.Add("M"); parm.Add(""); parm.Add(menu.Seq); parm.Add("10"); parm.Add(""); parm.Add(UserInfo.GetUserID()); parm.Add(UserInfo.GetUserName()); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure"; ccp.MethodName = "doAddMemu"; ccp.ServerParams = new object[] { parm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) return; bandTreeView(); } private void addChild_Click(object sender, EventArgs e) { MenuzEdit menu = new MenuzEdit(); if (treeView1.ActiveNode==null) { MessageUtil.ShowTips("请先选中上级模块"); return; } parentCode = treeView1.ActiveNode.Tag.ToString(); menu.ShowDialog(); if (string.IsNullOrEmpty(menu.isClickYes)) return; ArrayList parm = new ArrayList(); DataTable dt = new DataTable(); dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.GetMaxBaseCode", new Object[] { parentCode }, this.ob); string baseCode = ""; if (dt.Rows.Count > 0 && !"".Equals(dt.Rows[0][0].ToString())) { baseCode = parentCode + (Convert.ToInt64(dt.Rows[0][0].ToString().Substring(parentCode.Length, 2)) + 1).ToString().PadLeft(2, '0'); } else { baseCode = parentCode+ "01"; } parm.Add(baseCode); parm.Add(menu.Content); parm.Add(""); parm.Add(menu.Key); parm.Add("M"); parm.Add(parentCode); parm.Add(menu.Seq); parm.Add("10"); parm.Add(""); parm.Add(UserInfo.GetUserID()); parm.Add(UserInfo.GetUserName()); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure"; ccp.MethodName = "doAddMemu"; ccp.ServerParams = new object[] { parm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) return; //当前父节点新增一个子节点 UltraTreeNode tn = new UltraTreeNode(); tn.Text = menu.Content; tn.Tag = baseCode; treeView1.ActiveNode.Nodes.Add(tn); } private void update_Click(object sender, EventArgs e) { MenuzEdit menu = new MenuzEdit(); if (treeView1.ActiveNode == null) { MessageUtil.ShowTips("请先选中需要修改的数据"); return; } parentCode = treeView1.ActiveNode.Tag.ToString(); menu.Content = treeView1.ActiveNode.Text; menu.ShowDialog(); if (string.IsNullOrEmpty(menu.isClickYes)) return; ArrayList parm = new ArrayList(); DataTable dt = new DataTable(); parm.Add(menu.Content); parm.Add(menu.Key); parm.Add(UserInfo.GetUserID()); parm.Add(UserInfo.GetUserName()); parm.Add(parentCode); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure"; ccp.MethodName = "doUpdateMemu"; ccp.ServerParams = new object[] { parm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) return; bandTreeView(); } private void delete_Click(object sender, EventArgs e) { if (treeView1.ActiveNode == null) { MessageUtil.ShowTips("请先选中需要删除的数据"); return; } String basecode = treeView1.ActiveNode.Tag.ToString(); ArrayList parm = new ArrayList(); DataTable dt = new DataTable(); parm.Add("00"); parm.Add(UserInfo.GetUserID()); parm.Add(UserInfo.GetUserName()); parm.Add(basecode); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure"; ccp.MethodName = "doDelete"; ccp.ServerParams = new object[] { parm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) return; bandTreeView(); } } }