Browse Source

Merge branch 'Release2.3' into cxs_dev

CXS 3 years ago
parent
commit
e2161a6953

+ 3 - 0
Bin/x64/Debug/Resources/XMLData/AppResource_EN.xml

@@ -889,6 +889,9 @@
 	  <Control name="AmericanStandard" text="American Standard"/>
 	  <Control name="GermanStandard" text="German standard"/>
 	  <Control name="CommonClassification" text="Common classification"/>
+	  <Control name="AllParticles" text="AllParticles" />
+	  <Control name="SelectParticles" text="SelectParticles" />
+	  <Control name="DataSourceType" text="DataSourceType" />
     </Controls>
  </Form>
   <Form>

+ 3 - 0
Bin/x64/Debug/Resources/XMLData/AppResource_ZH.xml

@@ -885,6 +885,9 @@
 	  <Control name="AmericanStandard" text="美标" />
 	  <Control name="GermanStandard" text="德标" />
 	  <Control name="CommonClassification" text="常用夹杂物分类" />
+	  <Control name="AllParticles" text="全部颗粒" />
+	  <Control name="SelectParticles" text="选择颗粒" />
+	  <Control name="DataSourceType" text="数据源类型" />
     </Controls>
  </Form>
  <Form>

+ 63 - 16
OTSIncAReportApp/1-UI/Control_ECharts/EChart_ParticlesComposition.cs

@@ -1,6 +1,7 @@
 using CefSharp;
 using CefSharp.WinForms;
 using Newtonsoft.Json;
+using OTSIncAReportApp.DataOperation.Model;
 using OTSIncAReportApp.OTSDataMgrFunction;
 using OTSIncAReportApp.OTSSampleReportInfo;
 using OTSIncAReportApp.SysMgrTools;
@@ -119,23 +120,68 @@ namespace OTSIncAReportApp.Control_ECharts
 
             //int idx = m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_ReportApp.SourceGridData.ConditionItemList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
             //int sel = m_ReportApp.SourceGridData.ConditionItemList[idx].comboDownList.IndexOf(m_ReportApp.SourceGridData.ConditionItemList[idx].itemVal.ToString());
-            int sel = m_conditionChoose.m_SourceGridData.GetPropIndexByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
-            string filedAndParticl = "";
+            //int sel = m_conditionChoose.m_SourceGridData.GetPropIndexByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
+            int sel = m_ReportApp.m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
+            DataTable dt = new DataTable();
             if (sel == 1)
             {
-                List<OTSIncAReportApp.DataOperation.Model.Particle> selectParticles = m_ReportApp.GetSelectedParticles();
-                foreach (var item in selectParticles)
+                
+                List<Particle> particles = m_ReportApp.GetSelectedParticles();
+                int SPINEL = 0;
+                int OXIDE = 0;
+                int SULFIDE_OXIDE = 0;
+                int NITRIDE = 0;
+                int SULFIDE = 0;
+                for (int i = 0; i < m_ReportApp.GetSelectedParticles().Count; i++)
                 {
-                    filedAndParticl = filedAndParticl + "," + (item.FieldId.ToString() + "-" + item.ParticleId.ToString());
-                }
-                if (filedAndParticl != "")
-                {
-                    filedAndParticl = filedAndParticl + ",";
+                    //SPINEL 
+                    if ((particles[i].TypeId >= 10100 || particles[i].TypeId <= 10199) || (particles[i].TypeId >= 12200 || particles[i].TypeId <= 12299) || (particles[i].TypeId >= 11300 || particles[i].TypeId <= 11299))
+                    {
+                        SPINEL = SPINEL + 1;
+                    }
+                    //OXIDE 
+                    if (particles[i].TypeId >= 10000 || particles[i].TypeId <= 10999)
+                    {
+                        OXIDE = OXIDE + 1;
+                    }
+                    //SULFIDE_OXIDE
+                    if ((particles[i].TypeId >= 11200 || particles[i].TypeId <= 11299) || (particles[i].TypeId >= 11400 || particles[i].TypeId <= 11499) || (particles[i].TypeId >= 11200 || particles[i].TypeId <= 11599))
+                    {
+                        SULFIDE_OXIDE = SULFIDE_OXIDE + 1;
+                    }
+                    //NITRIDE 
+                    if (particles[i].TypeId >= 12000 || particles[i].TypeId <= 12999)
+                    {
+                        NITRIDE = NITRIDE + 1;
+                    }
+                    //SULFIDE 
+                    if (particles[i].TypeId >= 11000 || particles[i].TypeId <= 11999)
+                    {
+                        SULFIDE = SULFIDE + 1;
+                    }
                 }
+                DataTable dataTable = new DataTable();
+                dataTable.Columns.Add("SPINEL", typeof(String));
+                dataTable.Columns.Add("OXIDE", typeof(String));
+                dataTable.Columns.Add("SULFIDE_OXIDE", typeof(String));
+                dataTable.Columns.Add("NITRIDE", typeof(String));
+                dataTable.Columns.Add("SULFIDE", typeof(String));
+                dataTable.Rows.Add();
+                dataTable.Rows[0]["SPINEL"] = SPINEL.ToString();
+                dataTable.Rows[0]["OXIDE"] = OXIDE.ToString();
+                dataTable.Rows[0]["SULFIDE_OXIDE"] = SULFIDE_OXIDE.ToString();
+                dataTable.Rows[0]["NITRIDE"] = NITRIDE.ToString();
+                dataTable.Rows[0]["SULFIDE"] = SULFIDE.ToString();
+                dt = dataTable;
+
+            }
+            else
+            {
+                dt = particledata.GetCommonlyUsedClassifyData();
             }
 
-            DataTable dt = particledata.GetCommonlyUsedClassifyData();
 
+            //DataTable dt = dataTable;
 
             //设置标签名称
             List<string> listName = new List<string>();
@@ -213,7 +259,8 @@ namespace OTSIncAReportApp.Control_ECharts
 
             //int idx = m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_ReportApp.SourceGridData.ConditionItemList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
             //int sel = m_ReportApp.SourceGridData.ConditionItemList[idx].comboDownList.IndexOf(m_ReportApp.SourceGridData.ConditionItemList[idx].itemVal.ToString());
-            int sel = m_conditionChoose.m_SourceGridData.GetPropIndexByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
+            //int sel = m_conditionChoose.m_SourceGridData.GetPropIndexByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
+            int sel = m_ReportApp.m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
 
             string filedAndParticl = "";
             if (sel == 1)
@@ -229,7 +276,7 @@ namespace OTSIncAReportApp.Control_ECharts
                 }
             }
 
-            DataTable dt = particledata.GetParticleListByIncA("area");
+            DataTable dt = particledata.GetParticleListForParticlSize("area", filedAndParticl);
             //设置标签名称
             List<string> listName = new List<string>();
             //ListName
@@ -303,8 +350,8 @@ namespace OTSIncAReportApp.Control_ECharts
 
             //int idx = m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_ReportApp.SourceGridData.ConditionItemList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
             //int sel = m_ReportApp.SourceGridData.ConditionItemList[idx].comboDownList.IndexOf(m_ReportApp.SourceGridData.ConditionItemList[idx].itemVal.ToString());
-            int sel = m_conditionChoose.m_SourceGridData.GetPropIndexByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
-
+            //int sel = m_conditionChoose.m_SourceGridData.GetPropIndexByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
+            int sel = m_ReportApp.m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
             string filedAndParticl = "";
             if (sel == 1)
             {
@@ -393,8 +440,8 @@ namespace OTSIncAReportApp.Control_ECharts
 
             //int idx = m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_ReportApp.SourceGridData.ConditionItemList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
             //int sel = m_ReportApp.SourceGridData.ConditionItemList[idx].comboDownList.IndexOf(m_ReportApp.SourceGridData.ConditionItemList[idx].itemVal.ToString());
-            int sel = m_conditionChoose.m_SourceGridData.GetPropIndexByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
-
+            //int sel = m_conditionChoose.m_SourceGridData.GetPropIndexByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
+            int sel = m_ReportApp.m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
             string filedAndParticl = "";
             if (sel == 1)
             {

+ 7 - 8
OTSIncAReportApp/1-UI/Control_Graph/Controls/Control_DrawDistrbutionImageAndBSE.cs

@@ -1121,8 +1121,8 @@ namespace OTSIncAReportGraph.Controls
                                 break;
 
                         }
-                       
-                      
+                        
+
                         foreach (DisplayParticle dp in m_list_allDPart)
                         {
                             if (dp.GetPaintState() != PaintState.NOPAINT )
@@ -1140,8 +1140,8 @@ namespace OTSIncAReportGraph.Controls
                     }
 
                     //这里恢复默认值
-                    m_SelectTool.Rect.Width = 0;
-                    m_SelectTool.Rect.Height = 0;
+                    //m_SelectTool.Rect.Width = 0;
+                    //m_SelectTool.Rect.Height = 0;
                     m_SelectTool.IsSelecting = false;
 
                 }
@@ -1270,7 +1270,7 @@ namespace OTSIncAReportGraph.Controls
         {
             List<DisplayParticle> selectedParts = new List<DisplayParticle>();
             List<Particle> Particles = new List<Particle>();
-            foreach (var dp in m_list_allDPart)
+            foreach (var dp  in m_list_allDPart)
             {
                 if (dp.IsSelect)
                 {
@@ -1280,11 +1280,10 @@ namespace OTSIncAReportGraph.Controls
                     particle.ParticleId = ((OTSIncAReportGraph.DisplayParticle)dp).ParticleId;
                     Particles.Add(particle);
                 }
-
             }
 
-            m_ReportApp.SetSelectedParticles(Particles);
-
+            frmReportApp.selectedRegion = m_SelectTool.Rect; 
+           
             SendSelectParticleListToReportFrame(selectedParts);
         }
 

+ 84 - 107
OTSIncAReportApp/1-UI/OTSDisplaySourceGridData/frmReportConditionChoose.cs

@@ -63,7 +63,7 @@ namespace OTSIncAReportApp
         }
         #endregion
 
-        private ConditionItem SetGeidData(OTS_REPORT_PROP_GRID_ITEMS ID,string name, OTS_ITEM_TYPES ValType,bool ReadOnly,string DescriptionInfo,object DisplayVal,List<string> DownList,object itemVal)
+        private void AddGridData(OTS_REPORT_PROP_GRID_ITEMS ID,string name, OTS_ITEM_TYPES ValType,bool ReadOnly,string DescriptionInfo,object DisplayVal,List<string> DownList,object itemVal)
         {
             ConditionItem sampleData = new ConditionItem();
             sampleData.iItemId = ID;
@@ -75,156 +75,133 @@ namespace OTSIncAReportApp
             sampleData.comboDownList = DownList;
             if(itemVal!=null)
                 sampleData.itemVal = itemVal;
-            return sampleData;
+            m_CurrentConditions.Add(ID, sampleData);
+            //return sampleData;
         }
         public void SetDefaultConditionValue()
         {
             m_CurrentConditions.Clear();
             //image condition items.
             #region 从xml文档中读取的数据信息
-            string ResultData = resTable["sscaptionname1"].ToString();//测量结果数据
-            string GraphicDisplayMode = resTable["sscaptionname3"].ToString();//测量图显示方式
-            string DistributionMap = resTable["sscaptionname14"].ToString();//颗粒分布图
-            string ArrangementDiagram = resTable["sscaptionname15"].ToString();//颗粒排列图
-            string ParticleDisplayMode = resTable["sscaptionname2"].ToString();//颗粒显示方式
-            string ParticleClassDiagram = resTable["sscaptionname13"].ToString();//颗粒分类图
+            string resultData = resTable["sscaptionname1"].ToString();//测量结果数据
+            string graphicDisplayMode = resTable["sscaptionname3"].ToString();//测量图显示方式
+            string distributionMap = resTable["sscaptionname14"].ToString();//颗粒分布图
+            string arrangementDiagram = resTable["sscaptionname15"].ToString();//颗粒排列图
+            string particleDisplayMode = resTable["sscaptionname2"].ToString();//颗粒显示方式
+            string particleClassDiagram = resTable["sscaptionname13"].ToString();//颗粒分类图
             string whole = resTable["sscaptionname16"].ToString();//全部
-            string AnalyticalParticle = resTable["sscaptionname17"].ToString();//分析颗粒
+            string analyticalParticle = resTable["sscaptionname17"].ToString();//分析颗粒
             string custom = resTable["sscaptionname18"].ToString();//自定义
-            string ParticleSize = resTable["sscaptionname5"].ToString();//粒级
-            string MinimumParticle = resTable["sscaptionname6"].ToString();//最小颗粒
-            string MaximumParticle = resTable["sscaptionname7"].ToString();//最大颗粒
-            string ArrangementMode = resTable["sscaptionname22"].ToString();//排列方式
-            string SortByType = resTable["sscaptionname20"].ToString();//按类型排列
-            string ArrangeBySize = resTable["sscaptionname21"].ToString();//按尺寸排列
-            string DimensionCalculationMethod = resTable["sscaptionname8"].ToString();//尺寸计算法
-            string DataTableType = resTable["sscaptionname10"].ToString();//数据表类型
-            string SurveyResults = resTable["sscaptionname25"].ToString();//测量结果概况
-            string SampleMeasurementInformation = resTable["sscaptionname26"].ToString(); //样品测量信息
+            string particleSize = resTable["sscaptionname5"].ToString();//粒级
+            string minimumParticle = resTable["sscaptionname6"].ToString();//最小颗粒
+            string maximumParticle = resTable["sscaptionname7"].ToString();//最大颗粒
+            string arrangementMode = resTable["sscaptionname22"].ToString();//排列方式
+            string sortByType = resTable["sscaptionname20"].ToString();//按类型排列
+            string arrangeBySize = resTable["sscaptionname21"].ToString();//按尺寸排列
+            string dimensionCalculationMethod = resTable["sscaptionname8"].ToString();//尺寸计算法
+            string dataTableType = resTable["sscaptionname10"].ToString();//数据表类型
+            string surveyResults = resTable["sscaptionname25"].ToString();//测量结果概况
+            string sampleMeasurementInformation = resTable["sscaptionname26"].ToString(); //样品测量信息
             string granularComponent= resTable["sscaptionname27"].ToString();//颗粒成分
-            string ElementComposition= resTable["sscaptionname28"].ToString();//元素成分
-            string ParticleSizeDistribution= resTable["sscaptionname29"].ToString();//颗粒尺寸分布
-            string AverageElementComposition= resTable["sscaptionname30"].ToString();//平均元素成分
-            string TernaryPhaseDiagram= resTable["sscaptionname12"].ToString();//三元相图
-
-            string BSEOriginal = resTable["bseoriginal"].ToString();//BSE原图
-            string ClassifiedDisplay = resTable["classifieddisplay"].ToString();//分类显示
-            string OriginalSplicing = resTable["originalsplicing"].ToString();//原图拼接
-            string OriginalDistribution = resTable["originaldistribution"].ToString();//原图颗粒分布
-            string ParticleSizeTable = resTable["particlesizetable"].ToString();//粒级表
-            string ChineseStandard1 = resTable["chinesestandard1"].ToString();//国标方法一
-            string ChineseStandard2 = resTable["chinesestandard2"].ToString();//国标方法二
-            string AmericanStandard = resTable["americanstandard"].ToString();//美标
-            string GermanStandard = resTable["germanstandard"].ToString();//德标
-            string CommonClassification = resTable["commonclassification"].ToString();//常用夹杂物分类
+            string elementComposition= resTable["sscaptionname28"].ToString();//元素成分
+            string particleSizeDistribution= resTable["sscaptionname29"].ToString();//颗粒尺寸分布
+            string averageElementComposition= resTable["sscaptionname30"].ToString();//平均元素成分
+            string ternaryPhaseDiagram= resTable["sscaptionname12"].ToString();//三元相图
+            string bseOriginal = resTable["bseoriginal"].ToString();//BSE原图
+            string classifiedDisplay = resTable["classifieddisplay"].ToString();//分类显示
+            string originalSplicing = resTable["originalsplicing"].ToString();//原图拼接
+            string originalDistribution = resTable["originaldistribution"].ToString();//原图颗粒分布
+            string particleSizeTable = resTable["particlesizetable"].ToString();//粒级表
+            string chineseStandard1 = resTable["chinesestandard1"].ToString();//国标方法一
+            string chineseStandard2 = resTable["chinesestandard2"].ToString();//国标方法二
+            string americanStandard = resTable["americanstandard"].ToString();//美标
+            string germanStandard = resTable["germanstandard"].ToString();//德标
+            string commonClassification = resTable["commonclassification"].ToString();//常用夹杂物分类
+            string allParticles = resTable["allparticles"].ToString();//全部颗粒
+            string selectParticles = resTable["selectparticles"].ToString();//选择颗粒
+            string dataSourceType = resTable["datasourcetype"].ToString();//数据源类型
             #endregion
 
 
             //测量结果数据源
             List<string> list_source_str = m_rstDataMgr.GetSampleListName();
-            string sSCaptionName1 = resTable["sscaptionname1"].ToString();
-            ConditionItem sampleData = new ConditionItem();
-            sampleData.iItemId = OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE;
-            sampleData.sSCaptionName = sSCaptionName1;
-            sampleData.iItemValType = OTS_ITEM_TYPES.COMBO;
-            sampleData.bReadOnly = false;
-            sampleData.sDescriptionInfo = "Select Measurement Result";
-            sampleData.itemDisplayVal = list_source_str[m_rstDataMgr.GetWorkingResult()];
-            sampleData.comboDownList = list_source_str;
-            sampleData.itemVal = m_rstDataMgr.GetWorkingResult();
-            m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,sampleData);
+            AddGridData(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE, resultData, OTS_ITEM_TYPES.COMBO, false, "Select Measurement Result", list_source_str[m_rstDataMgr.GetWorkingResult()], list_source_str, m_rstDataMgr.GetWorkingResult());
+            
             //数据源类型,全部 or selected
-            List<string> list_sourcetype = new List<string>() { "全部颗粒","选择颗粒" };
-            //string sSCaptionName1 = resTable["sscaptionname1"].ToString();
-            ConditionItem sampleDatatype = new ConditionItem();
-            sampleDatatype.iItemId = OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE;
-            sampleDatatype.sSCaptionName = "数据源类型";
-            sampleDatatype.iItemValType = OTS_ITEM_TYPES.COMBO;
-            sampleDatatype.bReadOnly = false;
-            sampleDatatype.sDescriptionInfo = "data source type";
-            sampleDatatype.itemDisplayVal = list_sourcetype[(int)DATASOURCE_TYPE.ALL];
-            sampleDatatype.comboDownList = list_sourcetype;
-            sampleDatatype.itemVal = DATASOURCE_TYPE.ALL;
-            m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE, sampleDatatype);
+            List<string> list_sourcetype = new List<string>() { allParticles, selectParticles };
+            AddGridData(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE, dataSourceType, OTS_ITEM_TYPES.COMBO, false, "data source type", list_sourcetype[(int)DATASOURCE_TYPE.ALL], list_sourcetype, DATASOURCE_TYPE.ALL);
+            
             //测量图类别 分布图 or 排列图
 
-            List<string> list1 = new List<string>() { DistributionMap, ArrangementDiagram };
-            ConditionItem sampleData2 = SetGeidData(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE, GraphicDisplayMode, OTS_ITEM_TYPES.COMBO,false, "image display mode", list1[0], list1, IMAGE_DISPLAY_TYPE.DISTRIBUTION);
-            m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,sampleData2);
-            ConditionItem sampleData1 = SetGeidData(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE, ParticleDisplayMode, OTS_ITEM_TYPES.COMBO, false, "distribution image Type", BSEOriginal, new List<string>() { BSEOriginal, ClassifiedDisplay, OriginalSplicing, OriginalDistribution }, IMAGE_TYPE.BSE);
-            m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,sampleData1);
+            List<string> list1 = new List<string>() { distributionMap, arrangementDiagram };
+            AddGridData(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE, graphicDisplayMode, OTS_ITEM_TYPES.COMBO, false, "image display mode", list1[0], list1, IMAGE_DISPLAY_TYPE.DISTRIBUTION);
+            
+            AddGridData(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE, particleDisplayMode, OTS_ITEM_TYPES.COMBO, false, "distribution image Type", bseOriginal, new List<string>() { bseOriginal, classifiedDisplay, originalSplicing, originalDistribution }, IMAGE_TYPE.BSE);
+            
 
             //粒级表
             List<string> list_partsizelist = m_rstDataMgr.GetPartSizeFileList();//从系统默认的路径中查找出所有的粒级表文件
-            ConditionItem sampleData_partsizefile = SetGeidData(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE, ParticleSizeTable, OTS_ITEM_TYPES.COMBO, false, "Particle Table", list_partsizelist[0], list_partsizelist, 0);
-            m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE,sampleData_partsizefile);
+            AddGridData(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE, particleSizeTable, OTS_ITEM_TYPES.COMBO, false, "Particle Table", list_partsizelist[0], list_partsizelist, 0);
+            
 
             //粒级
             List<string> sizeList = new List<string>();
             sizeList = m_rstDataMgr.GetPartSizeList();//获取粒级后额外增加全部,自定义,选项
             sizeList.Insert(0, whole);//全部
             sizeList.Insert(1, custom);//自定义
-            ConditionItem sampleData4 = SetGeidData(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS, ParticleSize, OTS_ITEM_TYPES.COMBO, false, "Grain Size", sizeList[0], sizeList, 0);
-            m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,sampleData4);
+            AddGridData(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS, particleSize, OTS_ITEM_TYPES.COMBO, false, "Grain Size", sizeList[0], sizeList, 0);
+            
 
             //自定义最小
-            ConditionItem sampleData41 = SetGeidData(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN, MinimumParticle, OTS_ITEM_TYPES.DOUBLE, false, "Smallest Particle", "0", new List<string> { }, null);
-            m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN,sampleData41);
+            AddGridData(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN, minimumParticle, OTS_ITEM_TYPES.DOUBLE, false, "Smallest Particle", "0", new List<string> { }, null);
+            
 
             //自定义最大
-            ConditionItem sampleData42 = SetGeidData(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX, MaximumParticle, OTS_ITEM_TYPES.DOUBLE, false, "Maximum Particle", "0", new List<string> { }, null);
-            m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX,sampleData42);
+            AddGridData(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX, maximumParticle, OTS_ITEM_TYPES.DOUBLE, false, "Maximum Particle", "0", new List<string> { }, null);
+            
 
             //排列图显示类别
-            List<string> list3 = new List<string>() { SortByType, ArrangeBySize };
-            ConditionItem sampleData6 = SetGeidData(OTS_REPORT_PROP_GRID_ITEMS.IMAGEGRID_DIS_TYPE, ArrangementMode, OTS_ITEM_TYPES.COMBO, false, "Measured Data", list3[0], list3, IMAGEGRID_DIS_TYPE.CLASSIFY_TYPE);
-            m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.IMAGEGRID_DIS_TYPE,sampleData6);
+            List<string> list3 = new List<string>() { sortByType, arrangeBySize };
+            AddGridData(OTS_REPORT_PROP_GRID_ITEMS.IMAGEGRID_DIS_TYPE, arrangementMode, OTS_ITEM_TYPES.COMBO, false, "Measured Data", list3[0], list3, IMAGEGRID_DIS_TYPE.CLASSIFY_TYPE);
+            
 
             //计算方式
-            string sSCaptionName8 = resTable["sscaptionname8"].ToString();
-            ConditionItem sampleData5 = new ConditionItem();
-            sampleData5.iItemId = OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE;
-            sampleData5.sSCaptionName = sSCaptionName8;
-            sampleData5.iItemValType = OTS_ITEM_TYPES.COMBO;
-            sampleData5.bReadOnly = false;
-            sampleData5.sDescriptionInfo = "image property calculation method";
-            sampleData5.itemDisplayVal = "DMAX";
-            sampleData5.itemVal = SIZE_CAL_METHOD_TYPE.DMAX;
-            sampleData5.comboDownList = m_rstDataMgr.GetSizeCalMethodTypeList();
-            m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE,sampleData5);
-
-            // grid condition items
+            AddGridData(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE, dimensionCalculationMethod, OTS_ITEM_TYPES.COMBO, false, "image property calculation method", "DMAX", m_rstDataMgr.GetSizeCalMethodTypeList(), SIZE_CAL_METHOD_TYPE.DMAX);
+            
+
+           
             //数据表类型
-            string sSCaptionName10 = resTable["sscaptionname10"].ToString();
-            List<string> list2 = new List<string>() { SurveyResults, SampleMeasurementInformation, granularComponent, ElementComposition, ParticleSizeDistribution, AverageElementComposition };
-            string[] aa = m_ReportApp.Text.Split('-');
-            List<string> listStd = new List<string>() { ChineseStandard1, ChineseStandard2, AmericanStandard, GermanStandard };
+            List<string> list2 = new List<string>() { surveyResults, sampleMeasurementInformation, granularComponent, elementComposition, particleSizeDistribution, averageElementComposition };
+            //string[] aa = m_ReportApp.Text.Split('-');
+            List<string> listStd = new List<string>() { chineseStandard1, chineseStandard2, americanStandard, germanStandard };
             list2.AddRange(listStd);
-            ConditionItem sampleData3 = SetGeidData(OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE, DataTableType, OTS_ITEM_TYPES.COMBO, false, "Data table type", list2[0], list2, CALCULATE_TABLE_TYPE.MEASURE_INFO);
-            m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE,sampleData3);
+            AddGridData(OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE, dataTableType, OTS_ITEM_TYPES.COMBO, false, "Data table type", list2[0], list2, CALCULATE_TABLE_TYPE.MEASURE_INFO);
+            
 
             // chart condition items
            
-            List<string> list22 = new List<string>() { CommonClassification, granularComponent, ElementComposition, ParticleSizeDistribution, TernaryPhaseDiagram };
-            ConditionItem sampleData22 = SetGeidData(OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE, DataTableType, OTS_ITEM_TYPES.COMBO, false, "Data graph type", list22[0], list22, CALCULATE_CHART_TYPE.COMMON_FIVE);
-            m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE, sampleData22);
+            List<string> list22 = new List<string>() { commonClassification, granularComponent, elementComposition, particleSizeDistribution, ternaryPhaseDiagram };
+            AddGridData(OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE, dataTableType, OTS_ITEM_TYPES.COMBO, false, "Data graph type", list22[0], list22, CALCULATE_CHART_TYPE.COMMON_FIVE);
+           
 
             //三元相图模板
             List<string> trio_listname = m_rstDataMgr.GetTriTemplateNameList();
-            ConditionItem sampleData15 = SetGeidData(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE, TernaryPhaseDiagram, OTS_ITEM_TYPES.COMBO, false, "Ternary phase diagram", trio_listname.First(), trio_listname, null);
-            m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE,sampleData15);
+            AddGridData(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE, ternaryPhaseDiagram, OTS_ITEM_TYPES.COMBO, false, "Ternary phase diagram", trio_listname.First(), trio_listname, null);
+            
             //颗粒分类ID
-            string stdIdcaption = "ClassifyId";
-            ConditionItem stdIdItm = new ConditionItem();
+
+            //string stdIdcaption = "ClassifyId";
+            //ConditionItem stdIdItm = new ConditionItem();
             List<string> stdlistname = m_rstDataMgr.GetSTDIdList();
-            stdIdItm.iItemId = OTS_REPORT_PROP_GRID_ITEMS.STD_ID;
-            stdIdItm.sSCaptionName = stdIdcaption;
-            stdIdItm.iItemValType = OTS_ITEM_TYPES.COMBO;
-            stdIdItm.bReadOnly = false;
-            stdIdItm.sDescriptionInfo = "std list";
-            stdIdItm.itemDisplayVal = stdlistname[0];
-            stdIdItm.comboDownList = stdlistname; 
-            m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.STD_ID, stdIdItm);
+            //stdIdItm.iItemId = OTS_REPORT_PROP_GRID_ITEMS.STD_ID;
+            //stdIdItm.sSCaptionName = stdIdcaption;
+            //stdIdItm.iItemValType = OTS_ITEM_TYPES.COMBO;
+            //stdIdItm.bReadOnly = false;
+            //stdIdItm.sDescriptionInfo = "std list";
+            //stdIdItm.itemDisplayVal = stdlistname[0];
+            //stdIdItm.comboDownList = stdlistname; 
+            //m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.STD_ID, stdIdItm);
+            AddGridData(OTS_REPORT_PROP_GRID_ITEMS.STD_ID, "ClassifyId", OTS_ITEM_TYPES.COMBO, false, "std list", stdlistname[0], stdlistname, null);
 
 
         }

+ 9 - 2
OTSIncAReportApp/1-UI/frmReportApp.cs

@@ -167,7 +167,14 @@ namespace OTSIncAReportApp
             }
             return parts;
         }
-
+        protected void DeleteSelectedParticles()
+        {
+            foreach (var p in selectedParticles.Values)
+            {
+                var dp = (p as DisplayParticle);
+                dp.IsSelect = false;
+            }
+        }
         public void SetSelectedParticles(List<Particle> value)
         {
             foreach (var p in im_Control_DrawDistrbutionImageAndBSE.m_list_allDPart)
@@ -789,7 +796,7 @@ namespace OTSIncAReportApp
         private void rbCancel_Click(object sender, EventArgs e)
         {
             int tabIndex = (int)(m_conditionChoose.tabIndex);
-
+            DeleteSelectedParticles();
             switch (tabIndex)
             {
                 case (int)DisplayPicutureType.AnalyzeImg: