From bd06bb837fa0c7edeeae56cb0fe4fb844f53fb2f Mon Sep 17 00:00:00 2001 From: lu <99954486@qq.com> Date: 星期三, 23 十月 2024 16:42:34 +0800 Subject: [PATCH] 修改了报表设计器 --- DevApp/Gs.DevApp/DevFrm/FrmMain.cs | 324 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 324 insertions(+), 0 deletions(-) diff --git a/DevApp/Gs.DevApp/DevFrm/FrmMain.cs b/DevApp/Gs.DevApp/DevFrm/FrmMain.cs new file mode 100644 index 0000000..dee96e6 --- /dev/null +++ b/DevApp/Gs.DevApp/DevFrm/FrmMain.cs @@ -0,0 +1,324 @@ +锘縰sing DevExpress.XtraBars.Navigation; +using DevExpress.XtraTab; +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.Reflection; +using System.Windows.Forms; +using Gs.DevApp.ToolBox; +using Newtonsoft.Json; +using Gs.DevApp.Entity; +using Newtonsoft.Json.Linq; + +namespace Gs.DevApp.DevFrm +{ + public partial class FrmMain : DevExpress.XtraBars.FluentDesignSystem.FluentDesignForm + { + private static Dictionary<string, XtraTabPage> TabPageDic = new Dictionary<string, XtraTabPage>(); + public FrmMain() + { + InitializeComponent(); + this.Text = System.Configuration.ConfigurationSettings.AppSettings.Get("ProductName").ToString(); + tab.CloseButtonClick += Tab_CloseButtonClick; + tooLoading.Click += TooLoading_Click; + barPwd.ItemClick += BarPwd_ItemClick; + barExit.ItemClick += BarExit_ItemClick; + this.FormClosing += FrmMain_FormClosing; + this.barEasy.ItemClick += BarEasy_ItemClick; + getTree(); + } + + private void BarEasy_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + DevFrm.Sys.EasyCode frm = new Sys.EasyCode(); + frm.ShowDialog(); + } + + private void FrmMain_FormClosing(object sender, FormClosingEventArgs e) + { + if (MsgHelper.AskQuestion("纭畾瑕侀��鍑虹郴缁熷悧?")) + { + int i = _userOut(); + if (i > 0) + { + this.FormClosing -= new FormClosingEventHandler(this.FrmMain_FormClosing); + Application.Exit(); + } + else + e.Cancel = true;//鍙栨秷銆傝繑鍥炵獥浣� + } + else + e.Cancel = true;//鍙栨秷銆傝繑鍥炵獥浣� + } + + /// <summary> + /// 閫�鍑� + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void BarExit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + if (MsgHelper.AskQuestion("纭畾瑕侀��鍑虹郴缁熷悧?")) + { + int i = _userOut(); + if (i > 0) + { + this.FormClosing -= new FormClosingEventHandler(this.FrmMain_FormClosing); + Application.Exit(); + } + } + } + + /// <summary> + /// 璁剧疆鐢ㄦ埛瀵嗙爜 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void BarPwd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + User.UserSetPwd frm = new User.UserSetPwd(LoginInfoModel.CurrentUser.LoginUserGuid); + frm.ShowDialog(); + } + + /// <summary> + /// 閲嶆柊鍔犺浇绯荤粺 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void TooLoading_Click(object sender, EventArgs e) + { + int i = 100; + Gs.DevApp.UserControl.ShowDialogForm sdf = new Gs.DevApp.UserControl.ShowDialogForm("鎻愮ず", "", "璇疯�愬績绛夊�欙紝姝e湪鎿嶄綔涓紒"); + for (int j = 0; j < i; j++) + { + sdf.SetCaption("鎵ц杩涘害锛�" + (j) + "/" + i.ToString() + "锛�"); + } + sdf.Close(); + getTree(); + } + private void getTree() + { + toolTime.Text = "鐧诲綍鏃堕棿" + LoginInfoModel.CurrentUser.LoginTime; + var _obj = new + { + userGuid = LoginInfoModel.CurrentUser.LoginUserGuid, + orgGuid = LoginInfoModel.CurrentUser.LoginOrgGuid, + }; + try + { + string strJson = UtilityHelper.HttpPost("", "User/GetUserLoginInfo", JsonConvert.SerializeObject(_obj)); + JObject _job = JObject.Parse(strJson); + string rtnCode = _job["rtnCode"].ToString(); + if (int.Parse(rtnCode) > 0) + { + this.acrd.Clear(); + barMsg.Caption = _job["rtnData"]["loginMsg"].ToString(); + JArray array = new JArray(); + var d = _job["rtnData"]["list"]; + foreach (var a in d) + { + array.Add(a); + } + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain)); + DataTable dt = JsonConvert.DeserializeObject<DataTable>(array.ToString()); + DataRow[] drGrp = dt.Select("upGuid is null"); + int gdx = 0, idx = 0; + foreach (DataRow _dy in drGrp) + { + AccordionControlElement _grp = this.acrd.AddGroup(); + _grp.ImageOptions.Image = UtilityHelper.GetImgFromResource(_dy["icon"].ToString(), 1); + _grp.Name = _dy["guid"].ToString(); + _grp.Style = DevExpress.XtraBars.Navigation.ElementStyle.Group; + _grp.Text = _dy["name"].ToString(); + _grp.Tag = _dy["formPath"].ToString();//瀛樿矾寰勶紝绫诲悕 + _grp.Click += _grp_Click; + if (gdx == 0) + _grp.Expanded = true; + DataRow[] drItem = dt.Select("upGuid='" + _dy["guid"].ToString() + "'"); + foreach (DataRow _dy2 in drItem) + { + AccordionControlElement _itm = this.acrd.AddItem(); + _itm.ImageOptions.Image = UtilityHelper.GetImgFromResource(_dy2["icon"].ToString(), 2); + _itm.Name = _dy2["guid"].ToString(); + _itm.Style = DevExpress.XtraBars.Navigation.ElementStyle.Item; + _itm.Text = _dy2["name"].ToString(); + _itm.Appearance.Normal.Font = new System.Drawing.Font("Tahoma", 10F); + _itm.Tag = _dy2["formPath"].ToString();//瀛樿矾寰勶紝绫诲悕 + _itm.Click += _grp_Click; + _grp.Elements.Add(_itm); + if (idx == 0 && tab.TabPages.Count <= 0) + { + string tabPageName = _itm.Name + "_page"; + string tabText = _itm.Text;//褰撳墠閫夐」鍗¢〉Text鏍囬 + string newFormName = _itm.Tag.ToString();//瀛樿矾寰勶紝绫诲悕 + Image imgIcon = _itm.Image; + AddTabpage(tab, tabPageName, tabText, newFormName, imgIcon); + } + idx++; + }; + gdx++; + } + } + else + { + ToolBox.MsgHelper.ShowError("鎻愮ず锛氬垵濮嬪寲澶辫触锛岃鑱旂郴绠$悊鍛橈紒"); + } + } + catch (Exception ex) + { + ToolBox.MsgHelper.ShowError("鎻愮ず锛�" + ex.Message); + } + } + /// <summary> + /// 宸︿晶鑿滃崟鐐瑰嚮 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void _grp_Click(object sender, EventArgs e) + { + AccordionControlElement _acd = (AccordionControlElement)sender; + if (_acd.Elements.Count > 0) return; + string tabPageName = _acd.Name + "_page"; + string tabText = _acd.Text; + string newFormName = _acd.Tag.ToString(); + Image imgIcon = _acd.Image; + AddTabpage(tab, tabPageName, tabText, newFormName, imgIcon); + } + + /// <summary> + /// 鍏抽棴閫夐」鍗� + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void Tab_CloseButtonClick(object sender, EventArgs e) + { + RemoveTabPage(tab, e); + } + /// <summary> + /// 鏂板閫夐」鍗¢〉 + /// </summary> + /// <param name="tabControl">閫夐」鍗℃帶浠�</param> + /// <param name="tabPageName">褰撴湡閫夐」鍗¢〉name鍚嶇О</param> + /// <param name="tabText">褰撳墠閫夐」鍗¢〉Text鏍囬</param> + /// <param name="newFormName">褰撳墠閫夐」鍗′腑鐨勬柊绐椾綋璺緞锛岀被鍚�</param> + public void AddTabpage(XtraTabControl tabControl, string tabPageName, string tabText, string newFormName, Image imgIcon) + { + if (IsTabpageExsit(tabControl, tabPageName)) + { + return; + } + XtraTabPage newPage = new XtraTabPage(); + newPage.Name = tabPageName; + newPage.Text = tabText; + newPage.Tooltip = newPage.Name; + newPage.Appearance.Header.Font = (tab.Appearance.Font); + newPage.ImageOptions.Image = imgIcon; + Form fm = AddNewForm(newFormName); + if (fm != null) + { + newPage.Controls.Add(fm); + tabControl.TabPages.Add(newPage); + TabPageDic.Add(tabPageName, newPage); + tabControl.SelectedTabPage = newPage; + } + } + + /// <summary> + /// 绉婚櫎閫夐」鍗¢〉 + /// </summary> + /// <param name="tabControl"></param> + /// <param name="tabPageName"></param> + /// <param name="e"></param> + public void RemoveTabPage(XtraTabControl tabControl, EventArgs e) + { + if (TabPageDic.Count <= 1) + { + ToolBox.MsgHelper.Warning("璇疯嚦灏戜繚鐣欎竴涓姛鑳斤紒"); + return; + } + DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs args = (DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs)e; + string name = args.Page.Tooltip; + foreach (XtraTabPage item in tabControl.TabPages) + { + if (item.Name == name) + { + tabControl.TabPages.Remove(item); + item.Dispose(); + TabPageDic.Remove(name); + return; + } + } + } + + /// <summary> + /// 鍒ゆ柇閫夐」鍗℃槸鍚﹀凡缁忓瓨鍦� + /// </summary> + /// <param name="tabControl">閫夐」鍗℃帶浠�</param> + /// <param name="tabPageName">閫夐」鍗″悕绉�</param> + /// <returns></returns> + private bool IsTabpageExsit(XtraTabControl tabControl, string tabPageName) + { + foreach (var item in TabPageDic) + { + if (item.Key == tabPageName) + { + tabControl.SelectedTabPage = item.Value; + return true; + } + } + return false; + } + + /// <summary> + /// 鍦ㄩ�夐」鍗′腑鐢熸垚绐椾綋 + /// </summary> + /// <param name="form">绐椾綋鍚嶇О</param> + private Form AddNewForm(string formName) + { + try + { + Form newForm = (Form)Assembly.GetExecutingAssembly().CreateInstance(formName); + if (newForm == null) + { + Gs.DevApp.ToolBox.MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒"); + return null; + } + newForm.FormBorderStyle = FormBorderStyle.None; + newForm.TopLevel = false; + newForm.ControlBox = false; + newForm.Dock = DockStyle.Fill; + newForm.Visible = true; + return newForm; + } + catch (Exception) + { + Gs.DevApp.ToolBox.MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒"); + } + return null; + } + + private int _userOut() + { + var _obj = new + { + userGuid = LoginInfoModel.CurrentUser.LoginUserGuid, + }; + try + { + string strJson = UtilityHelper.HttpPost("", "User/UserOut", JsonConvert.SerializeObject(_obj)); + ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson); + if (_rtn.rtnCode > 0) + return _rtn.rtnCode; + ToolBox.MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnData.outMsg); + return _rtn.rtnCode; + } + catch (Exception ex) + { + this.DialogResult = DialogResult.Cancel; + ToolBox.MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + return -1; + } + } + } +} -- Gitblit v1.9.3