/// <summary> /// 打开MDI子窗体 /// </summary> /// <param name="mdi">MDI主窗体</param> /// <param name="formType">子窗体的类型</param> /// <returns></returns> public static Form OpenChildForm(IMdiForm mdi, Type formType) { try { Cursor.Current = Cursors.WaitCursor; Form child = ActiveChildForm(mdi as Form, formType.ToString()); if (child != null) { child.Show(); return(child); } Form form = (Form)formType.Assembly.CreateInstance(formType.FullName); if (form != null && form is Form) { child = form as Form; if (form is IMdiChildForm) { (child as IMdiChildForm).ToolbarRegister = mdi.MdiToolbar; (child as IMdiChildForm).RegisterObserver(mdi.MdiObservers); child.MdiParent = (Form)mdi; } child.Show(); return(child); } else { throw new Exception("未知窗体类型!"); } } finally { Cursor.Current = Cursors.Default; } }
/// <summary> /// 生成权限管理树视图 - 第一级树结点 /// </summary> public void InitAuthorityTree() { try { //取按钮自定义名称数据表 _FormTagCustomName = _MyBridge.GetFormTagCustomName(); this._treeAuthority.BeforeCheck += new TreeViewCancelEventHandler(OnTreeAuthorityBeforeCheck); this._treeAuthority.AfterCheck -= new TreeViewEventHandler(OnTreeAuthorityAfterCheck); this._treeAuthority.Nodes.Clear(); this._treeAuthority.BeginUpdate(); IMdiForm mainForm = (IMdiForm)_treeAuthority.FindForm().ParentForm;//取MDI主窗体的主菜单 //枚举主窗体的菜单 foreach (ToolStripItem item in mainForm.MainMenu.Items) { if (item is ToolStripSeparator) { continue; //菜单分隔符不处理 } if (item.Tag != null && item.Tag.ToString().ToUpper() == "IsSystemMenu".ToUpper()) { continue; //系统菜单不处理 } if (!Loginer.CurrentUser.IsAdmin() && !item.Enabled) { continue; //没菜单权限(菜单不可用).不加载树 } AuthNodeTag tag = new AuthNodeTag(item.Name, null, item); TreeNode node = new TreeNode(item.Text, 0, 0); node.ImageIndex = 0; node.SelectedImageIndex = 0; node.Tag = tag; //标记 this._treeAuthority.Nodes.Add(node); //处理子菜单 if (item is ToolStripMenuItem && (item as ToolStripMenuItem).DropDownItems.Count > 0) { InitAuthorityTreeChild(item as ToolStripMenuItem, node); node.Expand(); } } this._treeAuthority.EndUpdate(); if (this._treeAuthority.Nodes.Count == 1) { this._treeAuthority.Nodes[0].Expand(); } } finally { this._treeAuthority.AfterCheck += new TreeViewEventHandler(OnTreeAuthorityAfterCheck); } }
/// <summary> /// 显示模块主窗体容器的按钮 /// </summary> public override void InitButtons() { IMdiForm mdi = (IMdiForm)this.MdiParent; _buttons.AddRange(mdi.MdiButtons); _buttons.GetButtonByName("btnClose").Enable = false; this.ControlBox = false; }
/// <summary> /// 打开子窗体. /// </summary> /// <param name="mdi">MDI主窗体</param> /// <param name="formType">子窗体的类型</param> /// <param name="ToolStripMenuItem">打开窗体的菜单项</param> public static Form OpenChildForm(IMdiForm mdi, Type formType, ToolStripMenuItem sender) { try { Cursor.Current = Cursors.WaitCursor; Form form = ActiveChildForm(mdi as Form, formType.ToString()); //试图激活已打开的子窗体 if (form != null) { form.Show(); return(form); } //如子窗体已打开显示子窗体并退出 //通过反射创建窗体实例. form = (Form)formType.Assembly.CreateInstance(formType.FullName); //创建窗体实例失败 if (form == null) { throw new Exception("未知窗体类型!"); } //是系统定义的子窗体 if (form is IMdiChildForm) { form.MdiParent = (Form)mdi; //设置主窗体 (form as IMdiChildForm).ToolbarRegister = mdi.MdiToolbar; //绑定主窗体的Toolbar对象 (form as IMdiChildForm).RegisterObserver(mdi.MdiObservers); //注册子窗体的观察者 } //支持权限控制的子窗体 if (form is IPurviewControllable) { if (sender != null && sender.Tag is MenuItemTag) { MenuItemTag tag = sender.Tag as MenuItemTag; int auth = new bllGroupAuthority().GetFormAuthority(Loginer.CurrentUser.Account, tag.ModuleID, sender.Name); //获取窗体的权限 (form as IPurviewControllable).FormAuthorities = auth; //本窗体的权限值 (form as IPurviewControllable).FormMenuName = sender.Name; //绑定打开窗体的菜单名 } } form.Show();//显示窗体 return(form); } catch (Exception ex) { Msg.Warning("打开窗体时出现错误!\r\n" + ex.Message); return(null); } finally { Cursor.Current = Cursors.Default; } }
private void btnGen_Click(object sender, EventArgs e) { if (ValidateWizard()) { //查找目标窗体是否打开 Form targetForm = MdiTools.FindForm(this.CurrentItem.TargetFormType.FullName); if (targetForm == null) //没有打开目标窗体,程序自动打开 { IMdiForm mainForm = MdiTools.MdiMainForm as IMdiForm; //MDI主窗体 targetForm = MdiTools.OpenChildForm(mainForm, this.CurrentItem.TargetFormType); //打开目标窗体 } else { if (!(targetForm is IBusinessSupportable)) { Msg.Warning("不支持生成目标窗体的数据!"); return; //不是MDI子窗体,退出 } if ((targetForm as IDataOperatable).DataChanged) { Msg.Warning("目标窗体 '" + this.CurrentItem.TargetFormName + "' 正在修改数据!请保存或取消修改后才能生成!"); return; } targetForm.Activate(); //目标窗体已打开,激活显示 } //调用目标窗体的新增方法 (targetForm as IDataOperatable).DoAdd(null); //开始生成单据 _GenSuccess = this.CurrentItem.Generate((targetForm as frmBaseBusinessForm).BLL); if (_GenSuccess) { Msg.ShowInformation("生成单据成功,请修改相关数据然后保存!"); this.Close(); targetForm.Activate();//显示目标窗体 } else { Msg.ShowError("生成单据失败!"); } } }
internal void OpenForm(IMdiForm form, string title) { try { Cursor.Current = Cursors.WaitCursor; var formTitle = " " + title + " "; if (MdiChildren.Count() != 0) { if (FindWindow(formTitle)) { ((Form)form).Dispose(); return; } } var frm = (Form)form; frm.MdiParent = this; ((MdiClientForm)frm).Title = formTitle; frm.Tag = formTitle; frm.WindowState = FormWindowState.Minimized; frm.Show(); frm.WindowState = FormWindowState.Maximized; frm.Update(); App.LogAction("Main", "Opened " + title); Cursor.Current = Cursors.Default; } catch (Exception ex) { MessageDialog.ShowError(ex, this); } }
/// <summary> /// 生成权限管理树视图 - 第一级树结点 /// </summary> public void InitAuthorityTree() { try { //取按钮自定义名称数据表 _FormTagCustomName = _MyBridge.GetFormTagCustomName(); this._treeAuthority.BeforeCheck += new TreeViewCancelEventHandler(OnTreeAuthorityBeforeCheck); this._treeAuthority.AfterCheck -= new TreeViewEventHandler(OnTreeAuthorityAfterCheck); this._treeAuthority.Nodes.Clear(); this._treeAuthority.BeginUpdate(); IMdiForm mainForm = (IMdiForm)_treeAuthority.FindForm().ParentForm;//取MDI主窗体的主菜单 //枚举主窗体的菜单 foreach (ToolStripItem item in mainForm.MainMenu.Items) { if (item is ToolStripSeparator) { continue; //菜单分隔符不处理 } if (item.Tag != null && item.Tag.ToString().ToUpper() == "IsSystemMenu".ToUpper()) { continue; //系统菜单不处理 } if (!Loginer.CurrentUser.IsAdmin() && !item.Enabled) { continue; //没菜单权限(菜单不可用).不加载树 } AuthNodeTag tag = new AuthNodeTag(item.Name, null, item); string sfilter = string.Format(tb_sys_Function.FNumber + "='{0}'", item.Name); DataRow[] rsF = DataDictCache.Cache.Function.Select(sfilter); if (rsF.Length > 0) { tag.DataRow = rsF[0]; } string sCon = tb_sys_Function.FNumber + " = '" + tag.AuthID + "'"; tag.FUnctionID = bllComDataBaseTool.GetTableFieldValue(tb_sys_Function.__TableName, tb_sys_Function.__KeyName, sCon); if (tag.FUnctionID == "") { tag.FUnctionID = "0"; } TreeNode node = new TreeNode(item.Text, 0, 0); node.ImageIndex = 0; node.SelectedImageIndex = 0; node.Tag = tag; //标记 this._treeAuthority.Nodes.Add(node); //处理子菜单 if (item is ToolStripMenuItem && (item as ToolStripMenuItem).DropDownItems.Count > 0) { InitAuthorityTreeChild(item as ToolStripMenuItem, node); node.Expand(); } } this._treeAuthority.EndUpdate(); if (this._treeAuthority.Nodes.Count == 1) { this._treeAuthority.Nodes[0].Expand(); } } finally { this._treeAuthority.AfterCheck += new TreeViewEventHandler(OnTreeAuthorityAfterCheck); } }
/// <summary> /// 打开子窗体. /// </summary> /// <param name="mdi">MDI主窗体</param> /// <param name="formType">子窗体的类型</param> /// <param name="ToolStripMenuItem">打开窗体的菜单项</param> public static Form OpenChildForm(IMdiForm mdi, Type formType, ToolStripMenuItem sender) { try { Cursor.Current = Cursors.WaitCursor; Form form = ActiveChildForm(mdi as Form, formType.ToString()); //试图激活已打开的子窗体 if (form != null) { form.Show(); return(form); } //如子窗体已打开显示子窗体并退出 //通过反射创建窗体实例. form = (Form)formType.Assembly.CreateInstance(formType.FullName); //创建窗体实例失败 if (form == null) { throw new Exception("未知窗体类型!"); } //是系统定义的子窗体 if (form is IMdiChildForm) { form.MdiParent = (Form)mdi; //设置主窗体 (form as IMdiChildForm).ToolbarRegister = mdi.MdiToolbar; //绑定主窗体的Toolbar对象 (form as IMdiChildForm).RegisterObserver(mdi.MdiObservers); //注册子窗体的观察者 } //支持权限控制的子窗体 if (form is IPurviewControllable) { if (sender != null && sender.Tag is MenuItemTag) { MenuItemTag tag = sender.Tag as MenuItemTag; //int auth = new bllGroupAuthority().GetFormAuthority(Loginer.CurrentUser.Account, tag.ModuleID, sender.Name); //获取窗体的权限 //if (auth < 1 && (!Loginer.CurrentUser.IsAdmin())) //{ int auth = 0; int authShow = 0; DataRow[] rows = SystemAuthentication.UserAuthorities.Select(string.Format("FNUM='{0}' ", sender.Name)); //int auth = new bllGroupAuthority().GetFormAuthority(Loginer.CurrentUser.Account, tag.ModuleID, sender.Name); //获取窗体的权限 if (rows.Length < 1 && (!Loginer.CurrentUser.IsAdmin())) { Msg.ShowError("您没有" + sender.Text + "的权限"); return(null); } else { if (rows.Length > 0) { auth = Convert.ToInt32(rows[0]["FAUTHS"]); } DataRow[] rs = DataDictCache.Cache.Function.Select(string.Format("FNumber='{0}'", sender.Name)); if (rs.Length > 0) { if (auth == 0) { auth = Convert.ToInt32(rs[0]["FAUTHS"]); } authShow = Convert.ToInt32(rs[0]["FAUTHS"]); } (form as IPurviewControllable).FormAuthorities = auth; //本窗体工具栏的权限值 (form as IPurviewControllable).FormAuthoritiesShow = authShow; //本窗体工具栏的权限值 (form as IPurviewControllable).FormMenuName = sender.Name; //绑定打开窗体的菜单名 (form as IPurviewControllable).FunctionID = bllComDataBaseTool.GetFunctionID(sender.Name); //功能ID } } } form.Show();//显示窗体 return(form); } catch (Exception ex) { Msg.Warning("打开窗体时出现错误!\r\n" + ex.Message); return(null); } finally { Cursor.Current = Cursors.Default; } }
/// <summary> /// 打开子窗体. /// </summary> /// <param name="mdi">MDI主窗体</param> /// <param name="formType">子窗体的类型</param> /// <param name="ToolStripMenuItem">打开窗体的菜单项</param> public static Form OpenChildForm(IMdiForm mdi, Type formType, ToolStripMenuItem sender) { try { Cursor.Current = Cursors.WaitCursor; Form form = ActiveChildForm(mdi as Form, formType.ToString()); //试图激活已打开的子窗体 if (form != null) { form.Show(); return form; } //如子窗体已打开显示子窗体并退出 //通过反射创建窗体实例. form = (Form)formType.Assembly.CreateInstance(formType.FullName); //创建窗体实例失败 if (form == null) throw new Exception("未知窗体类型!"); //是系统定义的子窗体 if (form is IMdiChildForm) { form.MdiParent = (Form)mdi; //设置主窗体 (form as IMdiChildForm).ToolbarRegister = mdi.MdiToolbar; //绑定主窗体的Toolbar对象 (form as IMdiChildForm).RegisterObserver(mdi.MdiObservers); //注册子窗体的观察者 } //支持权限控制的子窗体 if (form is IPurviewControllable) { if (sender != null && sender.Tag is MenuItemTag) { MenuItemTag tag = sender.Tag as MenuItemTag; //int auth = new bllGroupAuthority().GetFormAuthority(Loginer.CurrentUser.Account, tag.ModuleID, sender.Name); //获取窗体的权限 //if (auth < 1 && (!Loginer.CurrentUser.IsAdmin())) //{ int auth = 0; int authShow = 0; DataRow[] rows = SystemAuthentication.UserAuthorities.Select(string.Format("FNUM='{0}' ", sender.Name)); //int auth = new bllGroupAuthority().GetFormAuthority(Loginer.CurrentUser.Account, tag.ModuleID, sender.Name); //获取窗体的权限 if (rows.Length < 1 && (!Loginer.CurrentUser.IsAdmin())) { Msg.ShowError("您没有" + sender.Text + "的权限"); return null; } else { if (rows.Length > 0) auth = Convert.ToInt32(rows[0]["FAUTHS"]); DataRow[] rs = DataDictCache.Cache.Function.Select(string.Format("FNumber='{0}'", sender.Name)); if (rs.Length > 0) { if (auth == 0) auth = Convert.ToInt32(rs[0]["FAUTHS"]); authShow = Convert.ToInt32(rs[0]["FAUTHS"]); } (form as IPurviewControllable).FormAuthorities = auth; //本窗体工具栏的权限值 (form as IPurviewControllable).FormAuthoritiesShow = authShow; //本窗体工具栏的权限值 (form as IPurviewControllable).FormMenuName = sender.Name;//绑定打开窗体的菜单名 (form as IPurviewControllable).FunctionID = bllComDataBaseTool.GetFunctionID(sender.Name);//功能ID } } } form.Show();//显示窗体 return form; } catch (Exception ex) { Msg.Warning("打开窗体时出现错误!\r\n" + ex.Message); return null; } finally { Cursor.Current = Cursors.Default; } }
/// <summary> /// 打开MDI子窗体 /// </summary> /// <param name="mdi">MDI主窗体</param> /// <param name="formType">子窗体的类型</param> /// <returns></returns> public static Form OpenChildForm(IMdiForm mdi, Type formType) { try { Cursor.Current = Cursors.WaitCursor; Form child = ActiveChildForm(mdi as Form, formType.ToString()); if (child != null) { child.Show(); return child; } Form form = (Form)formType.Assembly.CreateInstance(formType.FullName); if (form != null && form is Form) { child = form as Form; if (form is IMdiChildForm) { (child as IMdiChildForm).ToolbarRegister = mdi.MdiToolbar; (child as IMdiChildForm).RegisterObserver(mdi.MdiObservers); child.MdiParent = (Form)mdi; } child.Show(); return child; } else throw new Exception("未知窗体类型!"); } finally { Cursor.Current = Cursors.Default; } }