Ver código fonte

Merge branch 'Release2.7' of http://36.129.163.148:30080/gogsadmin/OTS into Release2.7

gsp 3 anos atrás
pai
commit
ee867401ec

+ 41 - 63
Bin/x64/Debug/Resources/XMLData/AppResource_EN.xml

@@ -904,6 +904,7 @@
 	  <Control name="rbTabHome" text="BasicFunction" />
 	  <Control name="rbPanelFile" text="ProjectDocuments" />
 	  <Control name="rbPanelSample" text="Sample operation and measurement area selection" />
+	  <Control name="rbSemFunction" text="SemControl" />
 	  <Control name="rbAddSample" text="Add" />
 	  <Control name="rbDeleteSample" text="Delete" />
 	  <Control name="ribReset" text="Reset" />
@@ -914,6 +915,7 @@
 	  <Control name="ribPolygon" text="Polygon" />
 	  <Control name="rbPanelFunction" text="MeasurementControl" />
 	  <Control name="rbStart" text="Start" />
+	  <Control name="rbPause" text="Pause" />
 	  <Control name="rbStop" text="Stop" />
 	  <Control name="rbCheckParam" text="CheckParam" />
 	  <Control name="rbPReport" text="Report" />
@@ -935,6 +937,7 @@
 	  <Control name="m_NoWindowName" text="UnknownWorkingWindow" />
 	  <Control name="rbSTDEdit" text="Edit standard library" />
 	  <Control name="rbReClassify" text="Reclassification" />
+	  <Control name="rbSysMgrApp" text="SystemSetting" />
 	  <Control name="rbConnectHardware" text="ConnectSem" />
 	  <Control name="rbDisconnectHardware" text="DisConnectSem" />
 	  <Control name="rbAutoBeamOff" text="AutoBeamOff" />
@@ -956,6 +959,19 @@
       <Control name="button_New" text="New" />
     </Controls>
  </Form>
+ <Form>
+   <Name>MeasureStopMode</Name>
+    <Controls>
+      <Control name="groupBox1" text="MeasureStopMode" />
+      <Control name="cB_CoverMode" text="1.CoverMode" />
+	  <Control name="cB_ParticleMode" text="2.ParticleMode" />
+      <Control name="cB_FieldMode" text="3.FieldMode" />
+	  <Control name="cB_TimeMode" text="4.TimeMode" />
+      <Control name="label1" text="s" />
+	  <Control name="cB_AreaMode" text="5.AreaMode" />
+      <Control name="label2" text="mm²" />
+    </Controls>
+ </Form>
  <Form>
     <Name>ProgMgrInfoForm</Name>
     <Controls>
@@ -1005,6 +1021,8 @@
 	  <Control name="label45" text="SmallParticleX-rayTime" />
 	  <Control name="label33" text="CountingExpectations" />
 	  <Control name="label31" text="ScanningMode(Large particles)" />
+	  <Control name="label47" text="XrayLimit" />
+	  <Control name="label49" text="Coefficient of corrosion expansion" />
 	  <Control name="label37" text="Analysis threshold" />
 	  <Control name="groupBox7" text="ModeSelection" />
 	  <Control name="lbModelSel" text="ModeSelection" />
@@ -1104,6 +1122,22 @@
 	  <Control name="diameterStart" text="diameterStart(um)" />
 	  <Control name="diameterEnd" text="diameterEnd(um)" />
 	  <Control name="collectXray" text="collectXray" />
+	  <Control name="rangeChoose" text="rangeChoose" />
+	  <Control name="checkBox1" text="Enable" />
+	  <Control name="button1" text="Add" />
+	  <Control name="button3" text="Delete" />
+	  <Control name="confirm" text="Confirm" />
+	  <Control name="button2" text="Cancel" />
+    </Controls>
+ </Form>
+ <Form>
+    <Name>frmSpecialGrayParticle</Name>
+    <Controls>
+      <Control name="frmSpecialGrayParticle" text="Set the foreground gray scale" />
+	  <Control name="groupBox1" text="Set parameters" />
+	  <Control name="label1" text="Grayscale range" />
+	  <Control name="btnYes" text="confirm" />
+	  <Control name="btnCancel" text="cancel" />
     </Controls>
  </Form>
  <Form>
@@ -1234,6 +1268,7 @@
     <Controls>
       <Control name="SampleParaLock" text="GetBSEDiagram" />
 	  <Control name="ViewStripMenuItem" text="Set the visual gray range of BSE image" />
+	  <Control name="toolStripMenuItem1" text="Set the grayscale range of special particles for visualization" />
 	  <Control name="ChangeDiffImageShow" text="SwitchToBSE" />
 	  <Control name="ToolStripMenuItem" text="De-backgroundImage " />
 	  <Control name="grayToolStripMenuItem" text="DisplayB-GrayCurve" />
@@ -1280,6 +1315,7 @@
 	  <Control name="DriveSEMToCurrentLocation" text="DriveSEMToCurrentLocation" />
 	  <Control name="ShootBSEPicture" text="ShootBSEPicture" />
 	  <Control name="DeleteBSEPicture" text="DeleteBSEPicture" />
+	  <Control name="SlopFocusMenuItem" text="InclinedPlaneFocus" />
 	  <Control name="message1" text="Start acquiring frame information " />
 	  <Control name="message2" text="Error log" />
 	  <Control name="message3" text="DriveSEMToCurrentLocation:--Error log" />
@@ -1366,15 +1402,15 @@
 	  <Control name="ToolStripMenuItem_selectparticle" text="Selected granules" />
 	  <Control name="ToolStripMenuItem_exportimagefile" text="Export image file" />
 	  <Control name="ToolStripMenuItem_exportzoomimagefile" text="Export enlarged image file" />
-	  <Control name="label_Condition" text="Condition query:" />
+	  <Control name="label_Condition" text="SearchConditions:" />
 	  <Control name="label_Area" text="Area(μm²)" />
 	  <Control name="label_Dmax" text="Dmax(μm)" />
 	  <Control name="label_ParticleName" text="ParticleName" />
-	  <Control name="btn_Sel" text="Sel" />
+	  <Control name="btn_Sel" text="Search" />
 	  <Control name="label_order" text="Sort by:" />
-	  <Control name="label1" text="common" />
-	  <Control name="label4" text="Records per page" />
-	  <Control name="label2" text="Article of" />
+	  <Control name="label1" text="Total" />
+	  <Control name="label4" text="Records, Per page" />
+	  <Control name="label2" text="Records,Total" />
 	  <Control name="label6" text="page" />
 	  <Control name="str1" text="Selected particles" />
 	  <Control name="str2" text="Selected" />
@@ -1602,62 +1638,4 @@
 	  <Control name="button1" text="determine" />
     </Controls>
  </Form>
- <Form>
-    <Name>ParticlesGridDevidePage</Name>
-    <Controls>
-      <Control name="ToolStripMenuItem1" text="Copy the entire table" />
-	  <Control name="ToolStripMenuItem2" text="Replication Selection Area" />
-	  <Control name="toolStripMenuItem4" text="Copy the entire list image that is currently displayed" />
-	  <Control name="ToolStripMenuItem3" text="Restore to the initial state" />
-	  <Control name="ToolStripMenuItem5" text="Move SEM to the Particle Horizon Position" />
-	  <Control name="ToolStripMenuItem_selectparticle" text="Selected granules" />
-	  <Control name="ToolStripMenuItem_exportimagefile" text="Export image file" />
-	  <Control name="ToolStripMenuItem_exportzoomimagefile" text="Export enlarged image file" />
-	  <Control name="label_Condition" text="Condition query:" />
-	  <Control name="label_Area" text="Area(μm²)" />
-	  <Control name="label_Dmax" text="Dmax(μm)" />
-	  <Control name="label_ParticleName" text="ParticleName" />
-	  <Control name="btn_Sel" text="Sel" />
-	  <Control name="label_order" text="Sort by:" />
-	  <Control name="label1" text="common" />
-	  <Control name="label4" text="Records per page" />
-	  <Control name="label2" text="Article of" />
-	  <Control name="label6" text="page" />
-	  <Control name="str1" text="Selected particles" />
-	  <Control name="str2" text="Selected" />
-	  <Control name="str3" text="Please switch to the analysis chart!" />
-	  <Control name="str4" text="No" />
-	  <Control name="str5" text="Image" />
-	  <Control name="str6" text="Name" />
-	  <Control name="str7" text="Start loading granular list information" />
-	  <Control name="str8" text="Particle list, loaded" />
-	  <Control name="str9" text="Export completed, image total" />
-	  <Control name="str10" text="The type of input is error!" />
-	  <Control name="str11" text="Please pay attention to the corresponding size relationship of the input value! "/>
-	  <Control name="str12" text="Load the granular list and start creating table structured Columns" />
-	  <Control name="str15" text="Loading particle list, getting" />
-	  <Control name="str18" text="Value" />
-	  <Control name="partcletype0" text="SMALL" />
-	  <Control name="partcletype1" text="OVERSIZE" />
-	  <Control name="partcletype2" text="AVE_GRAY_NOT_INRANRE" />
-	  <Control name="partcletype4" text="LOW_COUNT" />
-	  <Control name="partcletype6" text="NO_ANALYSIS_X_RAY" />
-      <Control name="partcletype7" text="NOT_IDENTIFIED_SIC" />
-	  <Control name="partcletype8" text="NOT_IDENTIFIED_FEO" />
-	  <Control name="partcletype9" text="NOT_IDENTIFIED" />
-	  <Control name="str21" text="Areaμm²" />
-	  <Control name="str22" text="Equivalent circle diameterμm" />
-	  <Control name="str23" text="Longest diameterμm" />
-	  <Control name="str24" text="Minimum diameterμm" />
-      <Control name="str25" text="Long short diameter ratio" />
-	  <Control name="str26" text="Ferret diameterμm" />
-	  <Control name="str27" text="Orthogonal diameterμm" />
-	  <Control name="str28" text="Perimeterμm" />
-	  <Control name="str29" text="Inscribed circle diameterμm" />
-	  <Control name="str30" text="Average diameter of inscribed circleμm!" />
-	  <Control name="str31" text="Expansion lengthμm" />
-	  <Control name="str32" text="Expanded aspect ratio" />
-	  <Control name="str33" text="Orientation angle °" />
-	</Controls>
- </Form>
 </Resource>

+ 22 - 4
Bin/x64/Debug/Resources/XMLData/AppResource_ZH.xml

@@ -881,9 +881,7 @@
           <Control name="ToolStripMenuItem_selected" text="选中这些颗粒" />
           <Control name="ToolStripMenuItem_delete" text="排除这些颗粒" />
 	  <Control name="另存选择颗粒ToolStripMenuItem" text="另存为" />
-	  <Control name="ToolStripMenuItem_movesempoint" text="移动SEM到当前位置" />
-	  <Control name="toolStripMenuItem_copyimage" text="导出原图拼接图" />
-	  <control name="ExportoriginalspliceToolStripMenuItem" text="导出原图拼接分类图"/>
+	  <Control name="ToolStripMenuItem_movesempoin MenuItem" text="导出原图拼接分类图"/>
 	  <Control name="str1" text="开始加载分布图信息" />
 	  <Control name="str2" text="已完成加载" />
 	  <Control name="str3" text="SEM位置:" />
@@ -953,6 +951,7 @@
 	  <Control name="rbTabHome" text="基本功能" />
 	  <Control name="rbPanelFile" text="项目文件" />
 	  <Control name="rbPanelSample" text="样品操作及测量区域选择" />
+	  <Control name="rbSemFunction" text="Sem控制" />
 	  <Control name="rbAddSample" text="添加" />
 	  <Control name="rbDeleteSample" text="删除" />
 	  <Control name="ribReset" text="复位" />
@@ -962,7 +961,8 @@
 	  <Control name="ribRectangle" text="矩形" />
 	  <Control name="ribPolygon" text="多边形" />
 	  <Control name="rbPanelFunction" text="测量控制" />
-	  <Control name="rbStart" text="开始" />
+	  <Control name="rbStart" text="开始" />、
+	  <Control name="rbPause" text="暂停" />
 	  <Control name="rbStop" text="停止" />
 	  <Control name="rbCheckParam" text="检测" />
 	  <Control name="rbPReport" text="查看分析结果" />
@@ -989,6 +989,7 @@
 	  <Control name="m_NoWindowName" text="未知工作窗口" />
 	  <Control name="rbSTDEdit" text="编辑标准库" />
 	  <Control name="rbReClassify" text="重新分类" />
+	  <Control name="rbSysMgrApp" text="系统设置" />
 	  <Control name="language" text="ZH" />
 	  <Control name="message1" text="无OTSIncA有效通行证!" />
 	  <Control name="message2" text="当前文件已修改是否保存?" />
@@ -999,6 +1000,19 @@
 	  <Control name="message7" text="测量条件正常!" />
     </Controls>
  </Form>
+ <Form>
+   <Name>MeasureStopMode</Name>
+    <Controls>
+      <Control name="groupBox1" text="测量结束方式" />
+      <Control name="cB_CoverMode" text="1.覆盖测量区域" />
+	  <Control name="cB_ParticleMode" text="2.终止夹杂物数" />
+      <Control name="cB_FieldMode" text="3.终止帧图数" />
+	  <Control name="cB_TimeMode" text="4.终止时间" />
+      <Control name="label1" text="秒" />
+	  <Control name="cB_AreaMode" text="5.终止测量区域面积" />
+      <Control name="label2" text="mm²" />
+    </Controls>
+ </Form>
  <Form>
     <Name>ProgMgrInfoForm</Name>
     <Controls>
@@ -1047,6 +1061,8 @@
 	  <Control name="label32" text="大颗粒X-ray时间" />
 	  <Control name="label45" text="小颗粒Xray时间" />
 	  <Control name="label33" text="分析X-ray计数期望值" />
+	  <Control name="label47" text="数量限值" />
+	  <Control name="label49" text="腐蚀膨胀系数" />
 	  <Control name="label31" text="扫描方式(大颗粒)" /> 
 	  <Control name="label37" text="分析阈值" />
 	  <Control name="groupBox7" text="模式选择" />
@@ -1257,6 +1273,7 @@
     <Controls>
       <Control name="SampleParaLock" text="获取BSE图" />
 	  <Control name="ViewStripMenuItem" text="设置BSE图可视化灰度范围" />
+	  <Control name="toolStripMenuItem1" text="可视化设置特殊颗粒灰度范围" />
 	  <Control name="ChangeDiffImageShow" text="切换至BSE图" />
 	  <Control name="ToolStripMenuItem" text="BSE去背景图" />
 	  <Control name="grayToolStripMenuItem" text="显示BSE灰度曲线图" />
@@ -1303,6 +1320,7 @@
 	  <Control name="DriveSEMToCurrentLocation" text="驱动SEM到当前位置" />
 	  <Control name="ShootBSEPicture" text="拍摄样品孔BSE照片" />
 	  <Control name="DeleteBSEPicture" text="删除BSE照片" />
+	  <Control name="SlopFocusMenuItem" text="斜面焦距" />
 	  <Control name="message1" text="开始获取帧图信息" />
 	  <Control name="message2" text="错误日志" />
 	  <Control name="message3" text="驱动SEM到当前位置:--错误日志信息" />

+ 1 - 1
Bin/x64/Debug/Resources/XMLData/LanguageDefine.xml

@@ -1,4 +1,4 @@
 <?xml version="1.0" standalone="yes"?>
 <Language>
-  <DefaultLanguage>ZH</DefaultLanguage>
+  <DefaultLanguage>EN</DefaultLanguage>
 </Language>

+ 4 - 2
FAQ/FAQ.docx

@@ -21,5 +21,7 @@ windows 凭据管理器 credential 删除git 用户名
   方案2,从新打磨、抛光、清洗样品,确定样品测量表面的清洁干净,确保无锈点、灰尘、印记等。
   方案3,在程序中选择颗粒右键选择删除颗粒,可在数据库中删除该选中的颗粒。(制作中)
 11.牛津能谱bse获取不到图像
-        检查bse/se设置是否正确,检查能谱校准的图像分辨率比例是否正确
-       
+     检查bse/se设置是否正确,检查能谱校准的图像分辨率比例是否正确
+12.报告无法打开,提示CEFsharp相关报错
+  
+     方案:  安装C++运行库

+ 9 - 2
OTSIncAMeasureApp/0-OTSModel/Measure/3-MeasureFlow/CMeasure.cs

@@ -174,8 +174,15 @@ namespace OTSModelSharp
         
             MsrMsg.STMThreadStu.csMsrEndTime = timeEnd.ToString("yyyy-MM-dd HH:mm:ss");
             ProgressEvent(MsrMsg);
-         
-         
+
+            if (MsrMsg.STMThreadStu.iMsrStatu == otsdataconst.OTS_MSR_THREAD_STATUS.FAILED || MsrMsg.STMThreadStu.iMsrStatu == otsdataconst.OTS_MSR_THREAD_STATUS.COMPLETED)
+            {
+
+                if (m_pProjData.GetGenParam().AutoBeamOff)
+                {
+                    m_SemController.SetSemBeamCurrentOff();
+                }
+            }
         }
         void ThreadOverWithoutDisConnect()
         {

+ 9 - 0
OTSIncAMeasureApp/3-OTSDisplaySourceGridData/MeasureStopMode.cs

@@ -76,9 +76,18 @@ namespace OTSMeasureApp._3_OTSDisplaySourceGridData
                 return m_AreaMode;
             }
         }
+
+        //国际化
+        OTSCommon.Language lan;
+        System.Collections.Hashtable table;
+
         public MeasureStopMode()
         {
             InitializeComponent();
+
+            //国际化
+            lan = new OTSCommon.Language(this);
+            table = lan.GetNameTable(this.Name);
         }
 
         private void MeasureStopMode_Load(object sender, EventArgs e)

+ 1 - 0
OTSIncAMeasureApp/5-OTSMeasureStatuImageFun/frmSpecialGrayParticle.Designer.cs

@@ -202,6 +202,7 @@
             this.Controls.Add(this.groupBox1);
             this.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.Name = "frmSpecialGrayParticle";
+            this.ShowIcon = false;
             this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
             this.Text = "设置前景灰度范围";
             this.Load += new System.EventHandler(this.frmSpecialGrayParticle_Load);

+ 2 - 2
OTSIncAMeasureApp/7-OTSProgMgrInfo/ProgMgrInfoForm.designer.cs

@@ -952,10 +952,10 @@
             // IDC_COMBO_CorrosionExpansionCoefficient
             // 
             this.IDC_COMBO_CorrosionExpansionCoefficient.FormattingEnabled = true;
-            this.IDC_COMBO_CorrosionExpansionCoefficient.Location = new System.Drawing.Point(125, 153);
+            this.IDC_COMBO_CorrosionExpansionCoefficient.Location = new System.Drawing.Point(219, 153);
             this.IDC_COMBO_CorrosionExpansionCoefficient.Margin = new System.Windows.Forms.Padding(2);
             this.IDC_COMBO_CorrosionExpansionCoefficient.Name = "IDC_COMBO_CorrosionExpansionCoefficient";
-            this.IDC_COMBO_CorrosionExpansionCoefficient.Size = new System.Drawing.Size(92, 20);
+            this.IDC_COMBO_CorrosionExpansionCoefficient.Size = new System.Drawing.Size(70, 20);
             this.IDC_COMBO_CorrosionExpansionCoefficient.TabIndex = 825;
             this.IDC_COMBO_CorrosionExpansionCoefficient.TextChanged += new System.EventHandler(this.IDC_COMBO_CorrosionExpansionCoefficient_TextChanged);
             // 

+ 57 - 57
OTSIncAMeasureApp/7-OTSProgMgrInfo/SpecialParticleForm.Designer.cs

@@ -30,6 +30,12 @@ namespace OTSMeasureApp
         private void InitializeComponent()
         {
             this.dg1 = new System.Windows.Forms.DataGridView();
+            this.confirm = new System.Windows.Forms.Button();
+            this.button2 = new System.Windows.Forms.Button();
+            this.button1 = new System.Windows.Forms.Button();
+            this.button3 = new System.Windows.Forms.Button();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.checkBox1 = new System.Windows.Forms.CheckBox();
             this.RegName = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.start = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.end = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -37,12 +43,6 @@ namespace OTSMeasureApp
             this.diameterEnd = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.collectXray = new System.Windows.Forms.DataGridViewCheckBoxColumn();
             this.rangeChoose = new System.Windows.Forms.DataGridViewButtonColumn();
-            this.confirm = new System.Windows.Forms.Button();
-            this.button2 = new System.Windows.Forms.Button();
-            this.button1 = new System.Windows.Forms.Button();
-            this.button3 = new System.Windows.Forms.Button();
-            this.groupBox1 = new System.Windows.Forms.GroupBox();
-            this.checkBox1 = new System.Windows.Forms.CheckBox();
             ((System.ComponentModel.ISupportInitialize)(this.dg1)).BeginInit();
             this.groupBox1.SuspendLayout();
             this.SuspendLayout();
@@ -68,57 +68,6 @@ namespace OTSMeasureApp
             this.dg1.TabIndex = 2;
             this.dg1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dg1_CellContentClick);
             // 
-            // RegName
-            // 
-            this.RegName.DataPropertyName = "RegName";
-            this.RegName.HeaderText = "名称";
-            this.RegName.Name = "RegName";
-            this.RegName.Width = 80;
-            // 
-            // start
-            // 
-            this.start.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
-            this.start.DataPropertyName = "start";
-            this.start.HeaderText = "开始灰度(0-255)";
-            this.start.Name = "start";
-            // 
-            // end
-            // 
-            this.end.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
-            this.end.DataPropertyName = "end";
-            this.end.HeaderText = "结束灰度(0-255)";
-            this.end.Name = "end";
-            // 
-            // diameterStart
-            // 
-            this.diameterStart.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
-            this.diameterStart.DataPropertyName = "diameterStart";
-            this.diameterStart.HeaderText = "开始直径(微米)";
-            this.diameterStart.Name = "diameterStart";
-            // 
-            // diameterEnd
-            // 
-            this.diameterEnd.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
-            this.diameterEnd.DataPropertyName = "diameterEnd";
-            this.diameterEnd.HeaderText = "结束直径(微米)";
-            this.diameterEnd.Name = "diameterEnd";
-            // 
-            // collectXray
-            // 
-            this.collectXray.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
-            this.collectXray.DataPropertyName = "collectXray";
-            this.collectXray.HeaderText = "是否采集Xray";
-            this.collectXray.Name = "collectXray";
-            this.collectXray.Resizable = System.Windows.Forms.DataGridViewTriState.True;
-            this.collectXray.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
-            // 
-            // rangeChoose
-            // 
-            this.rangeChoose.HeaderText = "可视化选择";
-            this.rangeChoose.Name = "rangeChoose";
-            this.rangeChoose.Text = "灰度选择";
-            this.rangeChoose.UseColumnTextForButtonValue = true;
-            // 
             // confirm
             // 
             this.confirm.Location = new System.Drawing.Point(538, 378);
@@ -178,6 +127,57 @@ namespace OTSMeasureApp
             this.checkBox1.Text = "启用";
             this.checkBox1.UseVisualStyleBackColor = true;
             // 
+            // RegName
+            // 
+            this.RegName.DataPropertyName = "RegName";
+            this.RegName.HeaderText = "名称";
+            this.RegName.Name = "RegName";
+            this.RegName.Width = 80;
+            // 
+            // start
+            // 
+            this.start.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+            this.start.DataPropertyName = "start";
+            this.start.HeaderText = "开始灰度(0-255)";
+            this.start.Name = "start";
+            // 
+            // end
+            // 
+            this.end.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+            this.end.DataPropertyName = "end";
+            this.end.HeaderText = "结束灰度(0-255)";
+            this.end.Name = "end";
+            // 
+            // diameterStart
+            // 
+            this.diameterStart.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+            this.diameterStart.DataPropertyName = "diameterStart";
+            this.diameterStart.HeaderText = "开始直径(微米)";
+            this.diameterStart.Name = "diameterStart";
+            // 
+            // diameterEnd
+            // 
+            this.diameterEnd.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+            this.diameterEnd.DataPropertyName = "diameterEnd";
+            this.diameterEnd.HeaderText = "结束直径(微米)";
+            this.diameterEnd.Name = "diameterEnd";
+            // 
+            // collectXray
+            // 
+            this.collectXray.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+            this.collectXray.DataPropertyName = "collectXray";
+            this.collectXray.HeaderText = "是否采集Xray";
+            this.collectXray.Name = "collectXray";
+            this.collectXray.Resizable = System.Windows.Forms.DataGridViewTriState.True;
+            this.collectXray.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
+            // 
+            // rangeChoose
+            // 
+            this.rangeChoose.HeaderText = "可视化选择";
+            this.rangeChoose.Name = "rangeChoose";
+            this.rangeChoose.Text = "GrayLevel";
+            this.rangeChoose.UseColumnTextForButtonValue = true;
+            // 
             // SpecialParticleForm
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);

+ 4 - 3
OTSIncAMeasureApp/OTSIncAMeasureAppForm.cs

@@ -1155,7 +1155,7 @@ namespace OTSMeasureApp
             foreach (var s in this.m_ProjData.GetSampleList())
             {
                var stdname= s.GetMsrParams().GetSTDName();
-                if (stdname != "NoSTD")
+                if (stdname != "NoSTDDB")
                 {
                     if (!stdname.Contains(".db"))
                     {
@@ -1176,8 +1176,9 @@ namespace OTSMeasureApp
             catch (Exception ex)
             {
                 log.Error("OTSSysMgrApp:" + ex.ToString());
-            } 
-            
+            }
+
+
         }
 
         private void ribPolygon_Click(object sender, EventArgs e)

+ 16 - 0
OTSIncAMeasureApp/ServiceCenter/SemController.cs

@@ -507,6 +507,22 @@ namespace OTSModelSharp.ServiceCenter
             }
         }
 
+        public bool SetSemBeamCurrentOff()
+        {
+            if (isFEI)
+            {
+                return ApiClass.SetBeamStateOff();
+            }
+            else
+            {
+                if (!hw.IsConnected())
+                {
+                    return false;
+                }
+                //int seValue = b ? 1 : 0;
+                return hw.SetSemBeamCurrent(true);
+            }
+        }
         public OTSCLRINTERFACE.COTSControlFunExport GetHardwareInterface()
         {
             if (!hw.IsConnected())

+ 10 - 1
OTSIncAReportApp/1-UI/Control_Graph/Controls/Control_DrawDistrbutionImageAndBSE.cs

@@ -1523,6 +1523,7 @@ namespace OTSIncAReportGraph.Controls
         //复制图像
         private void toolStripMenuItem_copyimage_Click(object sender, EventArgs e)
         {
+            this.Cursor = System.Windows.Forms.Cursors.WaitCursor;
             SaveFileDialog sfd = new SaveFileDialog();
             //|ALL Files(*.*)|*.*
             //BMP Files(*.bmp)| *.bmp |
@@ -1538,7 +1539,7 @@ namespace OTSIncAReportGraph.Controls
                 bThread.IsBackground = true;
                 bThread.Start();
             }
-            
+            this.Cursor = System.Windows.Forms.Cursors.Default;
         }
 
         private void ToolStripMenuItem_movesempoint_Click(object sender, EventArgs e)
@@ -2069,7 +2070,12 @@ namespace OTSIncAReportGraph.Controls
 
         private void ExportoriginalspliceToolStripMenuItem_Click(object sender, EventArgs e)
         {
+            this.Cursor = System.Windows.Forms.Cursors.WaitCursor;
             SaveFileDialog sfd = new SaveFileDialog();
+
+            var particledata = new ParticleData(resultFile.FilePath);
+            DataTable ParticleAll = particledata.GetParticleTypeInformation();
+            DataTable ParticleClass = particledata.GetParticleClassAll();
             //|ALL Files(*.*)|*.*
             //BMP Files(*.bmp)| *.bmp |
             sfd.Filter = "png Files(*.png)| *.png |BMP Files(*.bmp)| *.bmp |JPG Files(*.jpg)|*.jpg;*.jpeg";
@@ -2080,10 +2086,13 @@ namespace OTSIncAReportGraph.Controls
                 outpic.resultFile = resultFile;
                 outpic.sfd = sfd;
                 outpic.type = (int)Outpic_enum.Render_pic;
+                outpic.ParticleData = ParticleAll.Copy();
+                outpic.ParticleClassData = ParticleClass.Copy();
                 Thread bThread = new Thread(new ThreadStart(outpic.opencv_outpic));
                 bThread.IsBackground = true;
                 bThread.Start();
             }
+            this.Cursor = System.Windows.Forms.Cursors.Default;
         }
 
         private void ToolStripMenuItemDelete_Particle_Click(object sender, EventArgs e)

+ 209 - 23
OTSIncAReportApp/1-UI/Control_Graph/Controls/OutPIC.cs

@@ -20,6 +20,8 @@ namespace OTSIncAReportApp._3_ServiceCenter
         public List<DisplayField> m_list_allDfield = null;
         public ResultFile resultFile = null;
         public SaveFileDialog sfd = null;
+        public DataTable ParticleData = new DataTable();
+        public DataTable ParticleClassData = new DataTable();
         public int type = 0;
         /// <summary>
         /// 获取每行图片的位置配合opencv方法使用
@@ -34,12 +36,15 @@ namespace OTSIncAReportApp._3_ServiceCenter
             foreach (var f in m_list_allDfield)
             {
                 DataRow dr = picDatat.NewRow();
-                dr["X"] = f.GetShowRect().X;
-                dr["Y"] = f.GetShowRect().Y;
+
+                dr["X"] = f.OTSCoordinatePos.X;
+                dr["Y"] = f.OTSCoordinatePos.Y;
+                //dr["X"] = f.GetShowRect().X;
+                //dr["Y"] = f.GetShowRect().Y;
                 picDatat.Rows.Add(dr);
             }
-            int y_max = Convert.ToInt32(picDatat.Compute("Max(Y)", "true"));
-            int y_min = Convert.ToInt32(picDatat.Compute("Min(Y)", "true"));
+            //int y_max = Convert.ToInt32(picDatat.Compute("Max(Y)", "true"));
+            //int y_min = Convert.ToInt32(picDatat.Compute("Min(Y)", "true"));
             DataTable total_dt_X = picDatat.Copy();
             DataView dv_x = total_dt_X.DefaultView;
             DataView dv_x_2 = dv_x.ToTable(true, "X").DefaultView;
@@ -60,27 +65,32 @@ namespace OTSIncAReportApp._3_ServiceCenter
                 DataTable data = new DataTable();
                 data.Columns.Add("mat", typeof(Bitmap));
                 data.Columns.Add("X", typeof(double));
+                data.Columns.Add("Y", typeof(double));
                 for (int a = 0; a < total_dt_X.Rows.Count; a++)
                 {
                     DataRow dr2 = data.NewRow();
-                    Bitmap bitmap = new Bitmap((int)m_list_allDfield[0].GetShowRect().Width, (int)m_list_allDfield[0].GetShowRect().Height);
+                    Bitmap bitmap = new Bitmap((int)m_list_allDfield[0].OriginalImage.Width, (int)m_list_allDfield[0].OriginalImage.Height);
+
+                    //Bitmap bitmap = new Bitmap((int)m_list_allDfield[0].GetShowRect().Width, (int)m_list_allDfield[0].GetShowRect().Height);
                     Graphics g = Graphics.FromImage(bitmap);
                     g.Clear(Color.White);
                     g.Dispose();
                     dr2["mat"] = bitmap;
                     dr2["X"] = total_dt_X.Rows[a]["X"];
+                    //dr2["Y"] = total_dt_X.Rows[a]["Y"];
                     data.Rows.Add(dr2);
                 }
                 foreach (var f in m_list_allDfield)
                 {
-                    if (total_dt_Y.Rows[i]["Y"].ToString() == f.GetShowRect().Y.ToString())
+                    if (total_dt_Y.Rows[i]["Y"].ToString() == f.OTSCoordinatePos.Y.ToString())
                     {
                         for (int c = 0; c < data.Rows.Count; c++)
                         {
-                            if (data.Rows[c]["X"].ToString() == f.GetShowRect().X.ToString())
+                            if (data.Rows[c]["X"].ToString() == f.OTSCoordinatePos.X.ToString())
                             {
                                 data.Rows[c]["mat"] = f.OriginalImage;
-                                data.Rows[c]["X"] = f.GetShowRect().X;
+                                data.Rows[c]["X"] = f.OTSCoordinatePos.X;
+                                data.Rows[c]["Y"] = f.OTSCoordinatePos.Y;
                             }
                         }
 
@@ -98,33 +108,119 @@ namespace OTSIncAReportApp._3_ServiceCenter
 
             return list_dt_picdata;
         }
-        public void opencv_outpic(/*int type*/)
+        public void opencv_outpic()
         {
+          
+
             List<DataTable> list_dt_picdata = new List<DataTable>();
+            OpenCvSharp.Mat[] list_mats;
             if (type == (int)Outpic_enum.pic)
             {
                 list_dt_picdata = opencv_piclist();
+                list_mats = new OpenCvSharp.Mat[list_dt_picdata.Count];
             }
             else
-                    if (type == (int)Outpic_enum.Render_pic)
+                    //if (type == (int)Outpic_enum.Render_pic)
             {
                 list_dt_picdata = opencv_piclist_Render();
+                list_mats = new OpenCvSharp.Mat[list_dt_picdata.Count + 1];
             }
 
-            OpenCvSharp.Mat[] list_mats = new OpenCvSharp.Mat[list_dt_picdata.Count];
+            //OpenCvSharp.Mat[] list_mats = new OpenCvSharp.Mat[list_dt_picdata.Count];
             NLog.LogManager.GetCurrentClassLogger().Info("Organize and splice all pictures......");
-            for (int i = 0; i < list_dt_picdata.Count; i++)
+
+            List<OpenCvSharp.Mat> list_pano = new List<OpenCvSharp.Mat>();
+
+            //循环保存每行拼接的图片
+            for (int i = list_dt_picdata.Count-1; i >= 0; i--)
             {
+                //拼接同一行中的图片
                 OpenCvSharp.Mat[] mats = new OpenCvSharp.Mat[list_dt_picdata[i].Rows.Count];
                 for (int a = 0; a < list_dt_picdata[i].Rows.Count; a++)
                 {
                     mats[a] = OpenCvSharp.Extensions.BitmapConverter.ToMat((Bitmap)list_dt_picdata[i].Rows[a]["mat"]);
                 }
                 OpenCvSharp.Mat pano = new OpenCvSharp.Mat();
+
+                
                 OpenCvSharp.Cv2.HConcat(mats, pano);
-                list_mats[i] = pano;
+                list_pano.Add(pano);
+                //list_mats[i] = pano;
+
+            }
+           
+
+            //导出原图(渲染图)在下方增加每种颜色的标注和面积占比
+            if (type == (int)Outpic_enum.Render_pic)
+            {
+                DataTable particleData = ParticleDataIntegration(ParticleData, ParticleClassData);
+                int NumberOfRows = getPICstringLong(particleData, list_pano);
+
+
+                Bitmap bitmap = new Bitmap(list_pano[0].Width, NumberOfRows*140);
+
+                Graphics g = Graphics.FromImage(bitmap);
+                g.Clear(Color.White);
+                int rowData = 10;
+
                 
+
+                
+
+                //矩形格子宽500
+
+                SolidBrush mysbrush1 = new SolidBrush(ColorTranslator.FromHtml("#000000"));
+                Pen mypen = new Pen(mysbrush1, 2);
+                Font myFont = new Font("宋体", 13, FontStyle.Bold);
+                SolidBrush sbrush = new SolidBrush(Color.Black);
+                int Color_Y = 10; int TypeName_Y = 40; int Prozentsatz_Y = 100;int Area_Y = 70;
+                int Gitter_X = 10;
+                picKopfzeile(mypen, myFont, sbrush, g, 10, rowData);
+              
+
+                Gitter_X = Gitter_X + 350;
+                for (int i = 0; i < particleData.Rows.Count; i++)
+                {
+                    if (Gitter_X+350> list_pano[0].Width)
+                    {
+                        rowData = rowData + 130;
+                        picKopfzeile(mypen, myFont, sbrush, g, 10, rowData);
+                        Color_Y = Color_Y + 130;
+                        TypeName_Y = TypeName_Y + 130;
+                        Prozentsatz_Y = Prozentsatz_Y + 130;
+                        Area_Y = Area_Y + 130;
+                        Gitter_X = 360;
+                    }
+                    g.DrawRectangle(mypen, Gitter_X, Color_Y, 350, 30);
+                    g.DrawRectangle(mypen, Gitter_X, TypeName_Y, 350, 30);
+                    g.DrawRectangle(mypen, Gitter_X, Area_Y, 350, 30);
+                    g.DrawRectangle(mypen, Gitter_X, Prozentsatz_Y, 350, 30);
+
+                    SolidBrush mysbrush = new SolidBrush(ColorTranslator.FromHtml(particleData.Rows[i]["Color"].ToString()));
+                    g.FillRectangle(mysbrush, Gitter_X + 1, Color_Y + 1, 348, 28);
+                    g.DrawString(particleData.Rows[i]["TypeName"].ToString(), myFont, sbrush, Gitter_X + 1, TypeName_Y + 2);
+                    g.DrawString(particleData.Rows[i]["Area"].ToString(), myFont, sbrush, Gitter_X + 1, Area_Y + 2);
+                    g.DrawString(particleData.Rows[i]["Percentage"].ToString()+"%", myFont, sbrush, Gitter_X + 1, Prozentsatz_Y + 2);
+
+                    Gitter_X = Gitter_X + 350;
+                }
+
+
+                g.Dispose();
+                //bitmap.Save("D:\\1.bmp");
+
+
+                OpenCvSharp.Mat pano = OpenCvSharp.Extensions.BitmapConverter.ToMat(bitmap);
+                list_pano.Add(pano);
             }
+
+
+
+            for (int i = 0; i < list_pano.Count; i++)
+            {
+                list_mats[i] = list_pano[i];
+            }
+
             NLog.LogManager.GetCurrentClassLogger().Info("Picture splicing completed.");
             NLog.LogManager.GetCurrentClassLogger().Info("Save to disk......");
             OpenCvSharp.Mat save_pano = new OpenCvSharp.Mat();
@@ -132,7 +228,90 @@ namespace OTSIncAReportApp._3_ServiceCenter
             OpenCvSharp.Cv2.ImWrite(sfd.FileName, save_pano);
             NLog.LogManager.GetCurrentClassLogger().Info("Save complete.");
         }
-       
+        private int getPICstringLong(DataTable particleData, List<OpenCvSharp.Mat> list_pano)
+        {
+            int Long = 1;
+            int Gitter_X = 10;
+            for (int i = 0; i < particleData.Rows.Count; i++)
+            {
+                if (Gitter_X + 350 > list_pano[0].Width)
+                {
+                    Long = Long + 1;
+                    Gitter_X = 10;
+                }
+                Gitter_X = Gitter_X + 350;
+            }
+            return Long;
+        }
+
+        private void picKopfzeile(Pen mypen, Font myFont, SolidBrush sbrush, Graphics g ,int X,int Y)
+        {
+
+            int Color_Y = Y; int TypeName_Y = Y+30; int Prozentsatz_Y = Y + 90; int Area_Y = Y+ 60;
+            int Gitter_X = X;
+
+            g.DrawRectangle(mypen, Gitter_X, Color_Y, 350, 30);
+            g.DrawRectangle(mypen, Gitter_X, TypeName_Y, 350, 30);
+            g.DrawRectangle(mypen, Gitter_X, Area_Y, 350, 30);
+            g.DrawRectangle(mypen, Gitter_X, Prozentsatz_Y, 350, 30);
+            g.DrawString("Color", myFont, sbrush, Gitter_X + 1, Color_Y + 2);
+            g.DrawString("TypeName", myFont, sbrush, Gitter_X + 1, TypeName_Y + 2);
+            g.DrawString("Area", myFont, sbrush, Gitter_X + 1, Area_Y + 2);
+            g.DrawString("Prozentsatz", myFont, sbrush, Gitter_X + 1, Prozentsatz_Y + 2);
+        }
+        private DataTable ParticleDataIntegration(DataTable ParticleAll,DataTable ParticleClass)
+        {
+            DataTable dt = ParticleClass.Copy();
+            dt.Columns.Add("Area", typeof(float));
+            dt.Columns.Add("Percentage");
+            dt.Columns.Add("Color");
+            double ParticleAreaTotal = 0;
+            for (int i=0;i< ParticleAll.Rows.Count;i++)
+            {
+                ParticleAreaTotal = ParticleAreaTotal + Convert.ToDouble(ParticleAll.Rows[i]["Area"]);
+            }
+
+            for (int i=0;i< dt.Rows.Count;i++)
+            {
+                double ParticleArea = 0;
+                double ParticleColer = 0;
+                for (int a=0;a< ParticleAll.Rows.Count;a++)
+                {
+                    if (dt.Rows[i]["TypeName"].ToString()== ParticleAll.Rows[a]["TypeName"].ToString())
+                    {
+                        ParticleArea = ParticleArea + Convert.ToDouble(ParticleAll.Rows[a]["Area"]);
+                        ParticleColer =  Convert.ToDouble(ParticleAll.Rows[a]["TypeColor"]);
+                    }
+                }
+                dt.Rows[i]["Area"] = ParticleArea;
+                dt.Rows[i]["Percentage"] = ParameterNormalization(ParticleAreaTotal, ParticleArea);
+                dt.Rows[i]["Color"] = ParticleColer;
+            }
+            return dt;
+        }
+
+        /// <summary>
+        /// 参数归一化
+        /// </summary>
+        /// <param name="a_mi">总数</param>
+        /// <param name="m">传参</param>
+        /// <returns></returns>
+        private string ParameterNormalization(double a_mi, double m)
+        {
+            double ColVal = Convert.ToDouble(m / a_mi * 100);
+            if (ColVal == 0)
+            {
+                return "";
+            }
+            else
+            {
+
+                return Math.Round(ColVal, 2).ToString();
+            }
+
+        }
+
+
         private List<DataTable> opencv_piclist_Render()
         {
             List<DataTable> list_dt_picdata = new List<DataTable>();
@@ -143,12 +322,11 @@ namespace OTSIncAReportApp._3_ServiceCenter
             foreach (var f in m_list_allDfield)
             {
                 DataRow dr = picDatat.NewRow();
-                dr["X"] = f.GetShowRect().X;
-                dr["Y"] = f.GetShowRect().Y;
+                dr["X"] = f.OTSCoordinatePos.X;
+                dr["Y"] = f.OTSCoordinatePos.Y;
                 picDatat.Rows.Add(dr);
             }
-            int y_max = Convert.ToInt32(picDatat.Compute("Max(Y)", "true"));
-            int y_min = Convert.ToInt32(picDatat.Compute("Min(Y)", "true"));
+
             DataTable total_dt_X = picDatat.Copy();
             DataView dv_x = total_dt_X.DefaultView;
             DataView dv_x_2 = dv_x.ToTable(true, "X").DefaultView;
@@ -162,7 +340,7 @@ namespace OTSIncAReportApp._3_ServiceCenter
             dv_Y_2.Sort = "Y ASC";
             total_dt_Y = dv_Y_2.ToTable();
 
-
+            //循环每一行图片
             for (int i = 0; i < total_dt_Y.Rows.Count; i++)
             {
                 NLog.LogManager.GetCurrentClassLogger().Info("Splice line" + i + 1.ToString() + "of" + total_dt_Y.Rows.Count.ToString() + ".....");
@@ -170,10 +348,14 @@ namespace OTSIncAReportApp._3_ServiceCenter
                 DataTable data = new DataTable();
                 data.Columns.Add("mat", typeof(Bitmap));
                 data.Columns.Add("X", typeof(double));
+                //循环每行图片进行拼接
                 for (int a = 0; a < total_dt_X.Rows.Count; a++)
                 {
                     DataRow dr2 = data.NewRow();
-                    Bitmap bitmap = new Bitmap((int)m_list_allDfield[0].GetShowRect().Width, (int)m_list_allDfield[0].GetShowRect().Height);
+
+                    Bitmap bitmap = new Bitmap((int)m_list_allDfield[0].OriginalImage.Width, (int)m_list_allDfield[0].OriginalImage.Height);
+
+                    //Bitmap bitmap = new Bitmap((int)m_list_allDfield[0].GetShowRect().Width, (int)m_list_allDfield[0].GetShowRect().Height);
                     Graphics g = Graphics.FromImage(bitmap);
                     g.Clear(Color.White);
                     g.Dispose();
@@ -181,13 +363,15 @@ namespace OTSIncAReportApp._3_ServiceCenter
                     dr2["X"] = total_dt_X.Rows[a]["X"];
                     data.Rows.Add(dr2);
                 }
+                //循环所有图片
                 foreach (var f in m_list_allDfield)
                 {
-                    if (total_dt_Y.Rows[i]["Y"].ToString() == f.GetShowRect().Y.ToString())
+                    if (total_dt_Y.Rows[i]["Y"].ToString() == f.OTSCoordinatePos.Y.ToString())
                     {
+                        //循环图片的行数
                         for (int c = 0; c < data.Rows.Count; c++)
                         {
-                            if (data.Rows[c]["X"].ToString() == f.GetShowRect().X.ToString())
+                            if (data.Rows[c]["X"].ToString() == f.OTSCoordinatePos.X.ToString())
                             {
                                 Bitmap image = new Bitmap(f.OriginalImage.Width, f.OriginalImage.Height);
                                 Graphics g2 = Graphics.FromImage(image);
@@ -227,13 +411,15 @@ namespace OTSIncAReportApp._3_ServiceCenter
                                     }
                                 }
                                 data.Rows[c]["mat"] = image;
-                                data.Rows[c]["X"] = f.GetShowRect().X;
+                                data.Rows[c]["X"] = f.OTSCoordinatePos.X;
                             }
                         }
                     }
 
                 }
 
+
+
                 DataView dataView1 = data.DefaultView;
                 dataView1.Sort = "X ASC";
                 data = dataView1.ToTable();

+ 62 - 62
OTSIncAReportApp/1-UI/Control_Grids/ParticlesGridDevidePage.Designer.cs

@@ -30,6 +30,10 @@
         {
             this.components = new System.ComponentModel.Container();
             this.panel2 = new System.Windows.Forms.Panel();
+            this.tB_FieldId = new System.Windows.Forms.TextBox();
+            this.label7 = new System.Windows.Forms.Label();
+            this.tB_ParticleId = new System.Windows.Forms.TextBox();
+            this.label3 = new System.Windows.Forms.Label();
             this.label_Condition = new System.Windows.Forms.Label();
             this.tbx_Type = new System.Windows.Forms.TextBox();
             this.btn_ReMeasure = new System.Windows.Forms.Button();
@@ -73,10 +77,6 @@
             this.ImportSTDDb = new System.Windows.Forms.ToolStripMenuItem();
             this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
             this.dgV_ParticlesDevidePage = new System.Windows.Forms.DataGridView();
-            this.label3 = new System.Windows.Forms.Label();
-            this.tB_ParticleId = new System.Windows.Forms.TextBox();
-            this.label7 = new System.Windows.Forms.Label();
-            this.tB_FieldId = new System.Windows.Forms.TextBox();
             this.panel2.SuspendLayout();
             this.panel1.SuspendLayout();
             this.contextMenuStrip1.SuspendLayout();
@@ -111,6 +111,40 @@
             this.panel2.Size = new System.Drawing.Size(1502, 37);
             this.panel2.TabIndex = 6;
             // 
+            // tB_FieldId
+            // 
+            this.tB_FieldId.Location = new System.Drawing.Point(549, 10);
+            this.tB_FieldId.Name = "tB_FieldId";
+            this.tB_FieldId.Size = new System.Drawing.Size(68, 21);
+            this.tB_FieldId.TabIndex = 39;
+            // 
+            // label7
+            // 
+            this.label7.AutoSize = true;
+            this.label7.Location = new System.Drawing.Point(484, 14);
+            this.label7.Name = "label7";
+            this.label7.Size = new System.Drawing.Size(47, 12);
+            this.label7.TabIndex = 38;
+            this.label7.Text = "FieldId";
+            // 
+            // tB_ParticleId
+            // 
+            this.tB_ParticleId.Location = new System.Drawing.Point(1244, 11);
+            this.tB_ParticleId.Name = "tB_ParticleId";
+            this.tB_ParticleId.Size = new System.Drawing.Size(76, 21);
+            this.tB_ParticleId.TabIndex = 37;
+            this.tB_ParticleId.Visible = false;
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.Location = new System.Drawing.Point(1164, 15);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(65, 12);
+            this.label3.TabIndex = 36;
+            this.label3.Text = "ParticleId";
+            this.label3.Visible = false;
+            // 
             // label_Condition
             // 
             this.label_Condition.AutoSize = true;
@@ -122,7 +156,7 @@
             // 
             // tbx_Type
             // 
-            this.tbx_Type.Location = new System.Drawing.Point(462, 10);
+            this.tbx_Type.Location = new System.Drawing.Point(723, 10);
             this.tbx_Type.Name = "tbx_Type";
             this.tbx_Type.Size = new System.Drawing.Size(69, 21);
             this.tbx_Type.TabIndex = 34;
@@ -130,7 +164,7 @@
             // 
             // btn_ReMeasure
             // 
-            this.btn_ReMeasure.Location = new System.Drawing.Point(900, 10);
+            this.btn_ReMeasure.Location = new System.Drawing.Point(1078, 10);
             this.btn_ReMeasure.Name = "btn_ReMeasure";
             this.btn_ReMeasure.Size = new System.Drawing.Size(80, 23);
             this.btn_ReMeasure.TabIndex = 33;
@@ -141,7 +175,7 @@
             // 
             // btn_Sel
             // 
-            this.btn_Sel.Location = new System.Drawing.Point(840, 10);
+            this.btn_Sel.Location = new System.Drawing.Point(809, 8);
             this.btn_Sel.Name = "btn_Sel";
             this.btn_Sel.Size = new System.Drawing.Size(54, 23);
             this.btn_Sel.TabIndex = 33;
@@ -152,7 +186,7 @@
             // label_ParticleName
             // 
             this.label_ParticleName.AutoSize = true;
-            this.label_ParticleName.Location = new System.Drawing.Point(409, 13);
+            this.label_ParticleName.Location = new System.Drawing.Point(635, 13);
             this.label_ParticleName.Name = "label_ParticleName";
             this.label_ParticleName.Size = new System.Drawing.Size(53, 12);
             this.label_ParticleName.TabIndex = 32;
@@ -161,7 +195,7 @@
             // label_Dmax
             // 
             this.label_Dmax.AutoSize = true;
-            this.label_Dmax.Location = new System.Drawing.Point(245, 15);
+            this.label_Dmax.Location = new System.Drawing.Point(309, 14);
             this.label_Dmax.Name = "label_Dmax";
             this.label_Dmax.Size = new System.Drawing.Size(59, 12);
             this.label_Dmax.TabIndex = 27;
@@ -169,7 +203,7 @@
             // 
             // tbx_DmaxMax
             // 
-            this.tbx_DmaxMax.Location = new System.Drawing.Point(365, 11);
+            this.tbx_DmaxMax.Location = new System.Drawing.Point(429, 10);
             this.tbx_DmaxMax.Name = "tbx_DmaxMax";
             this.tbx_DmaxMax.Size = new System.Drawing.Size(40, 21);
             this.tbx_DmaxMax.TabIndex = 25;
@@ -178,7 +212,7 @@
             // label9
             // 
             this.label9.AutoSize = true;
-            this.label9.Location = new System.Drawing.Point(351, 15);
+            this.label9.Location = new System.Drawing.Point(415, 14);
             this.label9.Name = "label9";
             this.label9.Size = new System.Drawing.Size(11, 12);
             this.label9.TabIndex = 24;
@@ -186,7 +220,7 @@
             // 
             // tbx_DmaxMin
             // 
-            this.tbx_DmaxMin.Location = new System.Drawing.Point(309, 11);
+            this.tbx_DmaxMin.Location = new System.Drawing.Point(373, 10);
             this.tbx_DmaxMin.Name = "tbx_DmaxMin";
             this.tbx_DmaxMin.Size = new System.Drawing.Size(40, 21);
             this.tbx_DmaxMin.TabIndex = 23;
@@ -195,7 +229,7 @@
             // label_Area
             // 
             this.label_Area.AutoSize = true;
-            this.label_Area.Location = new System.Drawing.Point(75, 13);
+            this.label_Area.Location = new System.Drawing.Point(127, 13);
             this.label_Area.Name = "label_Area";
             this.label_Area.Size = new System.Drawing.Size(65, 12);
             this.label_Area.TabIndex = 22;
@@ -203,7 +237,7 @@
             // 
             // Tbx_AreaMax
             // 
-            this.Tbx_AreaMax.Location = new System.Drawing.Point(199, 10);
+            this.Tbx_AreaMax.Location = new System.Drawing.Point(251, 10);
             this.Tbx_AreaMax.Name = "Tbx_AreaMax";
             this.Tbx_AreaMax.Size = new System.Drawing.Size(40, 21);
             this.Tbx_AreaMax.TabIndex = 4;
@@ -212,7 +246,7 @@
             // label5
             // 
             this.label5.AutoSize = true;
-            this.label5.Location = new System.Drawing.Point(185, 13);
+            this.label5.Location = new System.Drawing.Point(237, 13);
             this.label5.Name = "label5";
             this.label5.Size = new System.Drawing.Size(11, 12);
             this.label5.TabIndex = 3;
@@ -220,7 +254,7 @@
             // 
             // tBx_AreaMin
             // 
-            this.tBx_AreaMin.Location = new System.Drawing.Point(142, 10);
+            this.tBx_AreaMin.Location = new System.Drawing.Point(194, 10);
             this.tBx_AreaMin.Name = "tBx_AreaMin";
             this.tBx_AreaMin.Size = new System.Drawing.Size(40, 21);
             this.tBx_AreaMin.TabIndex = 2;
@@ -272,7 +306,7 @@
             // 
             this.cbB_PageSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
             this.cbB_PageSize.FormattingEnabled = true;
-            this.cbB_PageSize.Location = new System.Drawing.Point(136, 10);
+            this.cbB_PageSize.Location = new System.Drawing.Point(168, 10);
             this.cbB_PageSize.Name = "cbB_PageSize";
             this.cbB_PageSize.Size = new System.Drawing.Size(59, 20);
             this.cbB_PageSize.TabIndex = 38;
@@ -281,7 +315,7 @@
             // label6
             // 
             this.label6.AutoSize = true;
-            this.label6.Location = new System.Drawing.Point(262, 13);
+            this.label6.Location = new System.Drawing.Point(355, 13);
             this.label6.Name = "label6";
             this.label6.Size = new System.Drawing.Size(17, 12);
             this.label6.TabIndex = 37;
@@ -290,7 +324,7 @@
             // lblPageCount
             // 
             this.lblPageCount.AutoSize = true;
-            this.lblPageCount.Location = new System.Drawing.Point(240, 13);
+            this.lblPageCount.Location = new System.Drawing.Point(326, 13);
             this.lblPageCount.Name = "lblPageCount";
             this.lblPageCount.Size = new System.Drawing.Size(23, 12);
             this.lblPageCount.TabIndex = 36;
@@ -300,7 +334,7 @@
             // label4
             // 
             this.label4.AutoSize = true;
-            this.label4.Location = new System.Drawing.Point(55, 13);
+            this.label4.Location = new System.Drawing.Point(59, 13);
             this.label4.Name = "label4";
             this.label4.Size = new System.Drawing.Size(77, 12);
             this.label4.TabIndex = 35;
@@ -309,7 +343,7 @@
             // lblTotalCount
             // 
             this.lblTotalCount.AutoSize = true;
-            this.lblTotalCount.Location = new System.Drawing.Point(22, 13);
+            this.lblTotalCount.Location = new System.Drawing.Point(36, 13);
             this.lblTotalCount.Name = "lblTotalCount";
             this.lblTotalCount.Size = new System.Drawing.Size(17, 12);
             this.lblTotalCount.TabIndex = 34;
@@ -318,7 +352,7 @@
             // 
             // btnGo
             // 
-            this.btnGo.Location = new System.Drawing.Point(507, 7);
+            this.btnGo.Location = new System.Drawing.Point(604, 8);
             this.btnGo.Name = "btnGo";
             this.btnGo.Size = new System.Drawing.Size(37, 23);
             this.btnGo.TabIndex = 33;
@@ -328,7 +362,7 @@
             // 
             // lnkLast
             // 
-            this.lnkLast.Location = new System.Drawing.Point(464, 7);
+            this.lnkLast.Location = new System.Drawing.Point(561, 8);
             this.lnkLast.Name = "lnkLast";
             this.lnkLast.Size = new System.Drawing.Size(37, 23);
             this.lnkLast.TabIndex = 32;
@@ -338,7 +372,7 @@
             // 
             // lnkNext
             // 
-            this.lnkNext.Location = new System.Drawing.Point(421, 7);
+            this.lnkNext.Location = new System.Drawing.Point(518, 8);
             this.lnkNext.Name = "lnkNext";
             this.lnkNext.Size = new System.Drawing.Size(37, 23);
             this.lnkNext.TabIndex = 31;
@@ -348,7 +382,7 @@
             // 
             // txtPageNum
             // 
-            this.txtPageNum.Location = new System.Drawing.Point(378, 9);
+            this.txtPageNum.Location = new System.Drawing.Point(475, 10);
             this.txtPageNum.Name = "txtPageNum";
             this.txtPageNum.Size = new System.Drawing.Size(37, 21);
             this.txtPageNum.TabIndex = 30;
@@ -357,7 +391,7 @@
             // 
             // lnkPrev
             // 
-            this.lnkPrev.Location = new System.Drawing.Point(335, 7);
+            this.lnkPrev.Location = new System.Drawing.Point(432, 8);
             this.lnkPrev.Name = "lnkPrev";
             this.lnkPrev.Size = new System.Drawing.Size(37, 23);
             this.lnkPrev.TabIndex = 29;
@@ -367,7 +401,7 @@
             // 
             // lnkFirst
             // 
-            this.lnkFirst.Location = new System.Drawing.Point(292, 7);
+            this.lnkFirst.Location = new System.Drawing.Point(389, 8);
             this.lnkFirst.Name = "lnkFirst";
             this.lnkFirst.Size = new System.Drawing.Size(37, 23);
             this.lnkFirst.TabIndex = 28;
@@ -378,7 +412,7 @@
             // label2
             // 
             this.label2.AutoSize = true;
-            this.label2.Location = new System.Drawing.Point(199, 13);
+            this.label2.Location = new System.Drawing.Point(233, 13);
             this.label2.Name = "label2";
             this.label2.Size = new System.Drawing.Size(41, 12);
             this.label2.TabIndex = 27;
@@ -530,40 +564,6 @@
             this.dgV_ParticlesDevidePage.TabIndex = 5;
             this.dgV_ParticlesDevidePage.MouseDown += new System.Windows.Forms.MouseEventHandler(this.dgV_ParticlesDevidePage_MouseDown);
             // 
-            // label3
-            // 
-            this.label3.AutoSize = true;
-            this.label3.Location = new System.Drawing.Point(671, 14);
-            this.label3.Name = "label3";
-            this.label3.Size = new System.Drawing.Size(65, 12);
-            this.label3.TabIndex = 36;
-            this.label3.Text = "ParticleId";
-            this.label3.Visible = false;
-            // 
-            // tB_ParticleId
-            // 
-            this.tB_ParticleId.Location = new System.Drawing.Point(742, 10);
-            this.tB_ParticleId.Name = "tB_ParticleId";
-            this.tB_ParticleId.Size = new System.Drawing.Size(76, 21);
-            this.tB_ParticleId.TabIndex = 37;
-            this.tB_ParticleId.Visible = false;
-            // 
-            // label7
-            // 
-            this.label7.AutoSize = true;
-            this.label7.Location = new System.Drawing.Point(542, 15);
-            this.label7.Name = "label7";
-            this.label7.Size = new System.Drawing.Size(47, 12);
-            this.label7.TabIndex = 38;
-            this.label7.Text = "FieldId";
-            // 
-            // tB_FieldId
-            // 
-            this.tB_FieldId.Location = new System.Drawing.Point(595, 11);
-            this.tB_FieldId.Name = "tB_FieldId";
-            this.tB_FieldId.Size = new System.Drawing.Size(68, 21);
-            this.tB_FieldId.TabIndex = 39;
-            // 
             // ParticlesGridDevidePage
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);

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

@@ -67,6 +67,8 @@ namespace OTSIncAReportApp.DataOperation.DataAccess
             return listp;
 
         }
+
+
         /// <summary>
         /// 获取ParticleList
         /// </summary>
@@ -200,7 +202,26 @@ namespace OTSIncAReportApp.DataOperation.DataAccess
            
             return DT;
         }
-
+        /// <summary>
+        /// 查找所有颗粒的颜色、面积、种类名称信息
+        /// </summary>
+        /// <returns></returns>
+        public DataTable GetParticleTypeInformation()
+        {
+            string sqlp = @"select Area,TypeName,TypeColor from IncAData";
+            DataTable dt = dbHelper.ExecuteDataTable(sqlp, null);
+            return dt;
+        }
+        /// <summary>
+        /// 查找IncaData表中所有种类
+        /// </summary>
+        /// <returns></returns>
+        public DataTable GetParticleClassAll()
+        {
+            string sqlp = @"SELECT DISTINCT TypeName FROM IncaData";
+            DataTable dt = dbHelper.ExecuteDataTable(sqlp, null);
+            return dt;
+        }
 
         /// <summary>
         /// 获取所有Particle

+ 0 - 6
OTSPartA_STDEditor/OTSPartA_STDEditor.csproj

@@ -172,9 +172,6 @@
     <Compile Include="Form_PeriodicTable.Designer.cs">
       <DependentUpon>Form_PeriodicTable.cs</DependentUpon>
     </Compile>
-    <Compile Include="Frm_UserProgress.cs">
-      <SubType>Form</SubType>
-    </Compile>
     <Compile Include="ImportStandardLibraryTypeSelection.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -270,9 +267,6 @@
     <EmbeddedResource Include="Form_PeriodicTable.resx">
       <DependentUpon>Form_PeriodicTable.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="Frm_UserProgress.resx">
-      <DependentUpon>Frm_UserProgress.cs</DependentUpon>
-    </EmbeddedResource>
     <EmbeddedResource Include="ImportStandardLibraryTypeSelection.resx">
       <DependentUpon>ImportStandardLibraryTypeSelection.cs</DependentUpon>
     </EmbeddedResource>