Pārlūkot izejas kodu

add read simimage.tiff function.

gsp 4 gadi atpakaļ
vecāks
revīzija
06bea41160

+ 3 - 3
Bin/x64/Debug/Resources/XMLData/ResourceForCpp/ResourceForCpp-EN.xml

@@ -64,8 +64,8 @@
 			<member itemKey="20030" itemName="" itemText="Downward" description=""/>
 			<member itemKey="20031" itemName="" itemText="Upward" description=""/>
 
-			<member itemKey="20020" itemName="" itemText="MinParticalDiamiter(um)"/>
-			<member itemKey="20021" itemName="" itemText="MaxParticalDiamiter(um)"/>
+			<member itemKey="20020" itemName="" itemText="MinEqualCirCleDiameter(um)"/>
+			<member itemKey="20021" itemName="" itemText="MaxEqualCirCleDiamiter(um)"/>
 			<member itemKey="20022" itemName="" itemText="BG_GRAY_MIN"/>
 			<member itemKey="20023" itemName="" itemText="BG_GRAY_MAX"/>
 			<member itemKey="20024" itemName="" itemText="PART_GRAY_MIN"/>
@@ -88,7 +88,7 @@
 			<member itemKey="20032" itemName="" itemText="Analysis_x-ray(ms)"/>
 			<member itemKey="20033" itemName="" itemText="ScanMode"/>
 			<member itemKey="20034" itemName="" itemText="ExpectCounts"/>
-			<member itemKey="20036" itemName="" itemText="QuantifyThreshold(um)" description="进行X-ray quantify 分析的最小颗粒尺寸"/>
+			<member itemKey="20036" itemName="" itemText="QuantifyThreshold(EqualCircle/um)" description="进行X-ray quantify 分析的最小颗粒尺寸"/>
 			<member itemKey="20037" itemName="" itemText="FastX-ray(Ms)" description="进行X-ray quantify 分析的最小颗粒尺寸"/>
 			<member itemKey="20038" itemName="" itemText="Collect X-ray" description="Whether to collect X-ray during the detection process"/>
 			<member itemKey="20185" itemName="" itemText="Spot Scan"/>

+ 3 - 3
Bin/x64/Debug/Resources/XMLData/ResourceForCpp/ResourceForCpp-ZH.xml

@@ -68,8 +68,8 @@
 			<member itemKey="20023" itemName="" itemText="背景灰度最大值" description="输入背景灰度最大值(0~255),不小于背景灰度最小值。"/>
 			<member itemKey="20024" itemName="" itemText="颗粒灰度最小值" description="输入分析颗粒灰度最大值(0~255)。"/>
 			<member itemKey="20025" itemName="" itemText="颗粒灰度最大值" description="输入分析颗粒灰度最大值(0~255),不小于分析颗粒灰度最小值。"/>
-			<member itemKey="20020" itemName="" itemText="颗粒直径最小值(微米)" description="输入分析颗粒面积最小值(微米)。"/>
-			<member itemKey="20021" itemName="" itemText="颗粒直径最大值(微米)" description="输入分析颗粒面积最大值(微米)。"/>
+			<member itemKey="20020" itemName="" itemText="等效圆直径最小值(微米)" description="输入分析颗粒面积最小值(微米)。"/>
+			<member itemKey="20021" itemName="" itemText="等效圆直径最大值(微米)" description="输入分析颗粒面积最大值(微米)。"/>
 			
 			<member itemKey="20090" itemName="" itemText="输入分析颗粒面积最小值(微米)。"/>
 			<member itemKey="20091" itemName="" itemText="输入分析颗粒面积最大值(微米)。"/>
@@ -89,7 +89,7 @@
 			<member itemKey="20032" itemName="" itemText="定量分析x-ray时间(毫秒)" description="输入分析x-ray时间。"/>
 			<member itemKey="20033" itemName="" itemText="扫描方式" description="选择分析x-ray扫描方式。"/>
 			<member itemKey="20034" itemName="" itemText="期望计数率" description="输入分析x-ray计数率期望值。"/>
-			<member itemKey="20036" itemName="" itemText="定量分析阈值(微米)" description="进行X-ray quantify 分析的最小颗粒尺寸"/>
+			<member itemKey="20036" itemName="" itemText="分析阈值(等效圆直径/微米)" description="进行X-ray quantify 分析的最小颗粒尺寸"/>
 			<member itemKey="20037" itemName="" itemText="快速x-ray时间(毫秒)" description="进行X-ray quantify 分析的最小颗粒尺寸"/>
 			<member itemKey="20038" itemName="" itemText="是否采集X-ray" description="检测过程中是否对颗粒进行X-ray采集"/>
 			<member itemKey="20185" itemName="" itemText="点扫描" description=""/>

+ 116 - 38
OTSCPP/OTSControl/OTSScanBase.cpp

@@ -1,5 +1,6 @@
 #include "stdafx.h"
 #include "OTSScanBase.h"
+#include <atlimage.h>
 
 
 namespace OTSController {
@@ -34,6 +35,7 @@ namespace OTSController {
 	// get image from a file
 	CBSEImgPtr COTSScanBase::AcquireBSEImageFromBitmapFile()
 	{
+
 		// prepare file
 		CFile file;
 		CFileException fe;
@@ -45,56 +47,132 @@ namespace OTSController {
 
 		// get simulation image file name
 		CString strOTSSysDataPath = GetCompanySysDataPathName();
-		CString strImageFilePathName = strOTSSysDataPath + SIMULATION_IMAGE_FILEPATH  + _T("\\") +   SIMULATION_IMAGE_FILENAME;
-
+		CString strBitmapFilePathName = strOTSSysDataPath + SIMULATION_IMAGE_FILEPATH + _T("\\") + SIMULATION_IMAGE_FILENAME;
+		CString strtiffFilePathName = strOTSSysDataPath + SIMULATION_IMAGE_FILEPATH + _T("\\") + SIMULATION_TIFFIMAGE_FILENAME;
+		CString strjpegFilePathName = strOTSSysDataPath + SIMULATION_IMAGE_FILEPATH + _T("\\") + SIMULATION_JPEGIMAGE_FILENAME;
+		CString strpngFilePathName = strOTSSysDataPath + SIMULATION_IMAGE_FILEPATH + _T("\\") + SIMULATION_PNGIMAGE_FILENAME;
+		CBSEImgPtr bseImage(new CBSEImg());
 		// check if the file exist 
-		if (!Exists(strImageFilePathName))
+		if (Exists(strBitmapFilePathName))
 		{
-			// simulation spectrum file doesn't exist
-			LogInfoTrace(__FILE__, __LINE__, _T("COTSEDSBase::AcquireBSEImageFromBitmapFile: simulation image file doesn't exist."));
-			return nullptr;
-		}		
-
-		if (!file.Open(strImageFilePathName, CFile::modeRead, &fe))
+			if (!file.Open(strBitmapFilePathName, CFile::modeRead, &fe))
+			{
+				LogInfoTrace(__FILE__, __LINE__, _T("COTSEDSBase::AcquireBSEImageFromBitmapFile: failed to open simulation image file %s."), strBitmapFilePathName);
+				return nullptr;
+			}
+
+			// read file header
+			file.Read(m_pBmfh, sizeof(BITMAPFILEHEADER));
+			m_pBmInfo = new BYTE[m_pBmfh->bfOffBits - 14];
+
+			file.Read(m_pBmInfo, m_pBmfh->bfOffBits - 14);
+
+			BITMAPINFOHEADER bmih;
+			memcpy(&bmih, m_pBmInfo, sizeof(BITMAPINFOHEADER));
+
+			long width = bmih.biWidth;//获取宽度
+			int bitCount = bmih.biBitCount;//获取位数
+			long height = bmih.biHeight;//获取高度
+			long LineBytes = (width * bitCount + 31) / 32 * 4;//计算每行像素所占的字节数
+
+			m_pPixel = new BYTE[height * LineBytes];
+			file.Read(m_pPixel, height * LineBytes);
+			file.Close();
+
+		
+			CRect imageRect(0, 0, width, height);
+			bseImage->SetImageRect(imageRect);
+			bseImage->InitImageData(width, height);
+			BYTE* pImageData = bseImage->GetImageDataPointer();
+
+			long nActImageSize = width * height;
+			for (int i = 0; i < height; i++)
+			{
+				memcpy(pImageData + i * width, m_pPixel + (height - i) * width, width);
+			}
+
+			delete[]m_pPixel;
+			delete[]m_pBmInfo;
+			delete m_pBmfh;
+
+			
+		}
+		else if(Exists(strtiffFilePathName))
 		{
-			LogInfoTrace(__FILE__, __LINE__, _T("COTSEDSBase::AcquireBSEImageFromBitmapFile: failed to open simulation image file %s."), strImageFilePathName);
-			return nullptr;
+			bseImage = AcquireBSEImageFromTiffFile();
 		}
+		else if (Exists(strjpegFilePathName))
+		{
+			bseImage = AcquireBSEImageFromJpegFile();
 
-		// read file header
-		file.Read(m_pBmfh, sizeof(BITMAPFILEHEADER));
-		m_pBmInfo = new BYTE[m_pBmfh->bfOffBits - 14];
-
-		file.Read(m_pBmInfo, m_pBmfh->bfOffBits - 14);
-
-		BITMAPINFOHEADER bmih;
-		memcpy(&bmih, m_pBmInfo, sizeof(BITMAPINFOHEADER));
+		}
+		else if (Exists(strpngFilePathName))
+		{
+			bseImage = AcquireBSEImageFromPngFile();
+		}
+		return bseImage;
+	}
+	CBSEImgPtr COTSScanBase::AcquireBSEImageFromTiffFile()
+	{
+		CImage* img = new CImage();
+		CBSEImgPtr bseImage(new CBSEImg());
+		CString strOTSSysDataPath = GetCompanySysDataPathName();
+		CString strImageFilePathName = strOTSSysDataPath + SIMULATION_IMAGE_FILEPATH + _T("\\") + SIMULATION_TIFFIMAGE_FILENAME;
+		if (Exists(strImageFilePathName))
+		{
+			img->Load(strImageFilePathName);
+			long width = img->GetWidth();
+		
+			long height = img->GetHeight();
+			
+			CRect imageRect(0, 0, width, height);
+			bseImage->SetImageRect(imageRect);
+			BYTE* data = (BYTE*)img->GetBits();
+			bseImage->SetImageData(data, width, height);
+			
+		}
+		return bseImage;
+	}
+	CBSEImgPtr COTSScanBase::AcquireBSEImageFromJpegFile()
+	{
+		CImage* img = new CImage();
+		CBSEImgPtr bseImage(new CBSEImg());
+		CString strOTSSysDataPath = GetCompanySysDataPathName();
+		CString strImageFilePathName = strOTSSysDataPath + SIMULATION_IMAGE_FILEPATH + _T("\\") + SIMULATION_JPEGIMAGE_FILENAME;
+		if (Exists(strImageFilePathName))
+		{
+			img->Load(strImageFilePathName);
+			long width = img->GetWidth();
 
-		long width = bmih.biWidth;//获取宽度
-		int bitCount = bmih.biBitCount;//获取位数
-		long height = bmih.biHeight;//获取高度
-		long LineBytes = (width*bitCount + 31) / 32 * 4;//计算每行像素所占的字节数
+			long height = img->GetHeight();
 
-		m_pPixel = new BYTE[height*LineBytes];
-		file.Read(m_pPixel, height*LineBytes);
-		file.Close();
+			CRect imageRect(0, 0, width, height);
+			bseImage->SetImageRect(imageRect);
+			BYTE* data = (BYTE*)img->GetBits();
+			bseImage->SetImageData(data, width, height);
 
+		}
+		return bseImage;
+	}
+	CBSEImgPtr COTSScanBase::AcquireBSEImageFromPngFile()
+	{
+		CImage* img = new CImage();
 		CBSEImgPtr bseImage(new CBSEImg());
-		CRect imageRect(0, 0, width, height);
-		bseImage->SetImageRect(imageRect);
-		bseImage->InitImageData(width, height);
-		BYTE* pImageData = bseImage->GetImageDataPointer();
-
-		long nActImageSize = width * height;
-		for (int i = 0; i < height; i++)
+		CString strOTSSysDataPath = GetCompanySysDataPathName();
+		CString strImageFilePathName = strOTSSysDataPath + SIMULATION_IMAGE_FILEPATH + _T("\\") + SIMULATION_PNGIMAGE_FILENAME;
+		if (Exists(strImageFilePathName))
 		{
-			memcpy(pImageData + i * width, m_pPixel + (height - i)*width, width);
-		}
+			img->Load(strImageFilePathName);
+			long width = img->GetWidth();
 
-		delete[]m_pPixel;
-		delete[]m_pBmInfo;
-		delete m_pBmfh;
+			long height = img->GetHeight();
 
+			CRect imageRect(0, 0, width, height);
+			bseImage->SetImageRect(imageRect);
+			BYTE* data = (BYTE*)img->GetBits();
+			bseImage->SetImageData(data, width, height);
+
+		}
 		return bseImage;
 	}
 

+ 10 - 0
OTSCPP/OTSControl/OTSScanBase.h

@@ -9,6 +9,10 @@ namespace OTSController
 
 	const CString SIMULATION_IMAGE_FILEPATH = _T("Simulate");
 	const CString SIMULATION_IMAGE_FILENAME = _T("SimImage.bmp");
+	const CString SIMULATION_TIFFIMAGE_FILENAME = _T("SimImage.tif");
+	const CString SIMULATION_JPEGIMAGE_FILENAME = _T("SimImage.jpg");
+	const CString SIMULATION_PNGIMAGE_FILENAME = _T("SimImage.png");
+	
 
 	/// <summary>
 	/// Interface of Image Acquisition Device
@@ -105,6 +109,12 @@ namespace OTSController
 
 		CBSEImgPtr AcquireBSEImageFromBitmapFile();
 
+		CBSEImgPtr AcquireBSEImageFromTiffFile();
+
+		CBSEImgPtr AcquireBSEImageFromJpegFile();
+
+		CBSEImgPtr AcquireBSEImageFromPngFile();
+
 		CSize GetScanRange() { return m_szScanRange; }
 		void SetScanRange(CSize a_szScanRange) { m_szScanRange = a_szScanRange; }
 

+ 2 - 1
OTSIncAMeasureApp/0-OTSModel/Measure/2-OTSCleanliness/SmplMeasureCleanliness.cs

@@ -159,7 +159,8 @@ namespace OTSModelSharp
 
             foreach (var part in curFldData.ListAnalysisParticles)
             {
-                if (part.GetArea() < quantifyThreshold)
+                double equalCircleDiameter = Math.Sqrt(part.GetArea() / 3.14159) * 2f;
+                if (equalCircleDiameter < quantifyThreshold)
                 {
                     smallparts.Add(part);
                 }

+ 4 - 2
OTSIncAMeasureApp/0-OTSModel/Measure/BSEPicData/COTSFieldData.cs

@@ -129,8 +129,10 @@ namespace OTSModelSharp
             m_listAnalysisParticles = new List<COTSParticleClr>();
             // get area range
             CDoubleRange oAreaRange = a_pImageProcessParam.GetIncAreaRange();
-            double dAreaLow = (oAreaRange.GetStart() / 2) * (oAreaRange.GetStart() / 2) * 3.14159;
-            double dAreaHigh = (oAreaRange.GetEnd() / 2) * (oAreaRange.GetEnd() / 2) * 3.14159;
+            double rMin = oAreaRange.GetStart() / 2f;
+            double rMax = oAreaRange.GetEnd() / 2f;
+            double dAreaLow = rMin*rMin * 3.14159;
+            double dAreaHigh = rMax*rMax * 3.14159;
             // gray level range
             CIntRange oParticleGrayRange = a_pImageProcessParam.GetParticleGray();
             //here,no longer consider the gray range of particles,for we can make it by regulate the background range.

+ 5 - 5
OTSIncAReportApp/1-UI/Control_ECharts/EChart_ParticlesComposition.cs

@@ -64,7 +64,7 @@ namespace OTSIncAReportApp.Control_ECharts
 
             //int idx = m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_ReportApp.SourceGridData.ConditionItemList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE);
             //string sou = m_ReportApp.SourceGridData.ConditionItemList[idx].itemVal.ToString();
-            string sou = m_conditionChoose.m_SourceGridData.GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
+            string sou = m_conditionChoose.m_SourceGridData.GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
             if (sou.Contains("+"))
             {
                 if (m_ReportApp.more)
@@ -411,7 +411,7 @@ namespace OTSIncAReportApp.Control_ECharts
 
             //idx = m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_ReportApp.SourceGridData.ConditionItemList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);
             //string con = m_ReportApp.SourceGridData.ConditionItemList[idx].itemVal.ToString();
-            string con = m_conditionChoose.m_SourceGridData.GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE).ToString();
+            string con = m_conditionChoose.m_SourceGridData.GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE).ToString();
             string po = "";
             switch (con)
             {
@@ -421,7 +421,7 @@ namespace OTSIncAReportApp.Control_ECharts
                 case "DMIN":
                     po = "DMIN";
                     break;
-                case "Area":
+                case "CIRCLE":
                     po = "Area";
                     break;
                 case "FERET":
@@ -523,7 +523,7 @@ namespace OTSIncAReportApp.Control_ECharts
 
             //idx = m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_ReportApp.SourceGridData.ConditionItemList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE);
             //string sou = m_ReportApp.SourceGridData.ConditionItemList[idx].itemVal.ToString();
-            string sou = m_conditionChoose.m_SourceGridData.GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
+            string sou = m_conditionChoose.m_SourceGridData.GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
             if (sou.Contains("+"))
             {
                 for (int i = 0; i < sou.Split('+').Length; i++)
@@ -666,7 +666,7 @@ namespace OTSIncAReportApp.Control_ECharts
                                 listName.Add(name1);
                             }
                             //string con = m_ReportApp.SourceGridData.ConditionItemList[m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_ReportApp.SourceGridData.ConditionItemList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE)].itemVal.ToString();
-                            string con = m_conditionChoose.m_SourceGridData.GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE).ToString();
+                            string con = m_conditionChoose.m_SourceGridData.GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE).ToString();
                             string po = "";
                             switch (con)
                             {

+ 2 - 2
OTSIncAReportApp/1-UI/Control_ECharts/EChart_Trianglediagram.cs

@@ -80,7 +80,7 @@ namespace OTSIncAReportApp.Control_ECharts
             string template = Template;
             if (template == "")
             { //三元相图模板
-                template = m_condition.m_SourceGridData.GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE).ToString();
+                template = m_condition.m_SourceGridData.GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE).ToString();
             }
 
             //获取粒级表
@@ -264,7 +264,7 @@ namespace OTSIncAReportApp.Control_ECharts
                 }
                 else
                 {
-                    con = m_condition.m_SourceGridData.GetPropItemValueByPropItemName( OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE).ToString();
+                    con = m_condition.m_SourceGridData.GetPropItemDisplayValueByPropItemName( OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE).ToString();
                 }
             }
 

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

@@ -1278,8 +1278,8 @@ namespace OTSIncAReportGraph.Controls
                 }
               
             }
-          
 
+            frmReportApp.selectedRegion = m_SelectTool.Rect; 
            
             SendSelectParticleListToReportFrame(selectedParts);
         }

+ 3 - 3
OTSIncAReportApp/1-UI/Control_Grids/CompositionDistributionGrid.cs

@@ -60,7 +60,7 @@ namespace OTSIncAReportGrids
             gridView.Columns.Add("con", str10);
             //创建Grid的列颗粒数
             //gridView.Columns.Add("SmallParticle", str11);
-            string con = m_ReportApp.m_conditionChoose.m_SourceGridData.GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE).ToString();
+            string con = m_ReportApp.m_conditionChoose.m_SourceGridData.GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE).ToString();
             string po = "";
             switch (con)
             {
@@ -282,7 +282,7 @@ namespace OTSIncAReportGrids
         private void CompositionDistributionGrid_Load(object sender, EventArgs e)
         {
             //int idx = m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_ReportApp.SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE);
-            string sou = m_ReportApp.m_conditionChoose.m_SourceGridData.GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
+            string sou = m_ReportApp.m_conditionChoose.m_SourceGridData.GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
             if (sou.Contains("+"))
             {
                 for (int i = 0; i < sou.Split('+').Length; i++)
@@ -368,7 +368,7 @@ namespace OTSIncAReportGrids
             }
 
             //int idx = m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_ReportApp.SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE);
-            string sou = source.GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
+            string sou = source.GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
             if (sou.Contains("+"))
             {
                 for (int i = 0; i < sou.Split('+').Length; i++)

+ 2 - 2
OTSIncAReportApp/1-UI/Control_Grids/ElementContentGrid.cs

@@ -210,7 +210,7 @@ namespace OTSIncAReportGrids
         private void ElementContentGrid_Load(object sender, EventArgs e)
         {
             //int idx = m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_ReportApp.SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE);
-            string sou = m_ReportApp.m_conditionChoose.m_SourceGridData.GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
+            string sou = m_ReportApp.m_conditionChoose.m_SourceGridData.GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
             if (sou.Contains("+"))
             {
                 for (int i = 0; i < sou.Split('+').Length; i++)
@@ -286,7 +286,7 @@ namespace OTSIncAReportGrids
             gridwidth = 0;
 
             //int idx = m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_ReportApp.SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE);
-            string sou = m_ReportApp.m_conditionChoose.m_SourceGridData.GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
+            string sou = m_ReportApp.m_conditionChoose.m_SourceGridData.GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
             if (sou.Contains("+"))
             {
                 for (int i = 0; i < sou.Split('+').Length; i++)

+ 4 - 4
OTSIncAReportApp/1-UI/Control_Grids/ParticlesSizeGrid.cs

@@ -164,7 +164,7 @@ namespace OTSIncAReportGrids
             else
             {
                 //idx = m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_ReportApp.SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);
-                con = source.GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE).ToString();
+                con = source.GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE).ToString();
             }
 
             string po = "";
@@ -176,7 +176,7 @@ namespace OTSIncAReportGrids
                 case "DMIN":
                     po = "DMIN";
                     break;
-                case "Area":
+                case "CIRCLE":
                     po = "Area";
                     break;
                 case "FERET":
@@ -306,7 +306,7 @@ namespace OTSIncAReportGrids
         {
             //int idx = m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_ReportApp.SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE);
             //string sou = m_ReportApp.SourceGridData.ConditionItemList[idx].itemVal.ToString();
-            string sou = source.GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
+            string sou = source.GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
             if (sou.Contains("+"))
             {
                 for (int i = 0; i < sou.Split('+').Length; i++)
@@ -382,7 +382,7 @@ namespace OTSIncAReportGrids
 
             //int idx = m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_ReportApp.SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE);
             //string sou = m_ReportApp.SourceGridData.ConditionItemList[idx].itemVal.ToString();
-            string sou = source.GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
+            string sou = source.GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
             if (sou.Contains("+"))
             {
                 for (int i = 0; i < sou.Split('+').Length; i++)

+ 1 - 1
OTSIncAReportApp/1-UI/Control_Grids/ResultGrid.cs

@@ -69,7 +69,7 @@ namespace OTSIncAReportGrids
 
             //int idx = m_frmReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_frmReportApp.SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE);
             //string sou = m_frmReportApp.SourceGridData.ConditionItemList[idx].itemVal.ToString();
-          string sou=  m_frmReportApp.m_conditionChoose.m_SourceGridData.GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
+          string sou=  m_frmReportApp.m_conditionChoose.m_SourceGridData.GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
             if (sou.Contains("+"))
             {
                 for (int i = 0; i < sou.Split('+').Length; i++)

+ 1 - 1
OTSIncAReportApp/1-UI/OTSDisplaySourceGridData/OTSSampleReportInfo/OTSSampleReportInfo.cs

@@ -297,7 +297,7 @@ namespace OTSIncAReportApp.OTSSampleReportInfo
             }
             return -1;
         }
-        public object GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS in_orpgi)
+        public object GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS in_orpgi)
         {
             for (int i = 0; i < ConditionItemList.Count; i++)
             {

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

@@ -52,7 +52,7 @@ namespace OTSIncAReportApp
 
 
         public static Dictionary<Guid, DisplayParticle> selectedParticles = new Dictionary<Guid, DisplayParticle>();     //所有选择颗粒
-
+        public static RectangleF selectedRegion = new RectangleF();
 
         public string MoreSource = "";