From 5b419c5a4fd892b1777e8c5ac584bf2df3cbbb3e Mon Sep 17 00:00:00 2001
From: lu <99954486@qq.com>
Date: 星期五, 28 二月 2025 16:32:12 +0800
Subject: [PATCH] 布局

---
 DevApp/Gs.DevApp/UserControl/UcToolBarMenu.cs |  169 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 153 insertions(+), 16 deletions(-)

diff --git a/DevApp/Gs.DevApp/UserControl/UcToolBarMenu.cs b/DevApp/Gs.DevApp/UserControl/UcToolBarMenu.cs
index 00a0424..aa42348 100644
--- a/DevApp/Gs.DevApp/UserControl/UcToolBarMenu.cs
+++ b/DevApp/Gs.DevApp/UserControl/UcToolBarMenu.cs
@@ -2,17 +2,18 @@
 using System.Collections.Generic;
 using System.Configuration;
 using System.Data;
+using System.IO;
 using System.Linq;
 using System.Net;
-using System.Windows.Controls.Primitives;
+using System.Text;
 using System.Windows.Forms;
 using DevExpress.XtraBars;
-using DevExpress.XtraBars.Commands;
 using DevExpress.XtraEditors;
+using DevExpress.XtraEditors.TextEditController;
 using DevExpress.XtraGrid;
-using DevExpress.XtraGrid.Columns;
-using DevExpress.XtraGrid.Menu;
 using DevExpress.XtraGrid.Views.Grid;
+using DevExpress.XtraLayout;
+using Gs.DevApp.DevFrm.QC.Models;
 using Gs.DevApp.DevFrm.Rpt;
 using Gs.DevApp.DevFrm.Sys;
 using Gs.DevApp.Entity;
@@ -664,19 +665,13 @@
             string _formNamespace = parentForm.GetType().FullName;
             if (parentForm != null)
             {
-                List<DevExpress.XtraGrid.Views.Grid.GridView> gvList = new List<DevExpress.XtraGrid.Views.Grid.GridView>();
-                GridControl gcMain = parentForm.Controls.Find("gcMain", true).OfType<GridControl>().FirstOrDefault();
-                if (gcMain != null) {
-                    GridView gv1 = gcMain.MainView as GridView;
-                    if (gv1 != null)
-                    {
-                        gvList.Add(gv1);
-                    }
-                }
-                Gs.DevApp.UserControl.showLayOut DevFrm = new showLayOut(_formNamespace, gvList);
+                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();
             }
-            if (btnLayoutClick != null) btnLayoutClick(this, ee);
+            //if (btnLayoutClick != null) btnLayoutClick(this, ee);
         }
         private void _enabledBtn(List<string> lstBtn)
         {
@@ -803,6 +798,7 @@
                 //榛樿鍚敤鐨勬寜閽�
                 _enabledList.Add(btnLoad.Name);
                 _enabledList.Add(btnHelp.Name);
+                _enabledList.Add(btnLayout.Name);
                 _enabledBtn(_enabledList);
             }
             catch (Exception ex)
@@ -996,7 +992,7 @@
         public event EventHandler btnWgClick;
 
 
-        public event EventHandler btnLayoutClick;
+        //public event EventHandler btnLayoutClick;
 
         #endregion
 
@@ -1041,5 +1037,146 @@
         #endregion
 
 
+
+        /// <summary>
+        /// 鏌ユ壘gridView
+        /// </summary>
+        /// <returns></returns>
+        private List<DevExpress.XtraGrid.Views.Grid.GridView> getGvList()
+        {
+            Form parentForm = this.Parent as Form;
+            List<DevExpress.XtraGrid.Views.Grid.GridView> gvList = new List<DevExpress.XtraGrid.Views.Grid.GridView>();
+            //鏌ユ壘gridview,涓婚〉闈�
+            GridControl gcMain = parentForm.Controls.Find("gcMain", true).OfType<GridControl>().FirstOrDefault();
+            if (gcMain != null)
+            {
+                GridView gv1 = gcMain.MainView as GridView;
+                if (gv1 != null)
+                {
+                    gvList.Add(gv1);
+                }
+            }
+            return gvList;
+        }
+        /// <summary>
+        /// 鏌ユ壘LayoutControl
+        /// </summary>
+        /// <returns></returns>
+        private List<DevExpress.XtraLayout.LayoutControl> getLayList()
+        {
+            Form parentForm = this.Parent as Form;
+            List<DevExpress.XtraLayout.LayoutControl> layList = new List<DevExpress.XtraLayout.LayoutControl>();
+            //DevExpress.XtraLayout.LayoutControl lay1 = parentForm.Controls.Find("lay1", true).OfType<DevExpress.XtraLayout.LayoutControl>().FirstOrDefault();
+            //if (lay1 != null)
+            //{
+            //    layList.Add(lay1);
+            //}
+            DevExpress.XtraLayout.LayoutControl lay2 = parentForm.Controls.Find("lay2", 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 = this.Parent as Form;
+            List<DevExpress.XtraEditors.SplitContainerControl> spcList = new List<DevExpress.XtraEditors.SplitContainerControl>();
+            DevExpress.XtraEditors.SplitContainerControl spc1 = parentForm.Controls.Find("spc1", true).OfType<DevExpress.XtraEditors.SplitContainerControl>().FirstOrDefault();
+            DevExpress.XtraEditors.SplitContainerControl spc2 = parentForm.Controls.Find("spc2", true).OfType<DevExpress.XtraEditors.SplitContainerControl>().FirstOrDefault();
+            if (spc1 != null)
+            {
+                spcList.Add(spc1);
+            }
+            if (spc2 != null)
+            {
+                spcList.Add(spc2);
+            }
+            return spcList;
+        }
+
+        public void getXmlConfig()
+        {
+            Form parentForm = this.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();
+                            byte[] byteArray = Encoding.UTF8.GetBytes(controlXml);
+                            using (var stream = new MemoryStream(byteArray))
+                            {
+                                spt.RestoreLayoutFromStream(stream);
+                            }
+                        }
+                    }
+                }
+                else
+                    ToolBox.MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnMsg);
+            }
+            catch (Exception ex)
+            {
+                ToolBox.MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
+            }
+        }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3