/// <summary> /// 创建数据网格浏览界面。 /// </summary> /// <param name="mdiForm"></param> /// <param name="nodeInfo"></param> public void ShowViewGridForm(MB.WinBase.IFace.IMdiMainForm mdiForm, MB.Util.Model.ModuleTreeNodeInfo nodeInfo) { ModuleOpenState openState = new ModuleOpenState(); openState.OpennedFrom = ModuleOpennedFrom.Menu; ShowViewGridForm(mdiForm, nodeInfo, openState); }
/// <summary> /// 通过模块ID打开模块 /// </summary> /// <param name="id"></param> public void OpenFunctionModuleById(int id) { ModuleOpenState openState = new ModuleOpenState(); openState.OpennedFrom = ModuleOpennedFrom.Menu; OpenFunctionModuleById(id, openState); }
//打开焦点模块 protected void OpenModuleByTreeNode(DevExpress.XtraTreeList.Nodes.TreeListNode treeNode) { ModuleOpenState openState = new ModuleOpenState(); openState.OpennedFrom = ModuleOpennedFrom.Menu; OpenModuleByTreeNode(treeNode, openState); }
/// <summary> /// 通过模块ID打开模块 /// </summary> /// <param name="id"></param> /// <param name="opennedFrom"></param> /// <param name="openState">调用者自定义的参数</param> public void OpenFunctionModuleById(int id, ModuleOpenState moduleOpenState) { DevExpress.XtraTreeList.Nodes.TreeListNode treeNode = trvListMain.FindNodeByFieldValue("ID", id); if (treeNode == null) { MB.WinBase.MessageBoxEx.Show("模块ID输入无效"); return; } if (treeNode.Nodes.Count > 0) { MB.WinBase.MessageBoxEx.Show("不是有效的功能模块节点ID"); return; } OpenModuleByTreeNode(treeNode, moduleOpenState); }
/// <summary> /// 创建数据网格浏览界面。 /// </summary> /// <param name="mdiForm"></param> /// <param name="nodeInfo"></param> /// <param name="opennedFrom"></param> public void ShowViewGridForm(MB.WinBase.IFace.IMdiMainForm mdiForm, MB.Util.Model.ModuleTreeNodeInfo nodeInfo, ModuleOpenState openState) { MB.Util.Model.ModuleCommandInfo commandInfo = nodeInfo.Commands.Find (o => (UICommandType)Enum.Parse(typeof(UICommandType), o.CommandID) == UICommandType.Open); if (commandInfo == null) { MB.WinBase.MessageBoxEx.Show(string.Format("模块{0} 的浏览窗口没有配置!", nodeInfo.Name)); return; } IForm viewGridForm = null; try { viewGridForm = CreateWinForm(null, commandInfo) as IForm; var uiStyle = viewGridForm.ActiveUIType; //viewGridForm.ModuleInfo = nodeInfo; if (viewGridForm.ClientRuleObject != null) { viewGridForm.ClientRuleObject.OpennedState = openState; viewGridForm.ClientRuleObject.ModuleTreeNodeInfo = nodeInfo; //验证当前活动窗口的列信息。 mdiForm.ValidatedColumns(viewGridForm); } Form frmMdiChild = viewGridForm as Form; frmMdiChild.Text = nodeInfo.Name; if (uiStyle == ClientUIType.ShowModelForm) { (viewGridForm as Form).ShowDialog(); } else { frmMdiChild.MdiParent = mdiForm as Form; frmMdiChild.Show(); } //else { // throw new MB.Util.APPException(string.Format("窗口配置的ShowModel类型 {0} 当前还没有进行处理", commandInfo.ViewModel.ToString()), MB.Util.APPMessageType.SysErrInfo); //} } catch (MB.Util.APPException aex) { if (viewGridForm != null) { (viewGridForm as Form).Dispose(); } throw aex; } catch (Exception ex) { if (viewGridForm != null) { (viewGridForm as Form).Dispose(); } //throw new MB.Util.APPException(" 根据ModuleTreeNodeInfo 的信息创建窗口时出错:", MB.Util.APPMessageType.SysErrInfo , ex); throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, " 根据ModuleTreeNodeInfo 的信息创建窗口时出错!"); } }
//打开焦点模块 protected void OpenModuleByTreeNode(DevExpress.XtraTreeList.Nodes.TreeListNode treeNode, ModuleOpenState openState) { try { using (MB.WinBase.WaitCursor cursor = new MB.WinBase.WaitCursor(this)) { ModuleTreeNodeInfo nodeInfo = GetFocusedNodeInfo(treeNode); OnBeforeDoubleClickTreeNode(new MdiMainFunctionTreeEventArgs(null, nodeInfo)); if (nodeInfo == null || nodeInfo.Commands == null || nodeInfo.Commands.Count == 0) { return; } //判断是否已经打开 foreach (Form f in this.MdiChildren) { MB.WinBase.IFace.IForm iView = f as MB.WinBase.IFace.IForm; if (iView == null) { continue; } if (iView.ClientRuleObject.ModuleTreeNodeInfo.ID == nodeInfo.ID) { (iView as Form).BringToFront(); return; } } UICreateHelper.Instance.ShowViewGridForm(this, nodeInfo, openState); recordUserActivity(nodeInfo); } } catch (Exception ex) { MB.WinBase.ApplicationExceptionTerminate.DefaultInstance.ExceptionTerminate(ex); } }