From f064d6138dc73d8f54c66f0c6d3242d0376c71b4 Mon Sep 17 00:00:00 2001
From: cdk <2441919651@qq.com>
Date: 星期五, 04 七月 2025 13:36:02 +0800
Subject: [PATCH] 增加倒冲欠料

---
 DevApp/Gs.DevApp/DevFrm/Rpt/Frm_MesQL.Designer.cs |  280 +++++++++++++++++
 DevApp/Gs.DevApp/DevFrm/Rpt/QLCX.cs               |   42 ++
 DevApp/Gs.DevApp/DevFrm/Rpt/QLCX.resx             |  120 +++++++
 DevApp/Gs.DevApp/DevFrm/Rpt/Frm_MesQL.cs          |  232 ++++++++++++++
 DevApp/Gs.DevApp/DevFrm/Rpt/QLCX.Designer.cs      |  143 ++++++++
 DevApp/Gs.DevApp/Gs.DevApp.csproj                 |   18 +
 DevApp/Gs.DevApp/DevFrm/Rpt/Frm_MesQL.resx        |  123 +++++++
 7 files changed, 958 insertions(+), 0 deletions(-)

diff --git a/DevApp/Gs.DevApp/DevFrm/Rpt/Frm_MesQL.Designer.cs b/DevApp/Gs.DevApp/DevFrm/Rpt/Frm_MesQL.Designer.cs
new file mode 100644
index 0000000..1bd02d9
--- /dev/null
+++ b/DevApp/Gs.DevApp/DevFrm/Rpt/Frm_MesQL.Designer.cs
@@ -0,0 +1,280 @@
+锘縩amespace Gs.DevApp.DevFrm.Rpt
+{
+    partial class Frm_MesQL
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            this.toolBarMenu1 = new Gs.DevApp.UserControl.UcToolBarMenu();
+            this.xtraTabControl1 = new DevExpress.XtraTab.XtraTabControl();
+            this.xtraTabPage1 = new DevExpress.XtraTab.XtraTabPage();
+            this.split1 = new DevExpress.XtraEditors.SplitContainerControl();
+            this.gcMain1 = new DevExpress.XtraGrid.GridControl();
+            this.gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
+            this.pageBar1 = new UserControls.Data.UcPageBar();
+            this.tips = new DevExpress.Utils.ToolTipController(this.components);
+            this.gridColumn1 = new DevExpress.XtraGrid.Columns.GridColumn();
+            this.gridColumn2 = new DevExpress.XtraGrid.Columns.GridColumn();
+            this.gridColumn3 = new DevExpress.XtraGrid.Columns.GridColumn();
+            this.gridColumn4 = new DevExpress.XtraGrid.Columns.GridColumn();
+            this.gridColumn5 = new DevExpress.XtraGrid.Columns.GridColumn();
+            this.gridColumn6 = new DevExpress.XtraGrid.Columns.GridColumn();
+            this.gridColumn7 = new DevExpress.XtraGrid.Columns.GridColumn();
+            ((System.ComponentModel.ISupportInitialize)(this.xtraTabControl1)).BeginInit();
+            this.xtraTabControl1.SuspendLayout();
+            this.xtraTabPage1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.split1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.split1.Panel1)).BeginInit();
+            this.split1.Panel1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.split1.Panel2)).BeginInit();
+            this.split1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.gcMain1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.gridView1)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // toolBarMenu1
+            // 
+            this.toolBarMenu1.chkParameter = null;
+            this.toolBarMenu1.currentAction = null;
+            this.toolBarMenu1.defaultActions = null;
+            this.toolBarMenu1.Dock = System.Windows.Forms.DockStyle.Top;
+            this.toolBarMenu1.guidKey = null;
+            this.toolBarMenu1.isSetBtn = false;
+            this.toolBarMenu1.Location = new System.Drawing.Point(0, 0);
+            this.toolBarMenu1.Margin = new System.Windows.Forms.Padding(5);
+            this.toolBarMenu1.Name = "toolBarMenu1";
+            this.toolBarMenu1.rptParameter = null;
+            this.toolBarMenu1.Size = new System.Drawing.Size(1450, 98);
+            this.toolBarMenu1.TabIndex = 0;
+            this.toolBarMenu1.xlsInService = null;
+            this.toolBarMenu1.xlsOutParameter = "xlsOut_items{}";
+            // 
+            // xtraTabControl1
+            // 
+            this.xtraTabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.xtraTabControl1.Location = new System.Drawing.Point(0, 98);
+            this.xtraTabControl1.Margin = new System.Windows.Forms.Padding(4);
+            this.xtraTabControl1.Name = "xtraTabControl1";
+            this.xtraTabControl1.SelectedTabPage = this.xtraTabPage1;
+            this.xtraTabControl1.Size = new System.Drawing.Size(1450, 736);
+            this.xtraTabControl1.TabIndex = 3;
+            this.xtraTabControl1.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
+            this.xtraTabPage1});
+            // 
+            // xtraTabPage1
+            // 
+            this.xtraTabPage1.Controls.Add(this.split1);
+            this.xtraTabPage1.Margin = new System.Windows.Forms.Padding(4);
+            this.xtraTabPage1.Name = "xtraTabPage1";
+            this.xtraTabPage1.Size = new System.Drawing.Size(1448, 698);
+            this.xtraTabPage1.Text = "鏁版嵁鍒楄〃";
+            // 
+            // split1
+            // 
+            this.split1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.split1.FixedPanel = DevExpress.XtraEditors.SplitFixedPanel.Panel2;
+            this.split1.Horizontal = false;
+            this.split1.Location = new System.Drawing.Point(0, 0);
+            this.split1.Margin = new System.Windows.Forms.Padding(4);
+            this.split1.Name = "split1";
+            // 
+            // split1.Panel1
+            // 
+            this.split1.Panel1.Controls.Add(this.gcMain1);
+            this.split1.Panel1.Controls.Add(this.pageBar1);
+            this.split1.Panel1.Text = "Panel1";
+            // 
+            // split1.Panel2
+            // 
+            this.split1.Panel2.Text = "Panel2";
+            this.split1.ShowSplitGlyph = DevExpress.Utils.DefaultBoolean.True;
+            this.split1.Size = new System.Drawing.Size(1448, 698);
+            this.split1.SplitterPosition = 0;
+            this.split1.TabIndex = 0;
+            // 
+            // gcMain1
+            // 
+            this.gcMain1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.gcMain1.EmbeddedNavigator.Margin = new System.Windows.Forms.Padding(4);
+            this.gcMain1.Location = new System.Drawing.Point(0, 0);
+            this.gcMain1.MainView = this.gridView1;
+            this.gcMain1.Margin = new System.Windows.Forms.Padding(4);
+            this.gcMain1.Name = "gcMain1";
+            this.gcMain1.Size = new System.Drawing.Size(1448, 635);
+            this.gcMain1.TabIndex = 2;
+            this.gcMain1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
+            this.gridView1});
+            // 
+            // gridView1
+            // 
+            this.gridView1.Appearance.HeaderPanel.Options.UseTextOptions = true;
+            this.gridView1.Appearance.HeaderPanel.TextOptions.WordWrap = DevExpress.Utils.WordWrap.Wrap;
+            this.gridView1.Appearance.Row.Options.UseFont = true;
+            this.gridView1.Appearance.Row.Options.UseTextOptions = true;
+            this.gridView1.Appearance.Row.TextOptions.WordWrap = DevExpress.Utils.WordWrap.Wrap;
+            this.gridView1.ColumnPanelRowHeight = 61;
+            this.gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] {
+            this.gridColumn1,
+            this.gridColumn2,
+            this.gridColumn3,
+            this.gridColumn4,
+            this.gridColumn5,
+            this.gridColumn6,
+            this.gridColumn7});
+            this.gridView1.DetailHeight = 428;
+            this.gridView1.GridControl = this.gcMain1;
+            this.gridView1.HorzScrollVisibility = DevExpress.XtraGrid.Views.Base.ScrollVisibility.Always;
+            this.gridView1.IndicatorWidth = 62;
+            this.gridView1.Name = "gridView1";
+            this.gridView1.OptionsFind.ShowSearchNavButtons = false;
+            this.gridView1.OptionsView.RowAutoHeight = true;
+            this.gridView1.OptionsView.ShowAutoFilterRow = true;
+            this.gridView1.OptionsView.ShowGroupPanel = false;
+            // 
+            // pageBar1
+            // 
+            this.pageBar1.CurrentPage = 1;
+            this.pageBar1.Dock = System.Windows.Forms.DockStyle.Bottom;
+            this.pageBar1.Location = new System.Drawing.Point(0, 635);
+            this.pageBar1.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
+            this.pageBar1.Name = "pageBar1";
+            this.pageBar1.RecordCount = 0;
+            this.pageBar1.Size = new System.Drawing.Size(1448, 48);
+            this.pageBar1.TabIndex = 4;
+            this.pageBar1.TotalPages = 0;
+            // 
+            // gridColumn1
+            // 
+            this.gridColumn1.Caption = "鐗╂枡缂栫爜";
+            this.gridColumn1.FieldName = "鐗╂枡缂栫爜";
+            this.gridColumn1.MinWidth = 30;
+            this.gridColumn1.Name = "gridColumn1";
+            this.gridColumn1.Visible = true;
+            this.gridColumn1.VisibleIndex = 0;
+            this.gridColumn1.Width = 112;
+            // 
+            // gridColumn2
+            // 
+            this.gridColumn2.Caption = "鐗╂枡鍚嶇О";
+            this.gridColumn2.FieldName = "鐗╂枡鍚嶇О";
+            this.gridColumn2.MinWidth = 30;
+            this.gridColumn2.Name = "gridColumn2";
+            this.gridColumn2.Visible = true;
+            this.gridColumn2.VisibleIndex = 1;
+            this.gridColumn2.Width = 112;
+            // 
+            // gridColumn3
+            // 
+            this.gridColumn3.Caption = "鐗╂枡瑙勬牸";
+            this.gridColumn3.FieldName = "鐗╂枡瑙勬牸";
+            this.gridColumn3.MinWidth = 30;
+            this.gridColumn3.Name = "gridColumn3";
+            this.gridColumn3.Visible = true;
+            this.gridColumn3.VisibleIndex = 2;
+            this.gridColumn3.Width = 112;
+            // 
+            // gridColumn4
+            // 
+            this.gridColumn4.Caption = "鎬婚渶棰嗛噺";
+            this.gridColumn4.FieldName = "鎬婚渶棰嗛噺";
+            this.gridColumn4.MinWidth = 30;
+            this.gridColumn4.Name = "gridColumn4";
+            this.gridColumn4.Visible = true;
+            this.gridColumn4.VisibleIndex = 3;
+            this.gridColumn4.Width = 112;
+            // 
+            // gridColumn5
+            // 
+            this.gridColumn5.Caption = "鎬诲凡棰嗛噺";
+            this.gridColumn5.FieldName = "鎬诲凡棰嗛噺";
+            this.gridColumn5.MinWidth = 30;
+            this.gridColumn5.Name = "gridColumn5";
+            this.gridColumn5.Visible = true;
+            this.gridColumn5.VisibleIndex = 4;
+            this.gridColumn5.Width = 112;
+            // 
+            // gridColumn6
+            // 
+            this.gridColumn6.Caption = "褰撳墠搴撳瓨";
+            this.gridColumn6.FieldName = "褰撳墠搴撳瓨";
+            this.gridColumn6.MinWidth = 30;
+            this.gridColumn6.Name = "gridColumn6";
+            this.gridColumn6.Visible = true;
+            this.gridColumn6.VisibleIndex = 5;
+            this.gridColumn6.Width = 112;
+            // 
+            // gridColumn7
+            // 
+            this.gridColumn7.Caption = "鎬绘瑺鏂欐暟閲�";
+            this.gridColumn7.FieldName = "鎬绘瑺鏂欐暟閲�";
+            this.gridColumn7.MinWidth = 30;
+            this.gridColumn7.Name = "gridColumn7";
+            this.gridColumn7.Visible = true;
+            this.gridColumn7.VisibleIndex = 6;
+            this.gridColumn7.Width = 112;
+            // 
+            // Frm_MesQL
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 22F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(1450, 834);
+            this.Controls.Add(this.xtraTabControl1);
+            this.Controls.Add(this.toolBarMenu1);
+            this.Margin = new System.Windows.Forms.Padding(4);
+            this.Name = "Frm_MesQL";
+            this.Text = "鐗╂枡淇℃伅";
+            ((System.ComponentModel.ISupportInitialize)(this.xtraTabControl1)).EndInit();
+            this.xtraTabControl1.ResumeLayout(false);
+            this.xtraTabPage1.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.split1.Panel1)).EndInit();
+            this.split1.Panel1.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.split1.Panel2)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.split1)).EndInit();
+            this.split1.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.gcMain1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.gridView1)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+        #endregion
+        private UserControl.UcToolBarMenu toolBarMenu1;
+        private DevExpress.XtraTab.XtraTabControl xtraTabControl1;
+        private DevExpress.XtraTab.XtraTabPage xtraTabPage1;
+        private DevExpress.XtraEditors.SplitContainerControl split1;
+        private DevExpress.XtraGrid.GridControl gcMain1;
+        private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
+        private UserControls.Data.UcPageBar pageBar1;
+        private DevExpress.Utils.ToolTipController tips;
+        private DevExpress.XtraGrid.Columns.GridColumn gridColumn1;
+        private DevExpress.XtraGrid.Columns.GridColumn gridColumn2;
+        private DevExpress.XtraGrid.Columns.GridColumn gridColumn3;
+        private DevExpress.XtraGrid.Columns.GridColumn gridColumn4;
+        private DevExpress.XtraGrid.Columns.GridColumn gridColumn5;
+        private DevExpress.XtraGrid.Columns.GridColumn gridColumn6;
+        private DevExpress.XtraGrid.Columns.GridColumn gridColumn7;
+    }
+}
\ No newline at end of file
diff --git a/DevApp/Gs.DevApp/DevFrm/Rpt/Frm_MesQL.cs b/DevApp/Gs.DevApp/DevFrm/Rpt/Frm_MesQL.cs
new file mode 100644
index 0000000..e9671d3
--- /dev/null
+++ b/DevApp/Gs.DevApp/DevFrm/Rpt/Frm_MesQL.cs
@@ -0,0 +1,232 @@
+锘�
+using DevExpress.Pdf.Native.BouncyCastle.Utilities.Collections;
+using DevExpress.Utils;
+using DevExpress.Utils.DirectXPaint;
+using DevExpress.XtraEditors;
+using DevExpress.XtraGrid.Columns;
+using Gs.DevApp.DevFrm.BasicData;
+using Gs.DevApp.Entity;
+using Gs.DevApp.ToolBox;
+using Gs.DevApp.UserControl;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Data.SqlTypes;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Gs.DevApp.DevFrm.Rpt
+{
+	public partial class Frm_MesQL: DevExpress.XtraEditors.XtraForm
+	{
+        private List<FilterEntity> _filterList = new List<FilterEntity>();
+        private readonly string _webServiceName = "QL/";
+
+        public Frm_MesQL()
+        {
+            InitializeComponent();
+            toolBarMenu1.btnLoadClick += ToolBarMenu1_btnLoadClick;
+            toolBarMenu1.btnQueryClick += ToolBarMenu1_btnQueryClick;
+          
+            this.toolBarMenu1.getXmlConfig();
+            Gs.DevApp.ToolBox.UtilityHelper.SetGridViewParameter(gridView1, null, null, "", "", (value) =>
+            {
+           
+            }, tips);
+
+            getPageList("0", DateTime.Now.AddMonths(-1).ToString(), DateTime.Now.ToString());
+
+
+        }
+
+        private void GridView1_ColumnFilterChanged(object sender, EventArgs e)
+        {
+            _filterList = Gs.DevApp.ToolBox.UtilityHelper.GetDilter(gridView1.Columns, gridView1);
+            Task.Delay(100);
+            getPageList("0", DateTime.Now.AddMonths(-1).ToString(), DateTime.Now.ToString());
+        }
+
+
+        /// <summary>
+        ///     鏌ヨ浜嬩欢
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void ToolBarMenu1_btnQueryClick(object sender, EventArgs e)
+        {
+            var frm = new QLCX();
+            //璧嬪�肩粰鏄庣粏琛�
+            frm.UpdateParent += (ss, ee) =>
+            {
+                var lst = new List<string>();
+                lst = ee.StringList;
+                string orgId = string.IsNullOrEmpty(lst[0]) ? "0" : lst[0];
+                string beginDate = string.IsNullOrEmpty(lst[1])? DateTime.Now.AddMonths(-1).ToString() : lst[1];
+                string endDate = string.IsNullOrEmpty(lst[2]) ? DateTime.Now.ToString() : lst[2];
+                getPageList(orgId, beginDate, endDate);
+            };
+            frm.ShowDialog();
+        }
+
+        /// <summary>
+        ///     鍒锋柊浜嬩欢
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void ToolBarMenu1_btnLoadClick(object sender, EventArgs e)
+        {
+
+            //getPageList(1);
+            getPageList("0", DateTime.Now.AddMonths(-1).ToString(), DateTime.Now.ToString());
+
+        }
+
+        /// <summary>
+        /// </summary>
+        /// <param name="curPage">绗嚑椤�</param>
+        /// <param name="pageSize">姣忛〉鍑犳潯</param>
+        private void getPageList(string orgId, string beginDate,string endDate)
+        {
+            var _obj = new
+            {
+                orgId = orgId,//涓诲缓
+                beginDate = beginDate,
+                endDate = endDate
+            };
+            gcMain1.DataSource = null; var _sbSqlWhere = UtilityHelper.GetSearchWhere(_filterList);
+
+            try
+            {
+                var strReturn = UtilityHelper.HttpPost("",
+                    _webServiceName + "GetQLList", JsonConvert.SerializeObject(_obj));
+                ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strReturn);
+                if (_rtn.rtnCode > 0)
+                {
+                    dynamic dy = _rtn.rtnData;
+                    JObject _job = JObject.Parse(strReturn);
+                    JArray array = new JArray();
+                    foreach (var a in _job["rtnData"]["list"])
+                    {
+                        array.Add(a);
+                    }
+                    DataTable dt = JsonConvert.DeserializeObject<DataTable>(array.ToString());
+
+
+                    List<DateTime> allDates = new List<DateTime>();
+                    for (DateTime date = DateTime.Parse(beginDate); date < DateTime.Parse(endDate); date = date.AddDays(1))
+                    {
+                        allDates.Add(date);
+                    }
+                    gridView1.Columns.Clear();
+
+                    // 娣诲姞鍥哄畾鍒�
+                    AddFixedColumns();
+
+                    // 娣诲姞鏃ユ湡鍒�
+                    foreach (DateTime date in allDates)
+                    {
+                        string columnName = date.ToString("yyyy-MM-dd");
+
+                        // 濡傛灉鏁版嵁琛ㄤ腑瀛樺湪璇ュ垪
+                        if (dt.Columns.Contains(columnName))
+                        {
+                            GridColumn colDate = new GridColumn();
+                            colDate.FieldName = columnName;
+                            colDate.Caption = date.ToString("MM-dd");
+                            colDate.Visible = true;
+                            colDate.OptionsColumn.AllowEdit = false;
+                            colDate.Width = 60;
+
+                            gridView1.Columns.Add(colDate);
+                        }
+                    }
+
+
+                    gcMain1.BindingContext = new BindingContext();
+                    gridView1.ColumnFilterChanged -= GridView1_ColumnFilterChanged;
+                    if (dt.Rows.Count > 0)
+                    {
+                        gcMain1.DataSource = dt;
+                        gcMain1.ForceInitialize();
+                        gridView1.BestFitColumns(); Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gridView1);
+                    }
+                    else
+                        UtilityHelper.SetDefaultTable(gcMain1, gridView1);
+
+                }
+                else
+                    ToolBox.MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnMsg);
+            }
+            catch (Exception ex)
+            {
+                MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
+            }
+        }
+
+        private void AddFixedColumns()
+        {
+            // 鐗╂枡缂栫爜
+            GridColumn colMaterialCode = new GridColumn();
+            colMaterialCode.FieldName = "鐗╂枡缂栫爜";
+            colMaterialCode.Caption = "鐗╂枡缂栫爜";
+            colMaterialCode.Visible = true;
+            colMaterialCode.OptionsColumn.AllowEdit = false;
+            gridView1.Columns.Add(colMaterialCode);
+
+            // 鐗╂枡鍚嶇О
+            GridColumn colMaterialName = new GridColumn();
+            colMaterialName.FieldName = "鐗╂枡鍚嶇О";
+            colMaterialName.Caption = "鐗╂枡鍚嶇О";
+            colMaterialName.Visible = true;
+            colMaterialName.OptionsColumn.AllowEdit = false;
+            gridView1.Columns.Add(colMaterialName);
+
+            // 鐗╂枡瑙勬牸
+            GridColumn colMaterialSpec = new GridColumn();
+            colMaterialSpec.FieldName = "鐗╂枡瑙勬牸";
+            colMaterialSpec.Caption = "鐗╂枡瑙勬牸";
+            colMaterialSpec.Visible = true;
+            colMaterialSpec.OptionsColumn.AllowEdit = false;
+            gridView1.Columns.Add(colMaterialSpec);
+
+            // 鎬婚渶棰嗛噺
+            GridColumn colTotalRequired = new GridColumn();
+            colTotalRequired.FieldName = "鎬婚渶棰嗛噺";
+            colTotalRequired.Caption = "鎬婚渶棰嗛噺";
+            colTotalRequired.Visible = true;
+            colTotalRequired.OptionsColumn.AllowEdit = false;
+            gridView1.Columns.Add(colTotalRequired);
+
+            // 鎬诲凡棰嗛噺
+            GridColumn colTotalReceived = new GridColumn();
+            colTotalReceived.FieldName = "鎬诲凡棰嗛噺";
+            colTotalReceived.Caption = "鎬诲凡棰嗛噺";
+            colTotalReceived.Visible = true;
+            colTotalReceived.OptionsColumn.AllowEdit = false;
+            gridView1.Columns.Add(colTotalReceived);
+
+            // 褰撳墠搴撳瓨
+            GridColumn colCurrentStock = new GridColumn();
+            colCurrentStock.FieldName = "褰撳墠搴撳瓨";
+            colCurrentStock.Caption = "褰撳墠搴撳瓨";
+            colCurrentStock.Visible = true;
+            colCurrentStock.OptionsColumn.AllowEdit = false;
+            gridView1.Columns.Add(colCurrentStock);
+
+            // 鎬绘瑺鏂欐暟閲�
+            GridColumn colTotalShortage = new GridColumn();
+            colTotalShortage.FieldName = "鎬绘瑺鏂欐暟閲�";
+            colTotalShortage.Caption = "鎬绘瑺鏂欐暟閲�";
+            colTotalShortage.Visible = true;
+            colTotalShortage.OptionsColumn.AllowEdit = false;
+            gridView1.Columns.Add(colTotalShortage);
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/DevApp/Gs.DevApp/DevFrm/Rpt/Frm_MesQL.resx b/DevApp/Gs.DevApp/DevFrm/Rpt/Frm_MesQL.resx
new file mode 100644
index 0000000..5160e8b
--- /dev/null
+++ b/DevApp/Gs.DevApp/DevFrm/Rpt/Frm_MesQL.resx
@@ -0,0 +1,123 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="tips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+</root>
\ No newline at end of file
diff --git a/DevApp/Gs.DevApp/DevFrm/Rpt/QLCX.Designer.cs b/DevApp/Gs.DevApp/DevFrm/Rpt/QLCX.Designer.cs
new file mode 100644
index 0000000..5ad5b21
--- /dev/null
+++ b/DevApp/Gs.DevApp/DevFrm/Rpt/QLCX.Designer.cs
@@ -0,0 +1,143 @@
+锘縩amespace Gs.DevApp.DevFrm.Rpt
+{
+    partial class QLCX
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.ucLookOrg1 = new Gs.DevApp.UserControl.UcLookOrg();
+            this.dateEdit1 = new DevExpress.XtraEditors.DateEdit();
+            this.dateEdit2 = new DevExpress.XtraEditors.DateEdit();
+            this.simpleButton1 = new DevExpress.XtraEditors.SimpleButton();
+            this.labelControl1 = new DevExpress.XtraEditors.LabelControl();
+            this.labelControl2 = new DevExpress.XtraEditors.LabelControl();
+            this.labelControl3 = new DevExpress.XtraEditors.LabelControl();
+            ((System.ComponentModel.ISupportInitialize)(this.dateEdit1.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dateEdit1.Properties.CalendarTimeProperties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dateEdit2.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dateEdit2.Properties.CalendarTimeProperties)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // ucLookOrg1
+            // 
+            this.ucLookOrg1.IsReadly = false;
+            this.ucLookOrg1.Location = new System.Drawing.Point(209, 45);
+            this.ucLookOrg1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.ucLookOrg1.Name = "ucLookOrg1";
+            this.ucLookOrg1.Size = new System.Drawing.Size(386, 37);
+            this.ucLookOrg1.TabIndex = 0;
+            // 
+            // dateEdit1
+            // 
+            this.dateEdit1.EditValue = null;
+            this.dateEdit1.Location = new System.Drawing.Point(209, 99);
+            this.dateEdit1.Name = "dateEdit1";
+            this.dateEdit1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+            this.dateEdit1.Properties.CalendarTimeProperties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+            this.dateEdit1.Size = new System.Drawing.Size(386, 28);
+            this.dateEdit1.TabIndex = 1;
+            // 
+            // dateEdit2
+            // 
+            this.dateEdit2.EditValue = null;
+            this.dateEdit2.Location = new System.Drawing.Point(209, 152);
+            this.dateEdit2.Name = "dateEdit2";
+            this.dateEdit2.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+            this.dateEdit2.Properties.CalendarTimeProperties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+            this.dateEdit2.Size = new System.Drawing.Size(386, 28);
+            this.dateEdit2.TabIndex = 2;
+            // 
+            // simpleButton1
+            // 
+            this.simpleButton1.Location = new System.Drawing.Point(255, 223);
+            this.simpleButton1.Name = "simpleButton1";
+            this.simpleButton1.Size = new System.Drawing.Size(137, 44);
+            this.simpleButton1.TabIndex = 3;
+            this.simpleButton1.Text = "鏌ヨ";
+            this.simpleButton1.Click += new System.EventHandler(this.simpleButton1_Click);
+            // 
+            // labelControl1
+            // 
+            this.labelControl1.Location = new System.Drawing.Point(65, 45);
+            this.labelControl1.Name = "labelControl1";
+            this.labelControl1.Size = new System.Drawing.Size(36, 22);
+            this.labelControl1.TabIndex = 4;
+            this.labelControl1.Text = "缁勭粐";
+            // 
+            // labelControl2
+            // 
+            this.labelControl2.Location = new System.Drawing.Point(65, 105);
+            this.labelControl2.Name = "labelControl2";
+            this.labelControl2.Size = new System.Drawing.Size(90, 22);
+            this.labelControl2.TabIndex = 5;
+            this.labelControl2.Text = "寮�濮嬫棩鏈燂細";
+            // 
+            // labelControl3
+            // 
+            this.labelControl3.Location = new System.Drawing.Point(65, 158);
+            this.labelControl3.Name = "labelControl3";
+            this.labelControl3.Size = new System.Drawing.Size(90, 22);
+            this.labelControl3.TabIndex = 6;
+            this.labelControl3.Text = "缁撴潫鏃ユ湡锛�";
+            // 
+            // QLCX
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 22F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(661, 312);
+            this.Controls.Add(this.labelControl3);
+            this.Controls.Add(this.labelControl2);
+            this.Controls.Add(this.labelControl1);
+            this.Controls.Add(this.simpleButton1);
+            this.Controls.Add(this.dateEdit2);
+            this.Controls.Add(this.dateEdit1);
+            this.Controls.Add(this.ucLookOrg1);
+            this.Name = "QLCX";
+            this.Text = "QLCX";
+            ((System.ComponentModel.ISupportInitialize)(this.dateEdit1.Properties.CalendarTimeProperties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dateEdit1.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dateEdit2.Properties.CalendarTimeProperties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dateEdit2.Properties)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private UserControl.UcLookOrg ucLookOrg1;
+        private DevExpress.XtraEditors.DateEdit dateEdit1;
+        private DevExpress.XtraEditors.DateEdit dateEdit2;
+        private DevExpress.XtraEditors.SimpleButton simpleButton1;
+        private DevExpress.XtraEditors.LabelControl labelControl1;
+        private DevExpress.XtraEditors.LabelControl labelControl2;
+        private DevExpress.XtraEditors.LabelControl labelControl3;
+    }
+}
\ No newline at end of file
diff --git a/DevApp/Gs.DevApp/DevFrm/Rpt/QLCX.cs b/DevApp/Gs.DevApp/DevFrm/Rpt/QLCX.cs
new file mode 100644
index 0000000..d5a387a
--- /dev/null
+++ b/DevApp/Gs.DevApp/DevFrm/Rpt/QLCX.cs
@@ -0,0 +1,42 @@
+锘縰sing DevExpress.XtraEditors;
+using Gs.DevApp.ToolBox;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Gs.DevApp.DevFrm.Rpt
+{
+    public partial class QLCX : DevExpress.XtraEditors.XtraForm
+    {
+        public QLCX()
+        {
+            InitializeComponent();
+        }
+
+        /// <summary>
+        ///     閫夋嫨鍚庣殑鍥炶皟浜嬩欢
+        /// </summary>
+        public event EventHandler<UpdateParentEventArgs> UpdateParent;
+
+        private void ucLookOrg2_Load(object sender, EventArgs e)
+        {
+
+        }
+
+        private void simpleButton1_Click(object sender, EventArgs e)
+        {
+            var list = new List<string>();
+            
+            list.Add(ucLookOrg1.GetCode());
+            list.Add(dateEdit1.EditValue?.ToString() ?? "");
+            list.Add(dateEdit2.EditValue?.ToString() ?? "");
+            UpdateParent?.Invoke(this, new UpdateParentEventArgs { StringList = list }); Close();
+        }
+    }
+}
\ No newline at end of file
diff --git a/DevApp/Gs.DevApp/DevFrm/Rpt/QLCX.resx b/DevApp/Gs.DevApp/DevFrm/Rpt/QLCX.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/DevApp/Gs.DevApp/DevFrm/Rpt/QLCX.resx
@@ -0,0 +1,120 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/DevApp/Gs.DevApp/Gs.DevApp.csproj b/DevApp/Gs.DevApp/Gs.DevApp.csproj
index f05124a..cecd65b 100644
--- a/DevApp/Gs.DevApp/Gs.DevApp.csproj
+++ b/DevApp/Gs.DevApp/Gs.DevApp.csproj
@@ -686,6 +686,18 @@
     <Compile Include="DevFrm\Rpt\CkYtmx.Designer.cs">
       <DependentUpon>CkYtmx.cs</DependentUpon>
     </Compile>
+    <Compile Include="DevFrm\Rpt\Frm_MesQL.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="DevFrm\Rpt\Frm_MesQL.Designer.cs">
+      <DependentUpon>Frm_MesQL.cs</DependentUpon>
+    </Compile>
+    <Compile Include="DevFrm\Rpt\QLCX.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="DevFrm\Rpt\QLCX.Designer.cs">
+      <DependentUpon>QLCX.cs</DependentUpon>
+    </Compile>
     <Compile Include="DevFrm\Sales\Frm_SalesDeliverDj.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -1636,6 +1648,12 @@
     <EmbeddedResource Include="DevFrm\Rpt\CkYtmx.resx">
       <DependentUpon>CkYtmx.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="DevFrm\Rpt\Frm_MesQL.resx">
+      <DependentUpon>Frm_MesQL.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="DevFrm\Rpt\QLCX.resx">
+      <DependentUpon>QLCX.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="DevFrm\Sales\Frm_SalesDeliverDj.resx">
       <DependentUpon>Frm_SalesDeliverDj.cs</DependentUpon>
     </EmbeddedResource>

--
Gitblit v1.9.3