#pragma once #include "ChartDirector/chartdir.h" #include "CHReviewResult/GlassResult.h" enum MeasureResult_Type { MeasureResult_AvgDx=0, MeasureResult_AvgDy, MeasureResult_MinDx, MeasureResult_MinDy, MeasureResult_MaxDx, MeasureResult_MaxDy, MeasureResult_Count }; enum ReviewResult_Type { ReviewResult_Total=0, ReviewResult_Review, ReviewResult_Count }; enum ResultValue { TOTAL_DEFECT = 0, REVIEW_DEFECT }; enum GraphMode { UNIT_GLASS = 0, UNIT_POINT }; enum GraphType { Graph_Dx = 0, Graph_Dy }; #define MAX_STR_LEN 50 #define MAX_GLASS_COUNT 30 #define MAX_RESULT_COUNT max(MeasureResult_Count, ReviewResult_Count) class CChartGlassData { public: CChartGlassData(void); virtual ~CChartGlassData(void); void SetChartGlassData(int nMode, int nGlassIndex, const CGlassResult* pGlassResult); void Reset(); public: static BOOL CalculateMeasureResult(const CGlassResult* pGlassResult, double *pResultValue); static BOOL CalculateReviewResult(const CGlassResult* pGlassResult, double *pResultValue); BaseChart* CreateChart(int nMode, int nListCnt, const char **imageMap, const CRect& rtRect, int nType); void DrawGlassInfo(int nMode, XYChart *pChart); void DrawResultData(int nMode, XYChart *pChart, int nType); void CString_to_charA(char *Dst ,CString Src,unsigned int size); void MoveChartData(int nGlassIndex); char* m_szGlassID[MAX_GLASS_COUNT]; // glass id char* m_szRecipeID[MAX_GLASS_COUNT]; // recipe id char* m_szDateTime[MAX_GLASS_COUNT]; // date time double m_dLowerThres[MAX_GLASS_COUNT]; // lower thres double m_dUpperThres[MAX_GLASS_COUNT]; // upper thres char* m_szResultName[MAX_RESULT_COUNT]; // result name int m_nResultColor[MAX_RESULT_COUNT]; // result color int m_nResultSymbol[MAX_RESULT_COUNT]; // result symbol double m_dResultValue2[MAX_RESULT_COUNT][MAX_GLASS_COUNT]; // result value int m_nGlassCount; int m_nResultCount; };