Przeglądaj źródła

Add drag-and-drop to increase test results

cxs 2 miesięcy temu
rodzic
commit
c0b749fe1c

+ 4 - 1
OTSIncAMeasureApp/6-OTSDisplayTreeViewData/OTSSolutionWindow.cs

@@ -524,7 +524,10 @@ namespace OTSMeasureApp
         {
             //获得拖放中的节点
             TreeNode moveNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");
-
+            if (moveNode==null)
+            {
+                return;
+            }
             //设置拖动节点为工作样品节点
             string sWSampleName = moveNode.Text;
             if ("" == sWSampleName)

+ 63 - 59
OTSIncAMeasureApp/OTSIncAMeasureAppForm.Designer.cs

@@ -29,21 +29,21 @@
         private void InitializeComponent()
         {
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OTSIncAMeasureAppForm));
-            OTS.WinFormsUI.Docking.DockPanelSkin dockPanelSkin1 = new OTS.WinFormsUI.Docking.DockPanelSkin();
-            OTS.WinFormsUI.Docking.AutoHideStripSkin autoHideStripSkin1 = new OTS.WinFormsUI.Docking.AutoHideStripSkin();
-            OTS.WinFormsUI.Docking.DockPanelGradient dockPanelGradient1 = new OTS.WinFormsUI.Docking.DockPanelGradient();
-            OTS.WinFormsUI.Docking.TabGradient tabGradient1 = new OTS.WinFormsUI.Docking.TabGradient();
-            OTS.WinFormsUI.Docking.DockPaneStripSkin dockPaneStripSkin1 = new OTS.WinFormsUI.Docking.DockPaneStripSkin();
-            OTS.WinFormsUI.Docking.DockPaneStripGradient dockPaneStripGradient1 = new OTS.WinFormsUI.Docking.DockPaneStripGradient();
-            OTS.WinFormsUI.Docking.TabGradient tabGradient2 = new OTS.WinFormsUI.Docking.TabGradient();
-            OTS.WinFormsUI.Docking.DockPanelGradient dockPanelGradient2 = new OTS.WinFormsUI.Docking.DockPanelGradient();
-            OTS.WinFormsUI.Docking.TabGradient tabGradient3 = new OTS.WinFormsUI.Docking.TabGradient();
-            OTS.WinFormsUI.Docking.DockPaneStripToolWindowGradient dockPaneStripToolWindowGradient1 = new OTS.WinFormsUI.Docking.DockPaneStripToolWindowGradient();
-            OTS.WinFormsUI.Docking.TabGradient tabGradient4 = new OTS.WinFormsUI.Docking.TabGradient();
-            OTS.WinFormsUI.Docking.TabGradient tabGradient5 = new OTS.WinFormsUI.Docking.TabGradient();
-            OTS.WinFormsUI.Docking.DockPanelGradient dockPanelGradient3 = new OTS.WinFormsUI.Docking.DockPanelGradient();
-            OTS.WinFormsUI.Docking.TabGradient tabGradient6 = new OTS.WinFormsUI.Docking.TabGradient();
-            OTS.WinFormsUI.Docking.TabGradient tabGradient7 = new OTS.WinFormsUI.Docking.TabGradient();
+            OTS.WinFormsUI.Docking.DockPanelSkin dockPanelSkin2 = new OTS.WinFormsUI.Docking.DockPanelSkin();
+            OTS.WinFormsUI.Docking.AutoHideStripSkin autoHideStripSkin2 = new OTS.WinFormsUI.Docking.AutoHideStripSkin();
+            OTS.WinFormsUI.Docking.DockPanelGradient dockPanelGradient4 = new OTS.WinFormsUI.Docking.DockPanelGradient();
+            OTS.WinFormsUI.Docking.TabGradient tabGradient8 = new OTS.WinFormsUI.Docking.TabGradient();
+            OTS.WinFormsUI.Docking.DockPaneStripSkin dockPaneStripSkin2 = new OTS.WinFormsUI.Docking.DockPaneStripSkin();
+            OTS.WinFormsUI.Docking.DockPaneStripGradient dockPaneStripGradient2 = new OTS.WinFormsUI.Docking.DockPaneStripGradient();
+            OTS.WinFormsUI.Docking.TabGradient tabGradient9 = new OTS.WinFormsUI.Docking.TabGradient();
+            OTS.WinFormsUI.Docking.DockPanelGradient dockPanelGradient5 = new OTS.WinFormsUI.Docking.DockPanelGradient();
+            OTS.WinFormsUI.Docking.TabGradient tabGradient10 = new OTS.WinFormsUI.Docking.TabGradient();
+            OTS.WinFormsUI.Docking.DockPaneStripToolWindowGradient dockPaneStripToolWindowGradient2 = new OTS.WinFormsUI.Docking.DockPaneStripToolWindowGradient();
+            OTS.WinFormsUI.Docking.TabGradient tabGradient11 = new OTS.WinFormsUI.Docking.TabGradient();
+            OTS.WinFormsUI.Docking.TabGradient tabGradient12 = new OTS.WinFormsUI.Docking.TabGradient();
+            OTS.WinFormsUI.Docking.DockPanelGradient dockPanelGradient6 = new OTS.WinFormsUI.Docking.DockPanelGradient();
+            OTS.WinFormsUI.Docking.TabGradient tabGradient13 = new OTS.WinFormsUI.Docking.TabGradient();
+            OTS.WinFormsUI.Docking.TabGradient tabGradient14 = new OTS.WinFormsUI.Docking.TabGradient();
             this.rbNew = new System.Windows.Forms.RibbonButton();
             this.rbOpen = new System.Windows.Forms.RibbonButton();
             this.rbSave = new System.Windows.Forms.RibbonButton();
@@ -903,50 +903,50 @@
             this.dockPanel.Margin = new System.Windows.Forms.Padding(6, 7, 6, 7);
             this.dockPanel.Name = "dockPanel";
             this.dockPanel.Size = new System.Drawing.Size(1277, 541);
-            dockPanelGradient1.EndColor = System.Drawing.SystemColors.ControlLight;
-            dockPanelGradient1.StartColor = System.Drawing.SystemColors.ControlLight;
-            autoHideStripSkin1.DockStripGradient = dockPanelGradient1;
-            tabGradient1.EndColor = System.Drawing.SystemColors.Control;
-            tabGradient1.StartColor = System.Drawing.SystemColors.Control;
-            tabGradient1.TextColor = System.Drawing.SystemColors.ControlDarkDark;
-            autoHideStripSkin1.TabGradient = tabGradient1;
-            dockPanelSkin1.AutoHideStripSkin = autoHideStripSkin1;
-            tabGradient2.EndColor = System.Drawing.SystemColors.ControlLightLight;
-            tabGradient2.StartColor = System.Drawing.SystemColors.ControlLightLight;
-            tabGradient2.TextColor = System.Drawing.SystemColors.ControlText;
-            dockPaneStripGradient1.ActiveTabGradient = tabGradient2;
-            dockPanelGradient2.EndColor = System.Drawing.SystemColors.Control;
-            dockPanelGradient2.StartColor = System.Drawing.SystemColors.Control;
-            dockPaneStripGradient1.DockStripGradient = dockPanelGradient2;
-            tabGradient3.EndColor = System.Drawing.SystemColors.ControlLight;
-            tabGradient3.StartColor = System.Drawing.SystemColors.ControlLight;
-            tabGradient3.TextColor = System.Drawing.SystemColors.ControlText;
-            dockPaneStripGradient1.InactiveTabGradient = tabGradient3;
-            dockPaneStripSkin1.DocumentGradient = dockPaneStripGradient1;
-            tabGradient4.EndColor = System.Drawing.SystemColors.ActiveCaption;
-            tabGradient4.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
-            tabGradient4.StartColor = System.Drawing.SystemColors.GradientActiveCaption;
-            tabGradient4.TextColor = System.Drawing.SystemColors.ActiveCaptionText;
-            dockPaneStripToolWindowGradient1.ActiveCaptionGradient = tabGradient4;
-            tabGradient5.EndColor = System.Drawing.SystemColors.Control;
-            tabGradient5.StartColor = System.Drawing.SystemColors.Control;
-            tabGradient5.TextColor = System.Drawing.SystemColors.ControlText;
-            dockPaneStripToolWindowGradient1.ActiveTabGradient = tabGradient5;
-            dockPanelGradient3.EndColor = System.Drawing.SystemColors.ControlLight;
-            dockPanelGradient3.StartColor = System.Drawing.SystemColors.ControlLight;
-            dockPaneStripToolWindowGradient1.DockStripGradient = dockPanelGradient3;
-            tabGradient6.EndColor = System.Drawing.SystemColors.GradientInactiveCaption;
-            tabGradient6.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
-            tabGradient6.StartColor = System.Drawing.SystemColors.GradientInactiveCaption;
-            tabGradient6.TextColor = System.Drawing.SystemColors.ControlText;
-            dockPaneStripToolWindowGradient1.InactiveCaptionGradient = tabGradient6;
-            tabGradient7.EndColor = System.Drawing.Color.Transparent;
-            tabGradient7.StartColor = System.Drawing.Color.Transparent;
-            tabGradient7.TextColor = System.Drawing.SystemColors.ControlDarkDark;
-            dockPaneStripToolWindowGradient1.InactiveTabGradient = tabGradient7;
-            dockPaneStripSkin1.ToolWindowGradient = dockPaneStripToolWindowGradient1;
-            dockPanelSkin1.DockPaneStripSkin = dockPaneStripSkin1;
-            this.dockPanel.Skin = dockPanelSkin1;
+            dockPanelGradient4.EndColor = System.Drawing.SystemColors.ControlLight;
+            dockPanelGradient4.StartColor = System.Drawing.SystemColors.ControlLight;
+            autoHideStripSkin2.DockStripGradient = dockPanelGradient4;
+            tabGradient8.EndColor = System.Drawing.SystemColors.Control;
+            tabGradient8.StartColor = System.Drawing.SystemColors.Control;
+            tabGradient8.TextColor = System.Drawing.SystemColors.ControlDarkDark;
+            autoHideStripSkin2.TabGradient = tabGradient8;
+            dockPanelSkin2.AutoHideStripSkin = autoHideStripSkin2;
+            tabGradient9.EndColor = System.Drawing.SystemColors.ControlLightLight;
+            tabGradient9.StartColor = System.Drawing.SystemColors.ControlLightLight;
+            tabGradient9.TextColor = System.Drawing.SystemColors.ControlText;
+            dockPaneStripGradient2.ActiveTabGradient = tabGradient9;
+            dockPanelGradient5.EndColor = System.Drawing.SystemColors.Control;
+            dockPanelGradient5.StartColor = System.Drawing.SystemColors.Control;
+            dockPaneStripGradient2.DockStripGradient = dockPanelGradient5;
+            tabGradient10.EndColor = System.Drawing.SystemColors.ControlLight;
+            tabGradient10.StartColor = System.Drawing.SystemColors.ControlLight;
+            tabGradient10.TextColor = System.Drawing.SystemColors.ControlText;
+            dockPaneStripGradient2.InactiveTabGradient = tabGradient10;
+            dockPaneStripSkin2.DocumentGradient = dockPaneStripGradient2;
+            tabGradient11.EndColor = System.Drawing.SystemColors.ActiveCaption;
+            tabGradient11.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
+            tabGradient11.StartColor = System.Drawing.SystemColors.GradientActiveCaption;
+            tabGradient11.TextColor = System.Drawing.SystemColors.ActiveCaptionText;
+            dockPaneStripToolWindowGradient2.ActiveCaptionGradient = tabGradient11;
+            tabGradient12.EndColor = System.Drawing.SystemColors.Control;
+            tabGradient12.StartColor = System.Drawing.SystemColors.Control;
+            tabGradient12.TextColor = System.Drawing.SystemColors.ControlText;
+            dockPaneStripToolWindowGradient2.ActiveTabGradient = tabGradient12;
+            dockPanelGradient6.EndColor = System.Drawing.SystemColors.ControlLight;
+            dockPanelGradient6.StartColor = System.Drawing.SystemColors.ControlLight;
+            dockPaneStripToolWindowGradient2.DockStripGradient = dockPanelGradient6;
+            tabGradient13.EndColor = System.Drawing.SystemColors.GradientInactiveCaption;
+            tabGradient13.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
+            tabGradient13.StartColor = System.Drawing.SystemColors.GradientInactiveCaption;
+            tabGradient13.TextColor = System.Drawing.SystemColors.ControlText;
+            dockPaneStripToolWindowGradient2.InactiveCaptionGradient = tabGradient13;
+            tabGradient14.EndColor = System.Drawing.Color.Transparent;
+            tabGradient14.StartColor = System.Drawing.Color.Transparent;
+            tabGradient14.TextColor = System.Drawing.SystemColors.ControlDarkDark;
+            dockPaneStripToolWindowGradient2.InactiveTabGradient = tabGradient14;
+            dockPaneStripSkin2.ToolWindowGradient = dockPaneStripToolWindowGradient2;
+            dockPanelSkin2.DockPaneStripSkin = dockPaneStripSkin2;
+            this.dockPanel.Skin = dockPanelSkin2;
             this.dockPanel.TabIndex = 4;
             // 
             // ribbonButton3
@@ -999,6 +999,10 @@
             this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.OTSIncAMeasureAppForm_FormClosing);
             this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.OTSIncAMeasureAppForm_FormClosed);
             this.Load += new System.EventHandler(this.OTSIncAMeasureAppForm_Load);
+            this.DragDrop += new System.Windows.Forms.DragEventHandler(this.OTSIncAMeasureAppForm_DragDrop);
+            this.DragEnter += new System.Windows.Forms.DragEventHandler(this.OTSIncAMeasureAppForm_DragEnter);
+            this.DragOver += new System.Windows.Forms.DragEventHandler(this.OTSIncAMeasureAppForm_DragOver);
+            this.DragLeave += new System.EventHandler(this.OTSIncAMeasureAppForm_DragLeave);
             this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.OTSIncAMeasureAppForm_KeyDown);
             this.statusStrip1.ResumeLayout(false);
             this.statusStrip1.PerformLayout();

Plik diff jest za duży
+ 177 - 228
OTSIncAMeasureApp/OTSIncAMeasureAppForm.cs


+ 7 - 7
OTSIncAMeasureApp/OTSIncAMeasureAppForm.resx

@@ -152,6 +152,12 @@
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW
         JQAAFiUBSVIk8AAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
+</value>
+  </data>
+  <data name="ribCircle.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+        vAAADrwBlbxySQAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
 </value>
   </data>
   <data name="rbCircleCenter.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -190,7 +196,7 @@
         JQAAFiUBSVIk8AAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
 </value>
   </data>
-  <data name="ribCircle.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="ribRectangle.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
         vAAADrwBlbxySQAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
@@ -206,12 +212,6 @@
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
         vAAADrwBlbxySQAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
-</value>
-  </data>
-  <data name="ribRectangle.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        vAAADrwBlbxySQAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
 </value>
   </data>
   <data name="ribPolygon.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

+ 5 - 19
OTSIncAReportApp/1-UI/frmMeasureRstMgr.cs

@@ -1,14 +1,9 @@
-using DevExpress.CodeParser;
-using DevExpress.XtraCharts.Native;
-using DevExpress.XtraEditors.Filtering;
-using Microsoft.Office.Core;
-using OTS.WinFormsUI.Docking;
+using OTS.WinFormsUI.Docking;
 using OTSCLRINTERFACE;
 using OTSCommon;
 using OTSCommon.DBOperate.Model;
 using OTSIncAReportApp.OTSRstMgrFunction;
 using OTSIncAReportApp.OTSSampleReportInfo;
-using OTSIncAReportApp.SysMgrTools;
 using OTSModelSharp;
 using OTSModelSharp.DTLBase;
 using System;
@@ -19,8 +14,6 @@ using System.IO;
 using System.Runtime.InteropServices;
 using System.Text.RegularExpressions;
 using System.Windows.Forms;
-using static DevExpress.CodeParser.CodeStyle.Formatting.Rules.LineBreaks;
-using static DevExpress.XtraCharts.GLGraphics.GL;
 using static OTSDataType.otsdataconst;
 
 namespace OTSIncAReportApp
@@ -141,7 +134,6 @@ namespace OTSIncAReportApp
                 contextMenuStrip1.Show();
             }
         }
-
         /// <summary>
         /// 左键选择树节点事件
         /// </summary>
@@ -154,17 +146,13 @@ namespace OTSIncAReportApp
             {
                 if (e.Node.IsSelected)
                 {
-
                     //判断的选中的CHECKBOX和焦点都在当前被选择的节点上,切换当前工作样品
                     m_WorkSampleNode = e.Node;
                     treeView1.SelectedNode = e.Node;    //当前被选中
-
                     treeView1.Refresh();
-                     
                 }
             }
         }
-
         /// <summary>
         /// 当Checkbox的状态发生变化时,响应事件
         /// </summary>
@@ -172,7 +160,6 @@ namespace OTSIncAReportApp
         /// <param name="e"></param>
         private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
         {
-
             if (e.Action == TreeViewAction.ByMouse)
             {     //判断是否由鼠标触发的             
                 TreeNode TN = e.Node;//点击的节点 
@@ -196,6 +183,10 @@ namespace OTSIncAReportApp
                         //若有父节点,判断此次取消选中后,是否兄弟节点也是没选中  
                         TreeNode TNP = TN.Parent;
                         bool YXZ = false;//有选中的,以此来判断否兄弟节点也是没选中 
+
+
+
+
                         foreach (TreeNode childTN in TNP.Nodes)
                         {
                             if (childTN.Checked)
@@ -296,26 +287,21 @@ namespace OTSIncAReportApp
 
         public void AddSampleResult(string str_path)
         {
-
-
             if (m_RstDataMgr.AddDataResult(str_path))
             {
 
-
                 m_ConditionChoose.SetDefaultConditionValue();
                 m_ConditionChoose.GetWorkingPictureConditionVal();
                 m_ReportApp.m_RstWindow.Show(m_ReportApp.DockWindowPanel);
 
 
 
-
                 //在treeview上添加测量结果
                 m_TreeViewData.DisplayWorkSampleTree(this.m_RstDataMgr.ResultFilesList);
                 //在grid上添加测量结果
                 m_ConditionChoose.DisCurrentPicProperty();
                 //根据标签索引 显示默认的数据图表for test
                 m_ConditionChoose.ShowsTheDefaultPic();//显示图表
-
             }
             else
             {

+ 12 - 7
OTSIncAReportApp/1-UI/frmReportApp.Designer.cs

@@ -221,7 +221,7 @@
             // 
             // ribbon1
             // 
-            this.ribbon1.Font = new System.Drawing.Font("Microsoft YaHei", 9F);
+            this.ribbon1.Font = new System.Drawing.Font("微软雅黑", 9F);
             this.ribbon1.Location = new System.Drawing.Point(0, 0);
             this.ribbon1.Margin = new System.Windows.Forms.Padding(5, 2, 5, 2);
             this.ribbon1.Minimized = false;
@@ -645,11 +645,11 @@
             this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.RSGrayVal,
             this.mouseMatter});
-            this.statusStrip1.Location = new System.Drawing.Point(0, 841);
+            this.statusStrip1.Location = new System.Drawing.Point(0, 845);
             this.statusStrip1.Name = "statusStrip1";
             this.statusStrip1.Padding = new System.Windows.Forms.Padding(16, 0, 4, 0);
             this.statusStrip1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
-            this.statusStrip1.Size = new System.Drawing.Size(1924, 30);
+            this.statusStrip1.Size = new System.Drawing.Size(1924, 26);
             this.statusStrip1.TabIndex = 4;
             this.statusStrip1.Text = "statusStrip1";
             // 
@@ -657,14 +657,14 @@
             // 
             this.RSGrayVal.BorderSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.Right;
             this.RSGrayVal.Name = "RSGrayVal";
-            this.RSGrayVal.Size = new System.Drawing.Size(58, 24);
+            this.RSGrayVal.Size = new System.Drawing.Size(48, 21);
             this.RSGrayVal.Text = "灰度值";
             // 
             // mouseMatter
             // 
             this.mouseMatter.BorderSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.Right;
             this.mouseMatter.Name = "mouseMatter";
-            this.mouseMatter.Size = new System.Drawing.Size(103, 24);
+            this.mouseMatter.Size = new System.Drawing.Size(84, 21);
             this.mouseMatter.Text = "鼠标点的物质";
             // 
             // ribbonOrbMenuItem5
@@ -721,7 +721,7 @@
             this.DockWindowPanel.Location = new System.Drawing.Point(0, 130);
             this.DockWindowPanel.Margin = new System.Windows.Forms.Padding(4, 2, 4, 2);
             this.DockWindowPanel.Name = "DockWindowPanel";
-            this.DockWindowPanel.Size = new System.Drawing.Size(1924, 711);
+            this.DockWindowPanel.Size = new System.Drawing.Size(1924, 715);
             dockPanelGradient1.EndColor = System.Drawing.SystemColors.ControlLight;
             dockPanelGradient1.StartColor = System.Drawing.SystemColors.ControlLight;
             autoHideStripSkin1.DockStripGradient = dockPanelGradient1;
@@ -771,7 +771,8 @@
             // 
             // frmReportApp
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
+            this.AllowDrop = true;
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.ClientSize = new System.Drawing.Size(1924, 871);
             this.Controls.Add(this.DockWindowPanel);
@@ -786,6 +787,10 @@
             this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmReportApp_FormClosing);
             this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.frmReportApp_FormClosed);
             this.Load += new System.EventHandler(this.OTSReportApp_Load);
+            this.DragDrop += new System.Windows.Forms.DragEventHandler(this.frmReportApp_DragDrop);
+            this.DragEnter += new System.Windows.Forms.DragEventHandler(this.frmReportApp_DragEnter);
+            this.DragOver += new System.Windows.Forms.DragEventHandler(this.frmReportApp_DragOver);
+            this.DragLeave += new System.EventHandler(this.frmReportApp_DragLeave);
             this.statusStrip1.ResumeLayout(false);
             this.statusStrip1.PerformLayout();
             this.ResumeLayout(false);

+ 302 - 14
OTSIncAReportApp/1-UI/frmReportApp.cs

@@ -1,24 +1,21 @@
 
 using OTS.WinFormsUI.Docking;
-
-using OTSIncAReportApp.OTSRstMgrFunction;
+using OTSCommon.DBOperate.Model;
+using OTSIncAReportApp._1_UI;
 using OTSIncAReportApp.OTSRibbon;
+using OTSIncAReportApp.OTSRstMgrFunction;
 using OTSIncAReportApp.OTSSampleReportInfo;
-using OTSIncAReportApp.SysMgrTools;
 using OTSIncAReportGraph.OTSIncAReportGraphFuncation;
 using OTSIncAReprotCharts;
-
 using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.Drawing;
 using System.IO;
+using System.Linq;
 using System.Runtime.InteropServices;
 using System.Windows.Forms;
-using OTSCommon.DBOperate.Model;
-using OTSIncAReportApp._1_UI;
 using OTSCommon;
-using Language = OTSCommon.Language;
 
 namespace OTSIncAReportApp
 {
@@ -198,8 +195,12 @@ namespace OTSIncAReportApp
             return Particles;
         }
         #endregion //--------------------------------------------------------------------------------------------
-
-
+        #region 拖拽提示面板相关字段
+        private Panel dropHintPanel;
+        private PictureBox dropIconBox;
+        private Label dropHintLabel;
+        private Label dropSubLabel;
+        #endregion
         #region 窗体初始化及构造函数
 
         /// <summary>
@@ -239,8 +240,9 @@ namespace OTSIncAReportApp
             #region 国际化语言
             Language lan = new Language(this);
             table = lan.GetNameTable(this.Name);
-            
             #endregion
+            // 初始化拖拽功能
+            InitializeDragDropFeatures();
         }
 
 
@@ -275,10 +277,12 @@ namespace OTSIncAReportApp
         /// </summary>
         public frmReportApp(string[] str_resultfilepaths)
         {
+            
             m_OutputNlog = new OutputNlog();
             m_OutputNlog.Visible = true;
+            Environment.CurrentDirectory = Path.GetDirectoryName(Application.ExecutablePath);
+
 
-           
             log = NLog.LogManager.GetCurrentClassLogger();
 
             m_str_resultfilepaths = str_resultfilepaths;
@@ -312,6 +316,8 @@ namespace OTSIncAReportApp
             Language lan = new Language(this);
             table = lan.GetNameTable(this.Name);
             #endregion
+            // 初始化拖拽功能
+            InitializeDragDropFeatures();
         }
 
 
@@ -372,10 +378,31 @@ namespace OTSIncAReportApp
 
             if (m_str_resultfilepaths != null)
             {
-                //构造函数直接接收传入的测量结果文件,并加载
-                for (int i = 0; i < m_str_resultfilepaths.Length; i++)
+                string path = m_str_resultfilepaths[0].Replace("^", " ");
+                if (Path.GetExtension(path) == ".rst")
                 {
-                    this.m_RstWindow.AddSampleResult(m_str_resultfilepaths[i].Replace("^", " "));
+                    //构造函数直接接收传入的测量结果文件,并加载
+                    for (int i = 0; i < m_str_resultfilepaths.Length; i++)
+                    {
+                        this.m_RstWindow.AddSampleResult(m_str_resultfilepaths[i].Replace("^", " "));
+                    }
+                }
+                else if (Path.GetExtension(path) == ".prj")
+                {
+                    this.Cursor = Cursors.WaitCursor;
+                    string strFilePath = System.IO.Path.GetDirectoryName(path);
+
+                    System.IO.DirectoryInfo folder = new System.IO.DirectoryInfo(strFilePath);
+
+                    foreach (System.IO.DirectoryInfo directory in folder.GetDirectories())
+                    {
+                        foreach (System.IO.FileInfo file in directory.GetFiles("*.rst"))
+                        {
+                            this.m_RstWindow.AddSampleResult(file.FullName);
+                            this.m_StandardLibrary.DataRefresh();
+                        }
+                    }
+                    this.Cursor = Cursors.Default;
                 }
             }
 
@@ -1348,6 +1375,267 @@ namespace OTSIncAReportApp
         {
             OpenProFile();
         }
+
+
+
+
+
+
+
+
+
+
+
+        
+        private void frmReportApp_DragDrop(object sender, DragEventArgs e)
+        {
+            // 隐藏拖拽提示面板
+            HideDropHintPanel();
+            try
+            {
+                if (e.Data.GetDataPresent(DataFormats.FileDrop))
+                {
+                    string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
+                    // 过滤出有效的文件
+                    var validFiles = files.Where(f =>
+                        Path.GetExtension(f)?.ToLower() == ".prj" ||
+                        Path.GetExtension(f)?.ToLower() == ".rst").ToList();
+
+                    if (!validFiles.Any())
+                    {
+                        MessageBox.Show("未找到有效的 .prj 或 .rst 文件", "提示",
+                            MessageBoxButtons.OK, MessageBoxIcon.Information);
+                        return;
+                    }
+                    this.Cursor = Cursors.WaitCursor;
+                    try
+                    {
+                        ProcessDroppedFiles(validFiles);
+                    }
+                    finally
+                    {
+                        this.Cursor = Cursors.Default;
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                this.Cursor = Cursors.Default;
+                log.Error($"处理拖拽文件时发生错误: {ex.Message}", ex);
+                MessageBox.Show($"处理文件时发生错误: {ex.Message}", "错误",
+                    MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
+        }
+
+        private void frmReportApp_DragEnter(object sender, DragEventArgs e)
+        {
+            try
+            {
+                // 检查拖放的数据是否包含文件
+                if (e.Data.GetDataPresent(DataFormats.FileDrop))
+                {
+                    // 获取拖放的文件
+                    string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
+                    // 检查是否有有效的.prj文件
+                    bool hasValidFile = files.Any(f =>
+                        !string.IsNullOrEmpty(Path.GetExtension(f)) &&
+                        (Path.GetExtension(f).ToLower() == ".prj"|| Path.GetExtension(f).ToLower() == ".rst"));
+                    if (hasValidFile)
+                    {
+                        // 显示拖拽提示面板
+                        ShowDropHintPanel();
+                        // 显示复制光标
+                        e.Effect = DragDropEffects.Copy;
+                        return;
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                log?.Warn($"DragEnter处理异常: {ex.Message}");
+            }
+            // 隐藏拖拽提示面板并设置无效文件类型
+            HideDropHintPanel();
+            e.Effect = DragDropEffects.None;
+        }
+        /// <summary>
+        /// 初始化拖拽提示面板
+        /// </summary>
+        private void InitializeDropHintPanel()
+        {
+            // 创建主面板
+            dropHintPanel = new Panel();
+            dropHintPanel.Name = "dropHintPanel";
+            dropHintPanel.BackColor = Color.FromArgb(200, Color.RoyalBlue);
+            dropHintPanel.Dock = DockStyle.Fill;
+            dropHintPanel.Visible = false;
+            dropHintPanel.BorderStyle = BorderStyle.None;
+            // 创建主提示文本
+            dropHintLabel = new Label();
+            dropHintLabel.Text = "拖拽 .prj 或 .rst文件到此处打开项目";
+            dropHintLabel.AutoSize = false;
+            dropHintLabel.TextAlign = ContentAlignment.MiddleCenter;
+            dropHintLabel.Font = new Font(this.Font.FontFamily, 18, FontStyle.Bold);
+            dropHintLabel.ForeColor = Color.White;
+            dropHintLabel.Dock = DockStyle.Fill;
+            dropHintLabel.BackColor = Color.Transparent;
+
+
+
+
+
+
+
+
+
+
+
+
+
+            // 创建辅助说明文本
+            dropSubLabel = new Label();
+            dropSubLabel.Text = "松开鼠标按键即可打开项目";
+            dropSubLabel.AutoSize = false;
+            dropSubLabel.TextAlign = ContentAlignment.MiddleCenter;
+            dropSubLabel.Font = new Font(this.Font.FontFamily, 12, FontStyle.Regular);
+            dropSubLabel.ForeColor = Color.LightGray;
+            dropSubLabel.Dock = DockStyle.Bottom;
+            dropSubLabel.Height = 30;
+            dropSubLabel.BackColor = Color.Transparent;
+
+            // 组装控件
+            dropHintPanel.Controls.Add(dropIconBox);
+            dropHintPanel.Controls.Add(dropHintLabel);
+            dropHintPanel.Controls.Add(dropSubLabel);
+
+            // 将面板添加到窗体中并置于顶层
+            this.Controls.Add(dropHintPanel);
+            dropHintPanel.BringToFront();
+        }
+
+        /// <summary>
+        /// 显示拖拽提示面板
+        /// </summary>
+        private void ShowDropHintPanel()
+        {
+            if (dropHintPanel == null) return;
+
+            dropHintPanel.Visible = true;
+            dropHintPanel.BringToFront();
+        }
+
+        /// <summary>
+        /// 隐藏拖拽提示面板
+        /// </summary>
+        private void HideDropHintPanel()
+        {
+            if (dropHintPanel == null) return;
+
+            dropHintPanel.Visible = false;
+        }
+        /// <summary>
+        /// 初始化拖拽功能
+        /// </summary>
+        private void InitializeDragDropFeatures()
+        {
+            this.AllowDrop = true;
+            InitializeDropHintPanel();
+        }
+
+
+
+
+
+
+        private void frmReportApp_DragOver(object sender, DragEventArgs e)
+        {
+            if (dropHintPanel != null && dropHintPanel.Visible)
+            {
+                e.Effect = DragDropEffects.Copy;
+            }
+            else
+            {
+                e.Effect = DragDropEffects.None;
+            }
+        }
+
+        private void frmReportApp_DragLeave(object sender, EventArgs e)
+        {
+            HideDropHintPanel();
+        }
+        private void ProcessDroppedFiles(List<string> files)
+        {
+            bool processed = false;
+
+            foreach (string filePath in files)
+            {
+                try
+                {
+                    string extension = Path.GetExtension(filePath).ToLower();
+
+                    if (extension == ".prj")
+                    {
+                        ProcessProjectFile(filePath);
+                        processed = true;
+                        break; // 只处理第一个项目文件
+                    }
+                    else if (extension == ".rst")
+                    {
+                        log.Info($"开始加载结果文件: {filePath}");
+                        this.m_RstWindow.AddSampleResult(filePath);
+                        this.m_StandardLibrary.DataRefresh();
+                        processed = true;
+                    }
+                }
+                catch (Exception ex)
+                {
+                    log.Error($"处理文件 {filePath} 时发生错误: {ex.Message}", ex);
+                    MessageBox.Show($"处理文件 {filePath} 时发生错误: {ex.Message}", "错误",
+                        MessageBoxButtons.OK, MessageBoxIcon.Error);
+                }
+            }
+
+            if (!processed && files.Any())
+            {
+                MessageBox.Show("未能成功处理任何文件", "提示",
+                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
+            }
+        }
+
+        private void ProcessProjectFile(string projectFilePath)
+        {
+            try
+            {
+                string directoryPath = Path.GetDirectoryName(projectFilePath);
+                DirectoryInfo folder = new DirectoryInfo(directoryPath);
+
+                int loadedCount = 0;
+                foreach (System.IO.DirectoryInfo directory in folder.GetDirectories())
+                {
+                    foreach (System.IO.FileInfo file in directory.GetFiles("*.rst"))
+                    {
+                        this.m_RstWindow.AddSampleResult(file.FullName);
+                        loadedCount++;
+                    }
+                }
+
+                if (loadedCount > 0)
+                {
+                    this.m_StandardLibrary.DataRefresh();
+                    log.Info($"从项目文件加载了 {loadedCount} 个结果文件");
+                }
+                else
+                {
+                    log.Warn("项目文件夹中未找到 .rst 文件");
+                    MessageBox.Show("项目文件夹中未找到 .rst 文件", "提示",
+                        MessageBoxButtons.OK, MessageBoxIcon.Information);
+                }
+            }
+            catch (Exception ex)
+            {
+                throw new Exception($"处理项目文件时出错: {ex.Message}", ex);
+            }
+        }
     }
 }
 

+ 7 - 7
OTSIncAReportApp/1-UI/frmReportApp.resx

@@ -184,31 +184,31 @@
   <data name="rbOpen.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        vwAADr8BOAVTJAAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
+        vAAADrwBlbxySQAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
 </value>
   </data>
   <data name="rbOpenprj.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        vwAADr8BOAVTJAAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
+        vAAADrwBlbxySQAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
 </value>
   </data>
   <data name="rbClose.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        vwAADr8BOAVTJAAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
+        vAAADrwBlbxySQAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
 </value>
   </data>
   <data name="Backup.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        vwAADr8BOAVTJAAAABpJREFUWEftwQEBAAAAgiD/r25IQAEAAADvBhAgAAHBYCyfAAAAAElFTkSuQmCC
+        vAAADrwBlbxySQAAABpJREFUWEftwQEBAAAAgiD/r25IQAEAAADvBhAgAAHBYCyfAAAAAElFTkSuQmCC
 </value>
   </data>
   <data name="Backup.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        vwAADr8BOAVTJAAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
+        vAAADrwBlbxySQAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
 </value>
   </data>
   <data name="ribbonOrbOptionButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -262,13 +262,13 @@
   <data name="rbHelp.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        vwAADr8BOAVTJAAAABpJREFUWEftwQEBAAAAgiD/r25IQAEAAADvBhAgAAHBYCyfAAAAAElFTkSuQmCC
+        vAAADrwBlbxySQAAABpJREFUWEftwQEBAAAAgiD/r25IQAEAAADvBhAgAAHBYCyfAAAAAElFTkSuQmCC
 </value>
   </data>
   <data name="rbHelp.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        vwAADr8BOAVTJAAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
+        vAAADrwBlbxySQAAABJJREFUOE9jYBgFo2AUjAIIAAAEEAABTLtGVQAAAABJRU5ErkJggg==
 </value>
   </data>
   <data name="rbGB1.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

+ 0 - 1
OTSIncAReportApp/3-ServiceCenter/DataOperation/DataAccess/ParticleData.cs

@@ -1,5 +1,4 @@
 using OTSCommon.DBOperate.Model;
-using OTSIncAReportApp.OTSRstMgrFunction;
 using OTSIncAReportGraph.Controls;
 using OTSPeriodicTable;
 using System;

+ 7 - 5
OTSIncAReportApp/3-ServiceCenter/DataOperation/OTSRstXmlAccess/ResultDataMgr.cs

@@ -77,16 +77,16 @@ namespace OTSIncAReportApp.OTSRstMgrFunction
         /// <param name="ReportApp"></param>
         public ResultDataMgr()
         {
-         
-
-
             if (null == m_ReportMgr)
             {
                 //初始化相关变量
                 m_ReportMgr = new CReportMgrClr();
             }
-           
         }
+
+
+
+
         public bool AddDataResult(string str_path)
         {
             //加载测量结果文件
@@ -237,7 +237,9 @@ namespace OTSIncAReportApp.OTSRstMgrFunction
             List<string> sizeList = new List<string>();
             if (m_RptConfigFile.PartSizeFile != "AUTO.psf")
             {
-                DataSet ds = DataOperation.DataAccess.XMLoperate.GetXml(m_RptConfigFile.PartSizeFileFolder + m_RptConfigFile.PartSizeFile);
+                string path =  m_RptConfigFile.PartSizeFileFolder+ m_RptConfigFile.PartSizeFile;
+
+                DataSet ds = DataOperation.DataAccess.XMLoperate.GetXml(path);
                 sizestr = ds.Tables[0].Rows[0]["Sizes"].ToString();
             }
             else

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików