Browse Source

improve gb visualization result.

gsp 1 năm trước cách đây
mục cha
commit
5fe65dafdf

+ 17 - 2
OTSCPP/OTSClrInterface/ReportCalculateClr/ReportMgrClr.cpp

@@ -347,8 +347,23 @@ namespace OTSCLRINTERFACE {
 		if (listSelectedDataSource.size() > 1) return tbl;
 
 		CSmplMsrResultFileMgrPtr rstFileMgrPrt = pReportMgr->GetASmplMsrResultMgrByFileName(listSelectedDataSource[0]);
-
-		CGBFieldList listGBFields = GBCal.CalGBFields(rstFileMgrPrt);
+		GB_METHODE_TYPE t;
+		switch (CalTableType)
+		{
+		case CALCULATE_TABLE_TYPE::GB_Method1:
+			t = GB_METHODE_TYPE::METHODE_1;
+			break;
+		case CALCULATE_TABLE_TYPE::GB_Method2:
+			t = GB_METHODE_TYPE::METHODE_2;
+			break;
+		case CALCULATE_TABLE_TYPE::ASTM:
+			t = GB_METHODE_TYPE::ASTM;
+			break;
+		default:
+			t = GB_METHODE_TYPE::METHODE_1;
+			break;
+		}
+		CGBFieldList listGBFields = GBCal.CalGBFields(rstFileMgrPrt,t);
 
 		GBCal.CategoryGBInclutions(listGBFields, CalTableType);
 

+ 2 - 1
OTSCPP/OTSData/otsdataconst.h

@@ -306,7 +306,8 @@ namespace OTSDATA
 		MIN = 0,
 		METHODE_1 = 0,
 		METHODE_2 = 1,
-		MAX = 1
+		ASTM=2,
+		MAX = 2
 	} GB_METHODE_TYPE;
 
 	typedef enum class __declspec(dllexport) GB_CHEMICAL_TYPE

+ 40 - 4
OTSCPP/OTSRptCalculate/GBCal/CGBCalculate.cpp

@@ -75,7 +75,23 @@ namespace OTSGBCalculate
 			}
 			else
 			{
-				CGBFieldList listRawGBFields = CalGBFields(rstFileMgrPrt);
+				GB_METHODE_TYPE t;
+				switch(tableType)
+				{
+				case CALCULATE_TABLE_TYPE::GB_Method1:
+					t = GB_METHODE_TYPE::METHODE_1;
+					break;
+				case CALCULATE_TABLE_TYPE::GB_Method2:
+				    t= GB_METHODE_TYPE::METHODE_2;
+					break;
+				case CALCULATE_TABLE_TYPE::ASTM:
+					t = GB_METHODE_TYPE::ASTM;
+					break;
+				default:
+					t = GB_METHODE_TYPE::METHODE_1;
+					break;
+				}
+				CGBFieldList listRawGBFields = CalGBFields(rstFileMgrPrt,t);
 
 				CategoryGBInclutions(listRawGBFields, tableType);
 
@@ -201,9 +217,24 @@ namespace OTSGBCalculate
 
 		CSmplMsrResultFileMgrPtr rstFileMgrPrt = m_rptMgrPtr->GetASmplMsrResultMgrByFileName(listSelectedDataSource[0]);
 
+		GB_METHODE_TYPE t;
+		switch (tableType)
+		{
+		case CALCULATE_TABLE_TYPE::GB_Method1:
+			t = GB_METHODE_TYPE::METHODE_1;
+			break;
+		case CALCULATE_TABLE_TYPE::GB_Method2:
+			t = GB_METHODE_TYPE::METHODE_2;
+			break;
+		case CALCULATE_TABLE_TYPE::ASTM:
+			t = GB_METHODE_TYPE::ASTM;
+			break;
+		default:
+			t = GB_METHODE_TYPE::METHODE_1;
+			break;
+		}
 
-
-		CGBFieldList listGBFields = CalGBFields(rstFileMgrPrt);
+		CGBFieldList listGBFields = CalGBFields(rstFileMgrPrt,t);
 
 		CategoryGBInclutions(listGBFields, tableType);
 
@@ -762,7 +793,7 @@ namespace OTSGBCalculate
 
 	
 	// calculate GB fields
-	CGBFieldList CGBCalculate::CalGBFields(CSmplMsrResultFileMgrPtr pSmplMgr)
+	CGBFieldList CGBCalculate::CalGBFields(CSmplMsrResultFileMgrPtr pSmplMgr, GB_METHODE_TYPE calType)
 	{
 		CGBFieldList m_listGBFields;
 		m_listGBFields.clear();
@@ -811,6 +842,11 @@ namespace OTSGBCalculate
 			LogErrorTrace(__FILE__, __LINE__, _T("CalGBFields: call OTSFieldToGBField failed."));
 			return m_listGBFields;
 		}
+		for (auto fld : m_listGBFields)
+		{
+			fld->SetCalcuType(calType);
+		}
+
 		return m_listGBFields;
 	}
 

+ 1 - 1
OTSCPP/OTSRptCalculate/GBCal/CGBCalculate.h

@@ -23,7 +23,7 @@ namespace OTSGBCalculate
 		CGBFieldList GetAllGBFields(CALCULATE_TABLE_TYPE tableType);
 
 		// calculate GB fields
-		CGBFieldList CalGBFields(CSmplMsrResultFileMgrPtr pSmplMgr);
+		CGBFieldList CalGBFields(CSmplMsrResultFileMgrPtr pSmplMgr, GB_METHODE_TYPE calType);
 
 		void CategoryGBInclutions(CGBFieldList listCGBField, CALCULATE_TABLE_TYPE ty);
 		

+ 14 - 4
OTSCPP/OTSRptCalculate/GBCal/GBFieldData.cpp

@@ -1373,6 +1373,7 @@ namespace OTSGBCalculate
 	}
 	std::string CGBFieldData::GetGBGradeString()
 	{
+		std::string grdStr;
 		CString Astring = _T("A:") + GetGradeString(GetALevel()->GetThinGrade()) + _T(" ") +			
 			GetGradeString(GetALevel()->GetWideGrade()) + _T(" ") +
 			GetGradeString(GetALevel()->GetSuperGrade()) + _T(" ");
@@ -1385,10 +1386,19 @@ namespace OTSGBCalculate
 		CString Dstring = _T("D:") + GetGradeString(GetDLevel()->GetThinGrade()) + _T(" ") +
 			GetGradeString(GetDLevel()->GetWideGrade()) + _T(" ") +
 			GetGradeString(GetDLevel()->GetSuperGrade()) + _T(" ");
-		CString DSulstring = _T("DSulfide:") + GetGradeString(GetDSulfideLevel()->GetThinGrade()) + _T(" ") +
-			GetGradeString(GetDSulfideLevel()->GetWideGrade()) + _T(" ") +
-			GetGradeString(GetDSulfideLevel()->GetSuperGrade()) ;
-		return std::string((Astring + Bstring + Cstring + Dstring + DSulstring).GetBuffer());
+		if (calcuType == GB_METHODE_TYPE::METHODE_2)
+		{
+			CString DSulstring = _T("DSulfide:") + GetGradeString(GetDSulfideLevel()->GetThinGrade()) + _T(" ") +
+				GetGradeString(GetDSulfideLevel()->GetWideGrade()) + _T(" ") +
+				GetGradeString(GetDSulfideLevel()->GetSuperGrade());
+			grdStr= std::string((Astring + Bstring + Cstring + Dstring + DSulstring).GetBuffer());
+		}
+		else
+		{
+			grdStr= std::string((Astring + Bstring + Cstring + Dstring ).GetBuffer());
+		}
+		
+		return grdStr;
 	}
 	GB_GRADE_TYPE CGBFieldData::GetGBTopGrade()
 	{

+ 3 - 1
OTSCPP/OTSRptCalculate/GBCal/GBFieldData.h

@@ -52,7 +52,8 @@ namespace OTSGBCalculate
 		// D level
 		CGBLevelPtr GetDLevel() { return m_pDLevel; }
 
-	
+		GB_METHODE_TYPE GetCalcuType() { return calcuType; }
+		void SetCalcuType(GB_METHODE_TYPE calType) { calcuType = calType; }
 
 		// D sulfide level
 		CGBLevelPtr GetDSulfideLevel() { return m_pDSulfidLevel; }
@@ -115,6 +116,7 @@ namespace OTSGBCalculate
 		BOOL CaculateLevelFatWidth(COTSParticleList& a_listParticles, GB_LEVEL_TYPE a_nLevel);
 		BOOL CaculateSuper(COTSParticleList& a_listParticles, GB_LEVEL_TYPE a_nLevel);
 		
+		GB_METHODE_TYPE calcuType;
 	private: