From ecb7a60de1639f520712ce95f99414b0dd2c9713 Mon Sep 17 00:00:00 2001
From: lu <99954486@qq.com>
Date: 星期一, 14 四月 2025 08:30:40 +0800
Subject: [PATCH] 自动打印

---
 DevApp/Gs.DevApp/UserControl/UcToolBarMenu.cs |  297 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 270 insertions(+), 27 deletions(-)

diff --git a/DevApp/Gs.DevApp/UserControl/UcToolBarMenu.cs b/DevApp/Gs.DevApp/UserControl/UcToolBarMenu.cs
index d6c3dcf..f79620c 100644
--- a/DevApp/Gs.DevApp/UserControl/UcToolBarMenu.cs
+++ b/DevApp/Gs.DevApp/UserControl/UcToolBarMenu.cs
@@ -1,17 +1,23 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Data;
-using System.Linq;
-using System.Net;
-using System.Windows.Forms;
-using DevExpress.XtraBars;
+锘縰sing DevExpress.XtraBars;
 using DevExpress.XtraEditors;
+using DevExpress.XtraGrid;
+using DevExpress.XtraGrid.Views.Grid;
+using DevExpress.XtraLayout;
 using Gs.DevApp.DevFrm.Rpt;
 using Gs.DevApp.DevFrm.Sys;
 using Gs.DevApp.Entity;
 using Gs.DevApp.ToolBox;
 using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Windows.Forms;
 
 namespace Gs.DevApp.UserControl
 {
@@ -50,13 +56,16 @@
             btnWg.ItemClick += BtnWg_ItemClick;
             btnHelp.ItemClick += BtnHelp_ItemClick;
             btnLayout.ItemClick += BtnLayout_ItemClick;
+            btnFont.ItemClick += BtnFont_ItemClick;
             var lst = new List<string>();
             foreach (BarItem item in barManager1.Items)
                 if (item is BarLargeButtonItem largeButtonItem)
-                    if (!string.IsNullOrEmpty(item.Caption) && item.Caption != "淇濆瓨" && item.Caption != "鍒锋柊")
+                    if (!string.IsNullOrEmpty(item.Caption) && item.Caption != "淇濆瓨" && item.Caption != "鍒锋柊" && item.Caption != "甯姪" && item.Caption != "淇濆瓨鐗堥潰" && item.Caption != "鍙栨秷")
                         lst.Add(item.Caption);
             actions = lst;
         }
+
+
 
 
         /// <summary>
@@ -74,7 +83,7 @@
             if (parentForm != null)
             {
                 PictureBox specificControl = (PictureBox)parentForm.Controls.Find("picCheckBox", true).FirstOrDefault();
-                if (specificControl== null)
+                if (specificControl == null)
                     return false;
                 if (specificControl.Tag == null)
                     return false;
@@ -484,6 +493,7 @@
                 lst.Add(btnPiZhun.Name);
                 lst.Add(btnHelp.Name);
                 lst.Add(btnLayout.Name);
+                lst.Add(btnFont.Name);
                 lst.Add(btnBoHui.Name);
                 lst.Add(btnTzbl.Name);
                 lst.Add(btnKg.Name);
@@ -496,7 +506,6 @@
         }
 
 
-
         private void BtnSave_ItemClick(object sender, ItemClickEventArgs e)
         {
             if (btnSaveClick != null)
@@ -507,7 +516,7 @@
                     var lst = new List<string>();
                     lst.Add(btnAdd.Name);
                     lst.Add(btnEdit.Name);
-                    lst.Add(btnEsc.Name);
+                    //lst.Add(btnEsc.Name);
                     lst.Add(btnChk.Name);
                     lst.Add(btnFchk.Name);
                     lst.Add(btnDel.Name);
@@ -526,10 +535,13 @@
                     lst.Add(btnZhongTai.Name);
                     lst.Add(btnHelp.Name);
                     lst.Add(btnLayout.Name);
+                    lst.Add(btnFont.Name);
                     lst.Add(btnLoad.Name);
                     lst.Add(btnTzbl.Name);
                     _enabledBtn(lst);
                 }
+
+
             }
         }
 
@@ -551,6 +563,7 @@
             lst.Add(btnEsc.Name);
             lst.Add(btnHelp.Name);
             lst.Add(btnLayout.Name);
+            lst.Add(btnFont.Name);
             _enabledBtn(lst);
             this.currentAction = "edit";
             if (btnEdtClick != null) btnEdtClick(this, e);
@@ -577,6 +590,7 @@
             lst.Add(btnEsc.Name);
             lst.Add(btnHelp.Name);
             lst.Add(btnLayout.Name);
+            lst.Add(btnFont.Name);
             _enabledBtn(lst);
             this.currentAction = "add";
             if (btnAddClick != null) btnAddClick(this, e);
@@ -605,8 +619,6 @@
         {
             if (btnWgClick != null) btnWgClick(this, e);
         }
-
-
 
         private void BtnbZhongTai_ItemClick(object sender, ItemClickEventArgs e)
         {
@@ -651,21 +663,24 @@
             Gs.DevApp.ToolBox.MsgHelper.ShowInformation(_rtnJson.rtnMsg);
         }
 
-        private void BtnLayout_ItemClick(object sender, ItemClickEventArgs e)
+        private void BtnLayout_ItemClick(object sender, ItemClickEventArgs ee)
         {
-            var _formNamespace = "";
-            Control parentControl = this;
-            while (parentControl.Parent != null)
+            Form parentForm = this.Parent as Form;
+            if (parentForm == null)
+                parentForm = this.Parent.Parent as Form;
+            string _formNamespace = parentForm.GetType().FullName;
+            if (parentForm != null)
             {
-                if (parentControl.Parent is Form parentForm)
-                {
-                    var formType = parentForm.GetType();
-                    _formNamespace = formType.FullName;
-                    break;
-                }
-                parentControl = parentControl.Parent;
+                List<DevExpress.XtraGrid.Views.Grid.GridView> gvList = getGvList();
+                List<DevExpress.XtraLayout.LayoutControl> layList = getLayList();
+                List<DevExpress.XtraEditors.SplitContainerControl> spcList = getSpcList();
+                Gs.DevApp.UserControl.showLayOut DevFrm = new showLayOut(_formNamespace, gvList, layList, spcList);
+                DevFrm.ShowDialog();
             }
-            Gs.DevApp.UserControl.showLayOut DevFrm = new showLayOut(_formNamespace);
+        }
+        private void BtnFont_ItemClick(object sender, ItemClickEventArgs e)
+        {
+            Gs.DevApp.UserControl.SelectFont DevFrm = new SelectFont();
             DevFrm.ShowDialog();
         }
         private void _enabledBtn(List<string> lstBtn)
@@ -711,6 +726,20 @@
                     JsonConvert.SerializeObject(_obj));
                 var dd = UtilityHelper.ReturnToList(strReturn);
                 var dt = dd.rtnData;
+
+                if (!string.IsNullOrEmpty(defaultActions) && defaultActions.Contains("鏌ヨ"))
+                {
+                    if (dt == null || dt.Rows.Count <= 0)
+                    {
+                        dt.Columns.Add("guid", typeof(string));
+                        dt.Columns.Add("name", typeof(string));
+                    }
+                    DataRow newRow = dt.NewRow();
+                    newRow["guid"] = Guid.NewGuid().ToString();
+                    newRow["name"] = "鏌ヨ";
+                    dt.Rows.Add(newRow);
+                }
+
                 var _enabledList = new List<string>();
                 foreach (BarItem item in barManager1.Items)
                 {
@@ -794,6 +823,7 @@
                 _enabledList.Add(btnLoad.Name);
                 _enabledList.Add(btnHelp.Name);
                 _enabledList.Add(btnLayout.Name);
+                _enabledList.Add(btnFont.Name);
                 _enabledBtn(_enabledList);
             }
             catch (Exception ex)
@@ -836,7 +866,7 @@
             catch (Exception ex)
             {
                 MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
-                return true;
+                return false;
             }
             return false;
         }
@@ -987,6 +1017,8 @@
         public event EventHandler btnWgClick;
 
 
+        //public event EventHandler btnLayoutClick;
+
         #endregion
 
         #region 鍏叡灞炴��
@@ -1027,8 +1059,219 @@
         /// 褰撳墠鐘舵��
         /// </summary>
         public string currentAction { get; set; }
+
+        public string defaultActions { get; set; }
         #endregion
 
 
+
+        /// <summary>
+        /// 鏌ユ壘gridView
+        /// </summary>
+        /// <returns></returns>
+        private List<DevExpress.XtraGrid.Views.Grid.GridView> getGvList()
+        {
+            Form parentForm;
+            if (this.Parent is Form)
+                parentForm = this.Parent as Form;
+            else
+                parentForm = this.Parent.Parent as Form;
+            List<DevExpress.XtraGrid.Views.Grid.GridView> gvList = new List<DevExpress.XtraGrid.Views.Grid.GridView>();
+            //鏌ユ壘gridview,涓婚〉闈�
+            GridControl gcMain = parentForm.Controls.Find("gcMain1", true).OfType<GridControl>().FirstOrDefault();
+            if (gcMain != null)
+            {
+                GridView gv1 = gcMain.MainView as GridView;
+                if (gv1 != null)
+                {
+                    gvList.Add(gv1);
+                }
+            }
+            GridControl mx = parentForm.Controls.Find("gcMx1", true).OfType<GridControl>().FirstOrDefault();
+            if (mx != null)
+            {
+                GridView gv1 = mx.MainView as GridView;
+                if (gv1 != null)
+                {
+                    gvList.Add(gv1);
+                }
+            }
+            GridControl mx2 = parentForm.Controls.Find("gcMx2", true).OfType<GridControl>().FirstOrDefault();
+            if (mx2 != null)
+            {
+                GridView gv1 = mx2.MainView as GridView;
+                if (gv1 != null)
+                {
+                    gvList.Add(gv1);
+                }
+            }
+            return gvList;
+        }
+        /// <summary>
+        /// 鏌ユ壘LayoutControl
+        /// </summary>
+        /// <returns></returns>
+        private List<DevExpress.XtraLayout.LayoutControl> getLayList()
+        {
+            Form parentForm;
+            if (this.Parent is Form)
+                parentForm = this.Parent as Form;
+            else
+                parentForm = this.Parent.Parent as Form;
+            List<DevExpress.XtraLayout.LayoutControl> layList = new List<DevExpress.XtraLayout.LayoutControl>();
+            DevExpress.XtraLayout.LayoutControl lay2 = parentForm.Controls.Find("layoutMx1", true).OfType<DevExpress.XtraLayout.LayoutControl>().FirstOrDefault();
+            if (lay2 != null)
+            {
+                layList.Add(lay2);
+            }
+            return layList;
+        }
+
+        /// <summary>
+        /// 鏌ユ壘SplitContainerControl
+        /// </summary>
+        /// <returns></returns>
+        private List<DevExpress.XtraEditors.SplitContainerControl> getSpcList()
+        {
+            Form parentForm;
+            if (this.Parent is Form)
+                parentForm = this.Parent as Form;
+            else
+                parentForm = this.Parent.Parent as Form;
+            List<DevExpress.XtraEditors.SplitContainerControl> spcList = new List<DevExpress.XtraEditors.SplitContainerControl>();
+            DevExpress.XtraEditors.SplitContainerControl spc1 = parentForm.Controls.Find("split1", true).OfType<DevExpress.XtraEditors.SplitContainerControl>().FirstOrDefault();
+            DevExpress.XtraEditors.SplitContainerControl spc2 = parentForm.Controls.Find("splitMx1", true).OfType<DevExpress.XtraEditors.SplitContainerControl>().FirstOrDefault();
+            if (spc1 != null)
+            {
+                spcList.Add(spc1);
+            }
+            if (spc2 != null)
+            {
+                spcList.Add(spc2);
+            }
+            return spcList;
+        }
+
+        /// <summary>
+        /// 璇诲彇xml閰嶇疆锛岀洰鍓嶉厤缃甮cMain1,layoutMx1,鍔犳煡璇㈡潯浠�
+        /// </summary>
+        public void getXmlConfig()
+        {
+            Form parentForm;
+            if (this.Parent is Form)
+                parentForm = this.Parent as Form;
+            else
+                parentForm = this.Parent.Parent as Form;
+
+            string _formNamespace = parentForm.GetType().FullName;
+            List<DevExpress.XtraGrid.Views.Grid.GridView> gvList = getGvList();
+            List<DevExpress.XtraLayout.LayoutControl> layList = getLayList();
+            List<DevExpress.XtraEditors.SplitContainerControl> spcList = getSpcList();
+            JArray array = new JArray();
+            var _obj = new
+            {
+                formPath = _formNamespace,
+            };
+            try
+            {
+                string strJson = UtilityHelper.HttpPost("", "Fm/GetModel", JsonConvert.SerializeObject(_obj));
+                ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson);
+                if (_rtn.rtnCode > 0)
+                {
+                    JObject _job = JObject.Parse(strJson);
+                    foreach (var a in _job["rtnData"]["list"])
+                    {
+                        //string _id = a["controlId"].ToString();
+                        //string _controlType = a["controlType"].ToString();
+                        //string _controlXml = a["controlXml"].ToString();
+                        //string _splitterPosition = a["splitterPosition"].ToString();
+                        array.Add(a);
+                    }
+                    foreach (GridView gv in gvList)
+                    {
+                        JToken john = array.FirstOrDefault(t => t["controlId"].ToString().ToUpper() == gv.Name.ToString().Trim().ToUpper());
+                        if (john != null)
+                        {
+                            string controlId = john["controlId"].ToString();
+                            string controlXml = john["controlXml"].ToString();
+                            byte[] byteArray = Encoding.UTF8.GetBytes(controlXml);
+                            using (var stream = new MemoryStream(byteArray))
+                            {
+                                gv.RestoreLayoutFromStream(stream);
+                            }
+                        }
+                    }
+                    foreach (LayoutControl lay in layList)
+                    {
+                        JToken john = array.FirstOrDefault(t => t["controlId"].ToString().ToUpper() == lay.Name.ToString().Trim().ToUpper());
+                        if (john != null)
+                        {
+                            string controlId = john["controlId"].ToString();
+                            string controlXml = john["controlXml"].ToString();
+                            byte[] byteArray = Encoding.UTF8.GetBytes(controlXml);
+                            using (var stream = new MemoryStream(byteArray))
+                            {
+                                lay.RestoreLayoutFromStream(stream);
+                            }
+                        }
+                    }
+                    foreach (SplitContainerControl spt in spcList)
+                    {
+                        JToken john = array.FirstOrDefault(t => t["controlId"].ToString().ToUpper() == spt.Name.ToString().Trim().ToUpper());
+                        if (john != null)
+                        {
+                            string controlId = john["controlId"].ToString();
+                            string controlXml = john["controlXml"].ToString();
+                            // string splitterPosition = john["splitterPosition"].ToString();
+                            byte[] byteArray = Encoding.UTF8.GetBytes(controlXml);
+                            using (var stream = new MemoryStream(byteArray))
+                            {
+                                spt.RestoreLayoutFromStream(stream);
+                            }
+                            // spt.Horizontal = false;
+                            spt.Panel1.AutoScroll = false;
+                            spt.Panel2.AutoScroll = false;
+                            //spt.Panel1.MaximumSize = new System.Drawing.Size(spt.Panel1.Width, 100);
+                            // spt.SplitterPosition = int.Parse( splitterPosition);
+                            spt.ShowSplitGlyph = DevExpress.Utils.DefaultBoolean.True;
+                            if (spt.Name.Contains("Mx"))
+                                spt.FixedPanel = DevExpress.XtraEditors.SplitFixedPanel.Panel1;
+                            else
+                                spt.FixedPanel = DevExpress.XtraEditors.SplitFixedPanel.Panel2;
+
+                        }
+                    }
+                    //璁剧疆鏌ヨ鏉′欢beg
+                    GridControl gcMain = parentForm.Controls.Find("gcMain1", true).OfType<GridControl>().FirstOrDefault();
+                    if (gcMain != null)
+                    {
+                        GridView gv1 = gcMain.MainView as GridView;
+                        if (gv1 != null)
+                        {
+                            foreach (var a in _job["rtnData"]["list2"])
+                            {
+                                string _gvColName = a["gvColName"].ToString();
+                                string _sqlField = a["sqlField"].ToString();
+                                string _sqlFieldType = a["sqlFieldType"].ToString();
+                                var column = gv1.Columns.Cast<DevExpress.XtraGrid.Columns.GridColumn>()
+                                                .FirstOrDefault(c => c.Name == _gvColName);
+                                if (column != null)
+                                {
+                                    column.Tag = _sqlField;
+                                    column.UnboundExpression = _sqlFieldType;
+                                }
+                            }
+                        }
+                    }
+                    //璁剧疆鏌ヨ鏉′欢end
+                }
+                else
+                    ToolBox.MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnMsg);
+            }
+            catch (Exception ex)
+            {
+                ToolBox.MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
+            }
+        }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3