// DlgJudgement.cpp : 구현 파일입니다. // #include "stdafx.h" #include "ReviewRecipeEditor.h" #include "CDlgJudgement.h" #include "afxdialogex.h" #include "ReviewRecipeEditorDlg.h" #include "CHReviewRecipe/RcpJudgeInfo.h" #include "CHReviewRecipe/RcpZoneInfo.h" #define GRID_CELL_DEFECT_JUDGE_COL_COUNT 6 #define GRID_GLASS_DEFECT_JUDGE_COL_COUNT 6 #define GRID_GLASS_CELL_JUDGE_COL_COUNT 6 // CDlgJudgement 대화 상자입니다. IMPLEMENT_DYNAMIC(CDlgJudgement, CDialog) CDlgJudgement::CDlgJudgement(CWnd* pParent /*=NULL*/) : CDialog(CDlgJudgement::IDD, pParent) , m_nEditRcpCellJudgeDefectCount(0) , m_nEditRcpGlassJudgeDefectCount(0) , m_nEditRcpGlassJudgeCellCount(0) , m_ctrlGridZoneData(0) , m_ctrlGridZoneJudgeSetting(0) , m_ctrlGridZoneJudgeSetting_PR(0) , m_ctrlGridCodeJudgeSetting(0) , m_nEditJudgeFilteringCount(0) , m_nEditJudgeFilteringCount_PR(0) , m_nEditRcpJudgeAoiSizeFilter(0) , m_nEditJudgeFilteringCount_CODE(0) { m_arrJudgeType.RemoveAll(); } CDlgJudgement::~CDlgJudgement() { } void CDlgJudgement::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_RCP_JUDGE_CELL_JUDGE_COUNT, m_nEditRcpCellJudgeDefectCount); DDX_Text(pDX, IDC_EDIT_RCP_JUDGE_GLASS_JUDGE_DEFECT_COUNT, m_nEditRcpGlassJudgeDefectCount); DDX_Text(pDX, IDC_EDIT_RCP_JUDGE_GLASS_JUDGE_CELL_COUNT, m_nEditRcpGlassJudgeCellCount); DDX_Control(pDX, IDC_GRID_RCP_JUDGE_CELL_JUDGEMENT, m_ctrlGridCellJudgeDefect); DDX_Control(pDX, IDC_GRID_RCP_JUDGE_GLASS_JUDGEMENT_DEFECT, m_ctrlGridGlassJudgeDefect); DDX_Control(pDX, IDC_GRID_RCP_JUDGE_GLASS_JUDGEMENT_CELL, m_ctrlGridGlassJudgeCell); DDX_Control(pDX, IDC_GRID_RCP_JUDGE_ZONE_DATA, m_ctrlGridZoneData); DDX_Control(pDX, IDC_GRID_RCP_JUDGE_ZONE_JUDGE_SETTING, m_ctrlGridZoneJudgeSetting); DDX_Control(pDX, IDC_GRID_RCP_JUDGE_ZONE_JUDGE_SETTING_PR, m_ctrlGridZoneJudgeSetting_PR); DDX_Control(pDX, IDC_GRID_RCP_JUDGE_CODE_JUDGE, m_ctrlGridCodeJudgeSetting); DDX_Text(pDX, IDC_EDIT_RCP_CELL_JUDGE_SETTING_COUNT, m_nEditJudgeFilteringCount); DDX_Text(pDX, IDC_EDIT_RCP_CELL_JUDGE_SETTING_COUNT_PR, m_nEditJudgeFilteringCount_PR); DDX_Text(pDX, IDC_EDIT_RCP_JUDGE_AOI_SIZE_FILTER, m_nEditRcpJudgeAoiSizeFilter); DDX_Text(pDX, IDC_EDIT_RCP_JUDGE_CODE_SETTING_COUNT, m_nEditJudgeFilteringCount_CODE); } BEGIN_MESSAGE_MAP(CDlgJudgement, CDialog) ON_EN_CHANGE(IDC_EDIT_RCP_JUDGE_CELL_JUDGE_COUNT, &CDlgJudgement::OnEnChangeEditRcpJudgeCellJudgeCount) ON_EN_CHANGE(IDC_EDIT_RCP_JUDGE_GLASS_JUDGE_DEFECT_COUNT, &CDlgJudgement::OnEnChangeEditRcpJudgeGlassJudgeDefectCount) ON_EN_CHANGE(IDC_EDIT_RCP_JUDGE_GLASS_JUDGE_CELL_COUNT, &CDlgJudgement::OnEnChangeEditRcpJudgeGlassJudgeCellCount) ON_BN_CLICKED(IDC_BUTTON_REVIEW_RESET, &CDlgJudgement::OnBnClickedButtonReviewReset) ON_BN_CLICKED(IDC_BUTTON_REVIEW_APPLY, &CDlgJudgement::OnBnClickedButtonReviewApply) ON_EN_CHANGE(IDC_EDIT_RCP_CELL_JUDGE_SETTING_COUNT, &CDlgJudgement::OnEnChangeEditRcpCellJudgeSettingCount) ON_EN_CHANGE(IDC_EDIT_RCP_CELL_JUDGE_SETTING_COUNT_PR, &CDlgJudgement::OnEnChangeEditRcpCellJudgeSettingCountPR) ON_EN_CHANGE(IDC_EDIT_RCP_JUDGE_CODE_SETTING_COUNT, &CDlgJudgement::OnEnChangeEditRcpCellJudgeSettingCount_CODE) END_MESSAGE_MAP() // CDlgJudgement 메시지 처리기입니다. BOOL CDlgJudgement::OnInitDialog() { CDialog::OnInitDialog(); // TODO: 여기에 추가 초기화 작업을 추가합니다. for (int nIdx = 0; nIdx < JudgeType_T8_Count; nIdx++) { CString strType = _T(""); switch (nIdx) { case JudgeType_T8_None: strType.Format(_T("None")); break; case JudgeType_T8_OK: strType.Format(_T("OK")); break; case JudgeType_T8_TR: strType.Format(_T("TR")); break; case JudgeType_T8_PR: strType.Format(_T("PR")); break; // case JudgeType_T8_BR: // strType.Format(_T("BR")); // break; /* < KEJ 20231123 - #4669 ADD Start > */ case JudgeType_T8_PT: strType.Format(_T("PT")); break; /* < KEJ 20231123 - #4669 ADD End > */ } if (strType.IsEmpty() == FALSE) m_arrJudgeType.Add(strType); } InitGridCellDefectJudge(); FillGridCellDefectJudge(); InitGridGlassDefectJudge(); FillGridGlassDefectJudge(); InitGridGlassCellJudge(); FillGridGlassCellJudge(); InitFilteringGridContrl_CODE(); FillZonFilteringInfo_CODE(); InitZoneGridControl(); FillZoneInfo(); InitFilteringGridControl(); InitFilteringGridControl_PR(); return TRUE; // return TRUE unless you set the focus to a control // 예외: OCX 속성 페이지는 FALSE를 반환해야 합니다. } void CDlgJudgement::InitFilteringGridControl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols, nDataColumnWidth, nMargin; CString strTemp; CRect rect; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg) { nRows = 1; nCols = 4; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridZoneJudgeSetting.GetWindowRect(&rect); m_ctrlGridZoneJudgeSetting.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridZoneJudgeSetting.SetRowCount(nRows); m_ctrlGridZoneJudgeSetting.SetColumnCount(nCols); m_ctrlGridZoneJudgeSetting.SetFixedRowCount(nFixRows); m_ctrlGridZoneJudgeSetting.SetFixedColumnCount(nFixCols); GV_ITEM Item; nMargin = 5; nDataColumnWidth = (rect.Width() - nMargin - 50) / (4 - 1); Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Idx")); Item.strText = strTemp; m_ctrlGridZoneJudgeSetting.SetItem(&Item); m_ctrlGridZoneJudgeSetting.SetColumnWidth(nColIdx, 50); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Judge")); Item.strText = strTemp; m_ctrlGridZoneJudgeSetting.SetItem(&Item); m_ctrlGridZoneJudgeSetting.SetColumnWidth(nColIdx, nDataColumnWidth); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Zone")); Item.strText = strTemp; m_ctrlGridZoneJudgeSetting.SetItem(&Item); m_ctrlGridZoneJudgeSetting.SetColumnWidth(nColIdx, nDataColumnWidth); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Height(um)>=")); Item.strText = strTemp; m_ctrlGridZoneJudgeSetting.SetItem(&Item); m_ctrlGridZoneJudgeSetting.SetColumnWidth(nColIdx, nDataColumnWidth); } } void CDlgJudgement::FillZonFilteringInfo() { int i, j, nData, nRowIdx, nColIdx; CString strTemp, strItemText; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg == NULL) return; CRcp_RsReviewManager* pRcpRsReviewManager = pDlg->GetRsReviewManager(); if (pRcpRsReviewManager == NULL) return; CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return; //AOI Pixel Size Filter WSI Judge 할때 이거 이상 크기 패스//210215 m_nEditRcpJudgeAoiSizeFilter = pRsRcpReviewInfo->m_nJudgeFilterAoiPixel; UpdateData(FALSE); CStringArray strArrayOption; CGridCellCombo* pCellCombo = NULL; if (m_nEditJudgeFilteringCount <= 0 || m_nEditJudgeFilteringCount != pRsRcpReviewInfo->GetRcpZoneFilterInfoCount()) return; nRowIdx = 1; for (i = 0; i < m_nEditJudgeFilteringCount; i++) { CRcpZoneFilteringInfo* pRcpFilterInfo = pRsRcpReviewInfo->GetRcpZoneFilteringInfo(i); if (pRcpFilterInfo == NULL) continue; nColIdx = 1; // judge code nData = pRcpFilterInfo->GetFilterJudge(); strArrayOption.RemoveAll(); for (j = 0; j < 1; j++) { switch (j) { //case RCP_FILTER_DATA_JUDGE_TR: // strTemp.Format(_T("TR")); // break; //case RCP_FILTER_DATA_JUDGE_OK: //// // strTemp.Format(_T("OK")); // continue; // break; //case RCP_FILTER_DATA_JUDGE_PR: // // // strTemp.Format(_T("OK")); // continue; // break; default: strTemp.Format(_T("TR")); //continue; break; } strArrayOption.Add(strTemp); } if (nData >= 0 || nData < strArrayOption.GetSize()) m_ctrlGridZoneJudgeSetting.SetItemText(nRowIdx, nColIdx++, strArrayOption.GetAt(nData)); // zone nData = pRcpFilterInfo->GetFilterType(); strArrayOption.RemoveAll(); for (j = 0; j < 5; j++) { switch (j) { case 0: strTemp.Format(_T("Pixel")); break; case 1: strTemp.Format(_T("CS")); break; case 2: strTemp.Format(_T("RED")); break; case 3: strTemp.Format(_T("GREEN")); break; case 4: strTemp.Format(_T("BLUE")); break; default: strTemp.Format(_T("")); break; } strArrayOption.Add(strTemp); } if (nData >= 0 || nData < strArrayOption.GetSize()) m_ctrlGridZoneJudgeSetting.SetItemText(nRowIdx, nColIdx++, strArrayOption.GetAt(nData)); // review count //strItemText.Format(_T("%d"), pRcpFilterInfo->GetReviewCount()); //m_ctrlGridZoneJudgeSetting.SetItemText(nRowIdx, nColIdx++, strItemText); // judge height strItemText.Format(_T("%.3f"), pRcpFilterInfo->GetJudgeHeight()); m_ctrlGridZoneJudgeSetting.SetItemText(nRowIdx, nColIdx++, strItemText); nRowIdx++; } m_ctrlGridZoneJudgeSetting.Invalidate(FALSE); } void CDlgJudgement::InitFilteringGridControl_PR() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols, nDataColumnWidth, nMargin; CString strTemp; CRect rect; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg) { nRows = 1; nCols = 4; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridZoneJudgeSetting_PR.GetWindowRect(&rect); m_ctrlGridZoneJudgeSetting_PR.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridZoneJudgeSetting_PR.SetRowCount(nRows); m_ctrlGridZoneJudgeSetting_PR.SetColumnCount(nCols); m_ctrlGridZoneJudgeSetting_PR.SetFixedRowCount(nFixRows); m_ctrlGridZoneJudgeSetting_PR.SetFixedColumnCount(nFixCols); GV_ITEM Item; nMargin = 5; nDataColumnWidth = (rect.Width() - nMargin - 50) / (4 - 1); Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Idx")); Item.strText = strTemp; m_ctrlGridZoneJudgeSetting_PR.SetItem(&Item); m_ctrlGridZoneJudgeSetting_PR.SetColumnWidth(nColIdx, 50); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Judge")); Item.strText = strTemp; m_ctrlGridZoneJudgeSetting_PR.SetItem(&Item); m_ctrlGridZoneJudgeSetting_PR.SetColumnWidth(nColIdx, nDataColumnWidth); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Zone")); Item.strText = strTemp; m_ctrlGridZoneJudgeSetting_PR.SetItem(&Item); m_ctrlGridZoneJudgeSetting_PR.SetColumnWidth(nColIdx, nDataColumnWidth); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Height(um)<=")); Item.strText = strTemp; m_ctrlGridZoneJudgeSetting_PR.SetItem(&Item); m_ctrlGridZoneJudgeSetting_PR.SetColumnWidth(nColIdx, nDataColumnWidth); } } void CDlgJudgement::InitFilteringGridContrl_CODE() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols, nDataColumnWidth, nMargin; CString strTemp; CRect rect; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg) { nRows = 1; nCols = 3; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridCodeJudgeSetting.GetWindowRect(&rect); m_ctrlGridCodeJudgeSetting.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridCodeJudgeSetting.SetRowCount(nRows); m_ctrlGridCodeJudgeSetting.SetColumnCount(nCols); m_ctrlGridCodeJudgeSetting.SetFixedRowCount(nFixRows); m_ctrlGridCodeJudgeSetting.SetFixedColumnCount(nFixCols); GV_ITEM Item; nMargin = 5; nDataColumnWidth = (rect.Width() - nMargin - 50) / (3 - 1); Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Idx")); Item.strText = strTemp; m_ctrlGridCodeJudgeSetting.SetItem(&Item); m_ctrlGridCodeJudgeSetting.SetColumnWidth(nColIdx, 50); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("CODE")); Item.strText = strTemp; m_ctrlGridCodeJudgeSetting.SetItem(&Item); m_ctrlGridCodeJudgeSetting.SetColumnWidth(nColIdx, nDataColumnWidth); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("JUDGE")); Item.strText = strTemp; m_ctrlGridCodeJudgeSetting.SetItem(&Item); m_ctrlGridCodeJudgeSetting.SetColumnWidth(nColIdx, nDataColumnWidth); } } void CDlgJudgement::FillZonFilteringInfo_CODE() { int i, j, nData, nRowIdx, nColIdx; CString strTemp, strItemText; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg == NULL) return; CRcp_RsReviewManager* pRcpRsReviewManager = pDlg->GetRsReviewManager(); if (pRcpRsReviewManager == NULL) return; CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return; UpdateData(FALSE); CStringArray strArrayOption; CGridCellCombo* pCellCombo = NULL; if (m_nEditJudgeFilteringCount_CODE <= 0 || m_nEditJudgeFilteringCount_CODE != pRsRcpReviewInfo->GetRcpZoneFilterInfoCount_CODE()) return; nRowIdx = 1; for (i = 0; i < m_nEditJudgeFilteringCount_CODE; i++) { CRcpZoneFilteringInfo* pRcpFilterInfo = pRsRcpReviewInfo->GetRcpZoneFilteringInfo_CODE(i); if (pRcpFilterInfo == NULL) continue; nColIdx = 1; // CODE strItemText.Format(_T("%s"), pRcpFilterInfo->GetFilterCode()); m_ctrlGridCodeJudgeSetting.SetItemText(nRowIdx, nColIdx++, strItemText); // judge code nData = pRcpFilterInfo->GetFilterJudge(); strArrayOption.RemoveAll(); for (j = 0; j < 1; j++) { switch (j) { default: strTemp.Format(_T("TR")); //continue; break; } strArrayOption.Add(strTemp); } if (nData >= 0 || nData < strArrayOption.GetSize()) m_ctrlGridCodeJudgeSetting.SetItemText(nRowIdx, nColIdx++, strArrayOption.GetAt(nData)); nRowIdx++; } m_ctrlGridZoneJudgeSetting_PR.Invalidate(FALSE); } void CDlgJudgement::FillZonFilteringInfo_PR() { int i, j, nData, nRowIdx, nColIdx; CString strTemp, strItemText; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg == NULL) return; CRcp_RsReviewManager* pRcpRsReviewManager = pDlg->GetRsReviewManager(); if (pRcpRsReviewManager == NULL) return; CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return; //AOI Pixel Size Filter WSI Judge 할때 이거 이상 크기 패스//210215 m_nEditRcpJudgeAoiSizeFilter = pRsRcpReviewInfo->m_nJudgeFilterAoiPixel; UpdateData(FALSE); CStringArray strArrayOption; CGridCellCombo* pCellCombo = NULL; if (m_nEditJudgeFilteringCount_PR <= 0 || m_nEditJudgeFilteringCount_PR != pRsRcpReviewInfo->GetRcpZoneFilterInfoCount_PR()) return; nRowIdx = 1; for (i = 0; i < m_nEditJudgeFilteringCount_PR; i++) { CRcpZoneFilteringInfo* pRcpFilterInfo = pRsRcpReviewInfo->GetRcpZoneFilteringInfo_PR(i); if (pRcpFilterInfo == NULL) continue; nColIdx = 1; // judge code nData = pRcpFilterInfo->GetFilterJudge(); strArrayOption.RemoveAll(); for (j = 0; j < 1; j++) { switch (j) { //case RCP_FILTER_DATA_JUDGE_TR: //strTemp.Format(_T("TR")); // continue; // break; //case RCP_FILTER_DATA_JUDGE_OK: //strTemp.Format(_T("OK")); // continue; // break; //case RCP_FILTER_DATA_JUDGE_PR: // strTemp.Format(_T("PR")); // continue; // break; default: strTemp.Format(_T("PR")); //continue; break; } strArrayOption.Add(strTemp); } if (nData >= 0 || nData < strArrayOption.GetSize()) m_ctrlGridZoneJudgeSetting_PR.SetItemText(nRowIdx, nColIdx++, strArrayOption.GetAt(nData)); // zone nData = pRcpFilterInfo->GetFilterType(); strArrayOption.RemoveAll(); for (j = 0; j < 5; j++) { switch (j) { case 0: strTemp.Format(_T("Pixel")); break; case 1: strTemp.Format(_T("CS")); break; case 2: strTemp.Format(_T("RED")); break; case 3: strTemp.Format(_T("GREEN")); break; case 4: strTemp.Format(_T("BLUE")); break; default: strTemp.Format(_T("")); break; } strArrayOption.Add(strTemp); } if (nData >= 0 || nData < strArrayOption.GetSize()) m_ctrlGridZoneJudgeSetting_PR.SetItemText(nRowIdx, nColIdx++, strArrayOption.GetAt(nData)); // review count //strItemText.Format(_T("%d"), pRcpFilterInfo->GetReviewCount()); //m_ctrlGridZoneJudgeSetting.SetItemText(nRowIdx, nColIdx++, strItemText); // judge height strItemText.Format(_T("%.3f"), pRcpFilterInfo->GetJudgeHeight()); m_ctrlGridZoneJudgeSetting_PR.SetItemText(nRowIdx, nColIdx++, strItemText); nRowIdx++; } m_ctrlGridZoneJudgeSetting_PR.Invalidate(FALSE); } void CDlgJudgement::FillZoneInfo() { int nRowIdx, nColIdx; CString strItemText; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg == NULL) return; CRcp_RsReviewManager* pRcpRsReviewManager = pDlg->GetRsReviewManager(); if (pRcpRsReviewManager == NULL) return; CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return; ////if (pRsRcpReviewInfo->GetRcpZoneInfoCount() <= 0 || pRsRcpReviewInfo->GetRcpZoneInfoCount() != RCP_ZONE_DATA_COUNT) //{ // return; //} nColIdx = 2; nRowIdx = 1; for (int nIdx = 0; nIdx < pRsRcpReviewInfo->GetRcpZoneInfoCount(); nIdx++) { CRcpZoneInfo* pRcpZoneInfo = pRsRcpReviewInfo->GetRcpZoneInfo(nIdx); if (pRcpZoneInfo == NULL) continue; pRcpZoneInfo->m_nZoneType; m_ctrlGridZoneData.SetItemText(nRowIdx++, nColIdx, pRcpZoneInfo->GetZoneString()); } m_ctrlGridZoneData.Invalidate(FALSE); } void CDlgJudgement::InitZoneGridControl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols, nDataColumnWidth, nMargin; CString strTemp; CRect rect; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg == NULL) return; nRows = 6; nCols = 3; nFixRows = 1; nFixCols = 2; nRowIdx = 0; nColIdx = 0; nMargin = 5; m_ctrlGridZoneData.GetWindowRect(&rect); m_ctrlGridZoneData.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridZoneData.SetRowCount(nRows); m_ctrlGridZoneData.SetColumnCount(nCols); m_ctrlGridZoneData.SetFixedRowCount(nFixRows); m_ctrlGridZoneData.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Idx")); Item.strText = strTemp; m_ctrlGridZoneData.SetItem(&Item); m_ctrlGridZoneData.SetColumnWidth(nColIdx, 50); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Zone")); Item.strText = strTemp; m_ctrlGridZoneData.SetItem(&Item); m_ctrlGridZoneData.SetColumnWidth(nColIdx, 70); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Data")); Item.strText = strTemp; m_ctrlGridZoneData.SetItem(&Item); nDataColumnWidth = rect.Width() - nMargin - 50 - 70; m_ctrlGridZoneData.SetColumnWidth(nColIdx, nDataColumnWidth); nRowIdx = 1; for (int nIdx = 0; nIdx < 5; nIdx++) { nColIdx = 0; // index strTemp.Format(_T("%02d"), nIdx); m_ctrlGridZoneData.SetItemText(nRowIdx, nColIdx++, strTemp); // zone switch (nIdx) { case 0: strTemp.Format(_T("Pixel")); break; case 1: strTemp.Format(_T("CS")); break; case 2: strTemp.Format(_T("RED")); break; case 3: strTemp.Format(_T("GREEN")); break; case 4: strTemp.Format(_T("BLUE")); break; default: strTemp.Format(_T("")); break; } m_ctrlGridZoneData.SetItemText(nRowIdx++, nColIdx, strTemp); } } BOOL CDlgJudgement::PreTranslateMessage(MSG* pMsg) { // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다. if (pMsg->message == WM_KEYDOWN) { if (pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE) { ::TranslateMessage(pMsg); ::DispatchMessage(pMsg); return TRUE; } } return CDialog::PreTranslateMessage(pMsg); } void CDlgJudgement::OnBnClickedButtonReviewReset() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. m_nEditRcpCellJudgeDefectCount = m_nEditRcpGlassJudgeDefectCount = m_nEditRcpGlassJudgeCellCount = 0; UpdateData(FALSE); OnEnChangeEditRcpJudgeCellJudgeCount(); OnEnChangeEditRcpJudgeGlassJudgeDefectCount(); OnEnChangeEditRcpJudgeGlassJudgeCellCount(); } void CDlgJudgement::OnBnClickedButtonReviewApply() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. UpdateData(TRUE); CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg == NULL) return; CRcp_RsReviewManager *pRcpRsReviewManager = pDlg->GetRsReviewManager(); if (pRcpRsReviewManager == NULL) return; CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return; int nRowIdx = 0, nColIdx = 0, nData = 0; CString strData = _T(""); CString strItemText = _T(""); // judge cell (defect) nRowIdx = 1; // zone info nRowIdx = 1; nColIdx = 2; pRsRcpReviewInfo->SetRcpZoneInfoCount(RCP_ZONE_DATA_COUNT); for (int nIdx = 0; nIdx < RCP_ZONE_DATA_COUNT; nIdx++) { CRcpZoneInfo* pZoneInfo = pRsRcpReviewInfo->GetRcpZoneInfo(nIdx); if (pZoneInfo == NULL) continue; pZoneInfo->m_nZoneType = nIdx; strItemText = m_ctrlGridZoneData.GetItemText(nRowIdx++, nColIdx); pZoneInfo->SetZoneString(strItemText); } int i, j, nArrayCount; CString strTemp, strItemTextTemp; CGridCellCheck* pCellCheck = NULL; CGridCellCombo* pCellCombo = NULL; CGridCellCombo* pCellComboTemp = NULL; CStringArray strArrayOption; //TR nRowIdx = 1; pRsRcpReviewInfo->SetRcpZoneFilterInfoCount(m_nEditJudgeFilteringCount); for (int nIdx = 0; nIdx < m_nEditJudgeFilteringCount; nIdx++) { nColIdx = 1; CRcpZoneFilteringInfo* pFilterInfo = pRsRcpReviewInfo->GetRcpZoneFilteringInfo(nIdx); if (pFilterInfo == NULL) continue; // judge pCellCombo = (CGridCellCombo*)m_ctrlGridZoneJudgeSetting.GetCell(nRowIdx, nColIdx++); if (pCellCombo) { strItemText = pCellCombo->GetText(); strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for (j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if (strTemp.Compare(strItemText) == 0) { pFilterInfo->m_nFilterJudge = j; break; } } } // zone pCellCombo = (CGridCellCombo*)m_ctrlGridZoneJudgeSetting.GetCell(nRowIdx, nColIdx++); if (pCellCombo) { strItemText = pCellCombo->GetText(); strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for (j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if (strTemp.Compare(strItemText) == 0) { pFilterInfo->m_nFilterType = j; break; } } } // count //strItemText = m_ctrlGridZoneJudgeSetting.GetItemText(nRowIdx, nColIdx++); //pFilterInfo->m_nReviewCount = _ttoi(strItemText); // height strItemText = m_ctrlGridZoneJudgeSetting.GetItemText(nRowIdx++, nColIdx++); pFilterInfo->m_dJudgeHeight = _ttof(strItemText); } //PR nRowIdx = 1; pRsRcpReviewInfo->SetRcpZoneFilterInfoCount_PR(m_nEditJudgeFilteringCount_PR); for (int nIdx = 0; nIdx < m_nEditJudgeFilteringCount_PR; nIdx++) { nColIdx = 1; CRcpZoneFilteringInfo* pFilterInfo = pRsRcpReviewInfo->GetRcpZoneFilteringInfo_PR(nIdx); if (pFilterInfo == NULL) continue; // judge pCellCombo = (CGridCellCombo*)m_ctrlGridZoneJudgeSetting_PR.GetCell(nRowIdx, nColIdx++); if (pCellCombo) { strItemText = pCellCombo->GetText(); strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for (j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if (strTemp.Compare(strItemText) == 0) { pFilterInfo->m_nFilterJudge = j; break; } } } // zone pCellCombo = (CGridCellCombo*)m_ctrlGridZoneJudgeSetting_PR.GetCell(nRowIdx, nColIdx++); if (pCellCombo) { strItemText = pCellCombo->GetText(); strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for (j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if (strTemp.Compare(strItemText) == 0) { pFilterInfo->m_nFilterType = j; break; } } } // count //strItemText = m_ctrlGridZoneJudgeSetting.GetItemText(nRowIdx, nColIdx++); //pFilterInfo->m_nReviewCount = _ttoi(strItemText); // height strItemText = m_ctrlGridZoneJudgeSetting_PR.GetItemText(nRowIdx++, nColIdx++); pFilterInfo->m_dJudgeHeight = _ttof(strItemText); } //CODE nRowIdx = 1; pRsRcpReviewInfo->SetRcpZoneFilterInfoCount_CODE(m_nEditJudgeFilteringCount_CODE); for (int nIdx = 0; nIdx < m_nEditJudgeFilteringCount_CODE; nIdx++) { nColIdx = 1; CRcpZoneFilteringInfo* pFilterInfo = pRsRcpReviewInfo->GetRcpZoneFilteringInfo_CODE(nIdx); if (pFilterInfo == NULL) continue; // height strItemText = m_ctrlGridCodeJudgeSetting.GetItemText(nRowIdx, nColIdx++); pFilterInfo->m_FilterCode = strItemText; // judge pCellCombo = (CGridCellCombo*)m_ctrlGridCodeJudgeSetting.GetCell(nRowIdx++, nColIdx++); if (pCellCombo) { strItemText = pCellCombo->GetText(); strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for (j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if (strTemp.Compare(strItemText) == 0) { pFilterInfo->m_nFilterJudge = j; break; } } } } //AOi Size Filter//210215 pRsRcpReviewInfo->m_nJudgeFilterAoiPixel = m_nEditRcpJudgeAoiSizeFilter; // judge cell (defect) nRowIdx = 1; pRsRcpReviewInfo->SetRcpJudgeCellDefectCount(m_nEditRcpCellJudgeDefectCount); for (int nIdx = 0; nIdx < m_nEditRcpCellJudgeDefectCount; nIdx++) { CRcpJudgeInfo* pRcpJudgeInfo = pRsRcpReviewInfo->GetRcpJudgeCellDefectInfo(nIdx); if (pRcpJudgeInfo == NULL) continue; nColIdx = 1; // condition1 strData = m_ctrlGridCellJudgeDefect.GetItemText(nRowIdx, nColIdx++); pRcpJudgeInfo->SetJudgeType(GetJudgeStringIndex(strData)); // count1 strData = m_ctrlGridCellJudgeDefect.GetItemText(nRowIdx, nColIdx++); pRcpJudgeInfo->SetJudgeCount(_ttoi(strData)); // condition2 strData = m_ctrlGridCellJudgeDefect.GetItemText(nRowIdx, nColIdx++); pRcpJudgeInfo->SetSubJudgeType(GetJudgeStringIndex(strData)); // count2 strData = m_ctrlGridCellJudgeDefect.GetItemText(nRowIdx, nColIdx++); pRcpJudgeInfo->SetSubJudgeCount(_ttoi(strData)); // rejudge strData = m_ctrlGridCellJudgeDefect.GetItemText(nRowIdx, nColIdx); pRcpJudgeInfo->SetReJudgeType(GetJudgeStringIndex(strData)); // rejudge code strData = m_ctrlGridCellJudgeDefect.GetItemText(nRowIdx++, nColIdx++); pRcpJudgeInfo->SetReJudgeCode(strData); } // judge glass (defect) nRowIdx = 1; nColIdx = 1; pRsRcpReviewInfo->SetRcpJudgeGlassDefectCount(m_nEditRcpGlassJudgeDefectCount); for (int nIdx = 0; nIdx < m_nEditRcpGlassJudgeDefectCount; nIdx++) { CRcpJudgeInfo* pRcpJudgeInfo = pRsRcpReviewInfo->GetRcpJudgeGlassDefectInfo(nIdx); if (pRcpJudgeInfo == NULL) continue; nColIdx = 1; // condition1 strData = m_ctrlGridGlassJudgeDefect.GetItemText(nRowIdx, nColIdx++); pRcpJudgeInfo->SetJudgeType(GetJudgeStringIndex(strData)); // count1 strData = m_ctrlGridGlassJudgeDefect.GetItemText(nRowIdx, nColIdx++); pRcpJudgeInfo->SetJudgeCount(_ttoi(strData)); // condition2 strData = m_ctrlGridGlassJudgeDefect.GetItemText(nRowIdx, nColIdx++); pRcpJudgeInfo->SetSubJudgeType(GetJudgeStringIndex(strData)); // count2 strData = m_ctrlGridGlassJudgeDefect.GetItemText(nRowIdx, nColIdx++); pRcpJudgeInfo->SetSubJudgeCount(_ttoi(strData)); // rejudge strData = m_ctrlGridGlassJudgeDefect.GetItemText(nRowIdx, nColIdx); pRcpJudgeInfo->SetReJudgeType(GetJudgeStringIndex(strData)); // rejudge code strData = m_ctrlGridGlassJudgeDefect.GetItemText(nRowIdx++, nColIdx++); pRcpJudgeInfo->SetReJudgeCode(strData); } // judge glass (cell) nRowIdx = 1; nColIdx = 1; pRsRcpReviewInfo->SetRcpJudgeGlassCellCount(m_nEditRcpGlassJudgeCellCount); for (int nIdx = 0; nIdx < m_nEditRcpGlassJudgeCellCount; nIdx++) { CRcpJudgeInfo* pRcpJudgeInfo = pRsRcpReviewInfo->GetRcpJudgeGlassCellInfo(nIdx); if (pRcpJudgeInfo == NULL) continue; nColIdx = 1; // condition1 strData = m_ctrlGridGlassJudgeCell.GetItemText(nRowIdx, nColIdx++); pRcpJudgeInfo->SetJudgeType(GetJudgeStringIndex(strData)); // count1 strData = m_ctrlGridGlassJudgeCell.GetItemText(nRowIdx, nColIdx++); pRcpJudgeInfo->SetJudgeCount(_ttoi(strData)); // condition2 strData = m_ctrlGridGlassJudgeCell.GetItemText(nRowIdx, nColIdx++); pRcpJudgeInfo->SetSubJudgeType(GetJudgeStringIndex(strData)); // count2 strData = m_ctrlGridGlassJudgeCell.GetItemText(nRowIdx, nColIdx++); pRcpJudgeInfo->SetSubJudgeCount(_ttoi(strData)); // rejudge strData = m_ctrlGridGlassJudgeCell.GetItemText(nRowIdx, nColIdx); pRcpJudgeInfo->SetReJudgeType(GetJudgeStringIndex(strData)); // rejudge code strData = m_ctrlGridGlassJudgeCell.GetItemText(nRowIdx++, nColIdx++); pRcpJudgeInfo->SetReJudgeCode(strData); } } void CDlgJudgement::OnEnChangeEditRcpJudgeCellJudgeCount() { // TODO: RICHEDIT 컨트롤인 경우, 이 컨트롤은 // CDialog::OnInitDialog() 함수를 재지정 //하고 마스크에 OR 연산하여 설정된 ENM_CHANGE 플래그를 지정하여 CRichEditCtrl().SetEventMask()를 호출하지 않으면 // 이 알림 메시지를 보내지 않습니다. // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. UpdateData(TRUE); int nRowIdx, nColIdx; CString strTemp; CRect rect; m_ctrlGridCellJudgeDefect.GetWindowRect(&rect); m_ctrlGridCellJudgeDefect.SetRowCount(m_nEditRcpCellJudgeDefectCount + 1); if (m_nEditRcpCellJudgeDefectCount <= 0) return; GV_ITEM Item; CGridCellCombo* pCellCombo = NULL; nRowIdx = 1; nColIdx = 1; for (int nIdx = 0; nIdx < m_nEditRcpCellJudgeDefectCount; nIdx++) { // index nColIdx = 0; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("%02d"), nIdx); Item.strText = strTemp; m_ctrlGridCellJudgeDefect.SetItem(&Item); // condition1 nColIdx++; m_ctrlGridCellJudgeDefect.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridCellJudgeDefect.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(m_arrJudgeType); pCellCombo->SetStyle(CBS_DROPDOWN); if (m_arrJudgeType.GetCount() > 0) m_ctrlGridCellJudgeDefect.SetItemText(nRowIdx, nColIdx, m_arrJudgeType.GetAt(0)); // count1 nColIdx++; m_ctrlGridCellJudgeDefect.SetItemText(nRowIdx, nColIdx, _T("1")); // condition2 nColIdx++; m_ctrlGridCellJudgeDefect.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridCellJudgeDefect.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(m_arrJudgeType); pCellCombo->SetStyle(CBS_DROPDOWN); if (m_arrJudgeType.GetCount() > 0) m_ctrlGridCellJudgeDefect.SetItemText(nRowIdx, nColIdx, m_arrJudgeType.GetAt(0)); // count2 nColIdx++; m_ctrlGridCellJudgeDefect.SetItemText(nRowIdx, nColIdx, _T("1")); // rejudge nColIdx++; m_ctrlGridCellJudgeDefect.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridCellJudgeDefect.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(m_arrJudgeType); pCellCombo->SetStyle(CBS_DROPDOWN); if (m_arrJudgeType.GetCount() > 0) m_ctrlGridCellJudgeDefect.SetItemText(nRowIdx, nColIdx, m_arrJudgeType.GetAt(0)); nRowIdx++; } FillGridCellDefectJudge(); } void CDlgJudgement::OnEnChangeEditRcpJudgeGlassJudgeDefectCount() { // TODO: RICHEDIT 컨트롤인 경우, 이 컨트롤은 // CDialog::OnInitDialog() 함수를 재지정 //하고 마스크에 OR 연산하여 설정된 ENM_CHANGE 플래그를 지정하여 CRichEditCtrl().SetEventMask()를 호출하지 않으면 // 이 알림 메시지를 보내지 않습니다. // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. UpdateData(TRUE); int nRowIdx, nColIdx; CString strTemp; CRect rect; m_ctrlGridGlassJudgeDefect.GetWindowRect(&rect); m_ctrlGridGlassJudgeDefect.SetRowCount(m_nEditRcpGlassJudgeDefectCount + 1); if (m_nEditRcpGlassJudgeDefectCount <= 0) return; GV_ITEM Item; CGridCellCombo* pCellCombo = NULL; nRowIdx = 1; nColIdx = 1; for (int nIdx = 0; nIdx < m_nEditRcpGlassJudgeDefectCount; nIdx++) { // index nColIdx = 0; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("%02d"), nIdx); Item.strText = strTemp; m_ctrlGridGlassJudgeDefect.SetItem(&Item); // condition1 nColIdx++; m_ctrlGridGlassJudgeDefect.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridGlassJudgeDefect.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(m_arrJudgeType); pCellCombo->SetStyle(CBS_DROPDOWN); if (m_arrJudgeType.GetCount() > 0) m_ctrlGridGlassJudgeDefect.SetItemText(nRowIdx, nColIdx, m_arrJudgeType.GetAt(0)); // count1 nColIdx++; m_ctrlGridGlassJudgeDefect.SetItemText(nRowIdx, nColIdx, _T("1")); // condition2 nColIdx++; m_ctrlGridGlassJudgeDefect.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridGlassJudgeDefect.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(m_arrJudgeType); pCellCombo->SetStyle(CBS_DROPDOWN); if (m_arrJudgeType.GetCount() > 0) m_ctrlGridGlassJudgeDefect.SetItemText(nRowIdx, nColIdx, m_arrJudgeType.GetAt(0)); // count2 nColIdx++; m_ctrlGridGlassJudgeDefect.SetItemText(nRowIdx, nColIdx, _T("1")); // rejudge nColIdx++; m_ctrlGridGlassJudgeDefect.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridGlassJudgeDefect.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(m_arrJudgeType); pCellCombo->SetStyle(CBS_DROPDOWN); if (m_arrJudgeType.GetCount() > 0) m_ctrlGridGlassJudgeDefect.SetItemText(nRowIdx, nColIdx, m_arrJudgeType.GetAt(0)); nRowIdx++; } FillGridGlassDefectJudge(); } void CDlgJudgement::OnEnChangeEditRcpJudgeGlassJudgeCellCount() { // TODO: RICHEDIT 컨트롤인 경우, 이 컨트롤은 // CDialog::OnInitDialog() 함수를 재지정 //하고 마스크에 OR 연산하여 설정된 ENM_CHANGE 플래그를 지정하여 CRichEditCtrl().SetEventMask()를 호출하지 않으면 // 이 알림 메시지를 보내지 않습니다. // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. UpdateData(TRUE); int nRowIdx, nColIdx; CString strTemp; CRect rect; m_ctrlGridGlassJudgeCell.GetWindowRect(&rect); m_ctrlGridGlassJudgeCell.SetRowCount(m_nEditRcpGlassJudgeCellCount + 1); if (m_nEditRcpGlassJudgeCellCount <= 0) return; GV_ITEM Item; CGridCellCombo* pCellCombo = NULL; nRowIdx = 1; nColIdx = 1; for (int nIdx = 0; nIdx < m_nEditRcpGlassJudgeCellCount; nIdx++) { // index nColIdx = 0; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("%02d"), nIdx); Item.strText = strTemp; m_ctrlGridGlassJudgeCell.SetItem(&Item); // condition1 nColIdx++; m_ctrlGridGlassJudgeCell.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridGlassJudgeCell.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(m_arrJudgeType); pCellCombo->SetStyle(CBS_DROPDOWN); if (m_arrJudgeType.GetCount() > 0) m_ctrlGridGlassJudgeCell.SetItemText(nRowIdx, nColIdx, m_arrJudgeType.GetAt(0)); // count1 nColIdx++; m_ctrlGridGlassJudgeCell.SetItemText(nRowIdx, nColIdx, _T("1")); // condition2 nColIdx++; m_ctrlGridGlassJudgeCell.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridGlassJudgeCell.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(m_arrJudgeType); pCellCombo->SetStyle(CBS_DROPDOWN); if (m_arrJudgeType.GetCount() > 0) m_ctrlGridGlassJudgeCell.SetItemText(nRowIdx, nColIdx, m_arrJudgeType.GetAt(0)); // count2 nColIdx++; m_ctrlGridGlassJudgeCell.SetItemText(nRowIdx, nColIdx, _T("1")); // rejudge nColIdx++; m_ctrlGridGlassJudgeCell.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridGlassJudgeCell.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(m_arrJudgeType); pCellCombo->SetStyle(CBS_DROPDOWN); if (m_arrJudgeType.GetCount() > 0) m_ctrlGridGlassJudgeCell.SetItemText(nRowIdx, nColIdx, m_arrJudgeType.GetAt(0)); nRowIdx++; } FillGridGlassCellJudge(); } void CDlgJudgement::InitGridCellDefectJudge() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols, nMargin, nDataColumnWidth; CString strTemp; CRect rect; nRows = m_nEditRcpCellJudgeDefectCount + 1; nCols = GRID_CELL_DEFECT_JUDGE_COL_COUNT; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridCellJudgeDefect.GetWindowRect(&rect); m_ctrlGridCellJudgeDefect.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridCellJudgeDefect.SetRowCount(nRows); m_ctrlGridCellJudgeDefect.SetColumnCount(nCols); m_ctrlGridCellJudgeDefect.SetFixedRowCount(nFixRows); m_ctrlGridCellJudgeDefect.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Idx")); Item.strText = strTemp; m_ctrlGridCellJudgeDefect.SetItem(&Item); m_ctrlGridCellJudgeDefect.SetColumnWidth(nColIdx++, 50); nMargin = 30; nDataColumnWidth = (rect.Width() - 50 - nMargin) / (GRID_CELL_DEFECT_JUDGE_COL_COUNT - 1); Item.col = nColIdx; strTemp.Format(_T("Condition1")); Item.strText = strTemp; m_ctrlGridCellJudgeDefect.SetItem(&Item); m_ctrlGridCellJudgeDefect.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T(">=")); Item.strText = strTemp; m_ctrlGridCellJudgeDefect.SetItem(&Item); m_ctrlGridCellJudgeDefect.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T("Condition2")); Item.strText = strTemp; m_ctrlGridCellJudgeDefect.SetItem(&Item); m_ctrlGridCellJudgeDefect.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T("<=")); Item.strText = strTemp; m_ctrlGridCellJudgeDefect.SetItem(&Item); m_ctrlGridCellJudgeDefect.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T("ReJudge")); Item.strText = strTemp; m_ctrlGridCellJudgeDefect.SetItem(&Item); m_ctrlGridCellJudgeDefect.SetColumnWidth(nColIdx++, nDataColumnWidth); } void CDlgJudgement::FillGridCellDefectJudge() { CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg == NULL) return; CRcp_RsReviewManager *pRcpRsReviewManager = pDlg->GetRsReviewManager(); if (pRcpRsReviewManager == NULL) return; CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return; int nRowIdx = 1, nColIdx = 1, nData = 0; CString strData = _T(""); for (int nIdx = 0; nIdx < pRsRcpReviewInfo->GetRcpJudgeCellDefectCount(); nIdx++) { if (nIdx >= m_nEditRcpCellJudgeDefectCount) continue; const CRcpJudgeInfo* pRcpJudgeInfo = pRsRcpReviewInfo->GetRcpJudgeCellDefectInfo(nIdx); if (pRcpJudgeInfo == NULL) continue; nColIdx = 1; // condition1 nData = pRcpJudgeInfo->GetJudgeType() >= m_arrJudgeType.GetCount() ? 0 : pRcpJudgeInfo->GetJudgeType(); m_ctrlGridCellJudgeDefect.SetItemText(nRowIdx, nColIdx++, m_arrJudgeType.GetAt(nData)); // count1 strData.Format(_T("%d"), pRcpJudgeInfo->GetJudgeCount()); m_ctrlGridCellJudgeDefect.SetItemText(nRowIdx, nColIdx++, strData); // condition2 nData = pRcpJudgeInfo->GetSubJudgeType() >= m_arrJudgeType.GetCount() ? 0 : pRcpJudgeInfo->GetSubJudgeType(); m_ctrlGridCellJudgeDefect.SetItemText(nRowIdx, nColIdx++, m_arrJudgeType.GetAt(nData)); // count2 strData.Format(_T("%d"), pRcpJudgeInfo->GetSubJudgeCount()); m_ctrlGridCellJudgeDefect.SetItemText(nRowIdx, nColIdx++, strData); // rejudge if (pRcpJudgeInfo->GetReJudgeType() <= 0) strData = pRcpJudgeInfo->GetReJudgeCode(); else { nData = pRcpJudgeInfo->GetReJudgeType() >= m_arrJudgeType.GetCount() ? 0 : pRcpJudgeInfo->GetReJudgeType(); strData = m_arrJudgeType.GetAt(nData); } m_ctrlGridCellJudgeDefect.SetItemText(nRowIdx++, nColIdx++, strData); } } void CDlgJudgement::InitGridGlassDefectJudge() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols, nMargin, nDataColumnWidth; CString strTemp; CRect rect; nRows = m_nEditRcpGlassJudgeDefectCount + 1; nCols = GRID_GLASS_DEFECT_JUDGE_COL_COUNT; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridGlassJudgeDefect.GetWindowRect(&rect); m_ctrlGridGlassJudgeDefect.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridGlassJudgeDefect.SetRowCount(nRows); m_ctrlGridGlassJudgeDefect.SetColumnCount(nCols); m_ctrlGridGlassJudgeDefect.SetFixedRowCount(nFixRows); m_ctrlGridGlassJudgeDefect.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Idx")); Item.strText = strTemp; m_ctrlGridGlassJudgeDefect.SetItem(&Item); m_ctrlGridGlassJudgeDefect.SetColumnWidth(nColIdx++, 50); nMargin = 30; nDataColumnWidth = (rect.Width() - 50 - nMargin) / (GRID_GLASS_DEFECT_JUDGE_COL_COUNT - 1); Item.col = nColIdx; strTemp.Format(_T("Condition1")); Item.strText = strTemp; m_ctrlGridGlassJudgeDefect.SetItem(&Item); m_ctrlGridGlassJudgeDefect.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T(">=")); Item.strText = strTemp; m_ctrlGridGlassJudgeDefect.SetItem(&Item); m_ctrlGridGlassJudgeDefect.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T("Condition2")); Item.strText = strTemp; m_ctrlGridGlassJudgeDefect.SetItem(&Item); m_ctrlGridGlassJudgeDefect.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T("<=")); Item.strText = strTemp; m_ctrlGridGlassJudgeDefect.SetItem(&Item); m_ctrlGridGlassJudgeDefect.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T("ReJudge")); Item.strText = strTemp; m_ctrlGridGlassJudgeDefect.SetItem(&Item); m_ctrlGridGlassJudgeDefect.SetColumnWidth(nColIdx++, nDataColumnWidth); } void CDlgJudgement::FillGridGlassDefectJudge() { CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg == NULL) return; CRcp_RsReviewManager *pRcpRsReviewManager = pDlg->GetRsReviewManager(); if (pRcpRsReviewManager == NULL) return; CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return; int nRowIdx = 1, nColIdx = 1, nData = 0; CString strData = _T(""); for (int nIdx = 0; nIdx < pRsRcpReviewInfo->GetRcpJudgeGlassDefectCount(); nIdx++) { if (nIdx >= m_nEditRcpGlassJudgeDefectCount) continue; const CRcpJudgeInfo* pRcpJudgeInfo = pRsRcpReviewInfo->GetRcpJudgeGlassDefectInfo(nIdx); if (pRcpJudgeInfo == NULL) continue; nColIdx = 1; // condition1 nData = pRcpJudgeInfo->GetJudgeType() >= m_arrJudgeType.GetCount() ? 0 : pRcpJudgeInfo->GetJudgeType(); m_ctrlGridGlassJudgeDefect.SetItemText(nRowIdx, nColIdx++, m_arrJudgeType.GetAt(nData)); // count1 strData.Format(_T("%d"), pRcpJudgeInfo->GetJudgeCount()); m_ctrlGridGlassJudgeDefect.SetItemText(nRowIdx, nColIdx++, strData); // condition2 nData = pRcpJudgeInfo->GetSubJudgeType() >= m_arrJudgeType.GetCount() ? 0 : pRcpJudgeInfo->GetSubJudgeType(); m_ctrlGridGlassJudgeDefect.SetItemText(nRowIdx, nColIdx++, m_arrJudgeType.GetAt(nData)); // count2 strData.Format(_T("%d"), pRcpJudgeInfo->GetSubJudgeCount()); m_ctrlGridGlassJudgeDefect.SetItemText(nRowIdx, nColIdx++, strData); // rejudge if (pRcpJudgeInfo->GetReJudgeType() <= 0) strData = pRcpJudgeInfo->GetReJudgeCode(); else { nData = pRcpJudgeInfo->GetReJudgeType() >= m_arrJudgeType.GetCount() ? 0 : pRcpJudgeInfo->GetReJudgeType(); strData = m_arrJudgeType.GetAt(nData); } m_ctrlGridGlassJudgeDefect.SetItemText(nRowIdx++, nColIdx++, strData); } } void CDlgJudgement::InitGridGlassCellJudge() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols, nMargin, nDataColumnWidth; CString strTemp; CRect rect; nRows = m_nEditRcpGlassJudgeCellCount + 1; nCols = GRID_GLASS_CELL_JUDGE_COL_COUNT; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridGlassJudgeCell.GetWindowRect(&rect); m_ctrlGridGlassJudgeCell.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridGlassJudgeCell.SetRowCount(nRows); m_ctrlGridGlassJudgeCell.SetColumnCount(nCols); m_ctrlGridGlassJudgeCell.SetFixedRowCount(nFixRows); m_ctrlGridGlassJudgeCell.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Idx")); Item.strText = strTemp; m_ctrlGridGlassJudgeCell.SetItem(&Item); m_ctrlGridGlassJudgeCell.SetColumnWidth(nColIdx++, 50); nMargin = 30; nDataColumnWidth = (rect.Width() - 50 - nMargin) / (GRID_GLASS_CELL_JUDGE_COL_COUNT - 1); Item.col = nColIdx; strTemp.Format(_T("Condition1")); Item.strText = strTemp; m_ctrlGridGlassJudgeCell.SetItem(&Item); m_ctrlGridGlassJudgeCell.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T(">=")); Item.strText = strTemp; m_ctrlGridGlassJudgeCell.SetItem(&Item); m_ctrlGridGlassJudgeCell.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T("Condition2")); Item.strText = strTemp; m_ctrlGridGlassJudgeCell.SetItem(&Item); m_ctrlGridGlassJudgeCell.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T("<=")); Item.strText = strTemp; m_ctrlGridGlassJudgeCell.SetItem(&Item); m_ctrlGridGlassJudgeCell.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T("ReJudge")); Item.strText = strTemp; m_ctrlGridGlassJudgeCell.SetItem(&Item); m_ctrlGridGlassJudgeCell.SetColumnWidth(nColIdx++, nDataColumnWidth); } void CDlgJudgement::FillGridGlassCellJudge() { CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg == NULL) return; CRcp_RsReviewManager *pRcpRsReviewManager = pDlg->GetRsReviewManager(); if (pRcpRsReviewManager == NULL) return; CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return; int nRowIdx = 1, nColIdx = 1, nData = 0; CString strData = _T(""); for (int nIdx = 0; nIdx < pRsRcpReviewInfo->GetRcpJudgeGlassCellCount(); nIdx++) { if (nIdx >= m_nEditRcpGlassJudgeCellCount) continue; const CRcpJudgeInfo* pRcpJudgeInfo = pRsRcpReviewInfo->GetRcpJudgeGlassCellInfo(nIdx); if (pRcpJudgeInfo == NULL) continue; nColIdx = 1; // condition1 nData = pRcpJudgeInfo->GetJudgeType() >= m_arrJudgeType.GetCount() ? 0 : pRcpJudgeInfo->GetJudgeType(); m_ctrlGridGlassJudgeCell.SetItemText(nRowIdx, nColIdx++, m_arrJudgeType.GetAt(nData)); // count1 strData.Format(_T("%d"), pRcpJudgeInfo->GetJudgeCount()); m_ctrlGridGlassJudgeCell.SetItemText(nRowIdx, nColIdx++, strData); // condition2 nData = pRcpJudgeInfo->GetSubJudgeType() >= m_arrJudgeType.GetCount() ? 0 : pRcpJudgeInfo->GetSubJudgeType(); m_ctrlGridGlassJudgeCell.SetItemText(nRowIdx, nColIdx++, m_arrJudgeType.GetAt(nData)); // count2 strData.Format(_T("%d"), pRcpJudgeInfo->GetSubJudgeCount()); m_ctrlGridGlassJudgeCell.SetItemText(nRowIdx, nColIdx++, strData); // rejudge if (pRcpJudgeInfo->GetReJudgeType() <= 0) strData = pRcpJudgeInfo->GetReJudgeCode(); else { nData = pRcpJudgeInfo->GetReJudgeType() >= m_arrJudgeType.GetCount() ? 0 : pRcpJudgeInfo->GetReJudgeType(); strData = m_arrJudgeType.GetAt(nData); } m_ctrlGridGlassJudgeCell.SetItemText(nRowIdx++, nColIdx++, strData); } } void CDlgJudgement::UpdateDialogData() { CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg == NULL) return; CRcp_RsReviewManager *pRcpRsReviewManager = pDlg->GetRsReviewManager(); if (pRcpRsReviewManager == NULL) return; CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return; m_nEditJudgeFilteringCount = pRsRcpReviewInfo->GetRcpZoneFilterInfoCount(); m_nEditJudgeFilteringCount_PR = pRsRcpReviewInfo->GetRcpZoneFilterInfoCount_PR(); m_nEditRcpCellJudgeDefectCount = pRsRcpReviewInfo->GetRcpJudgeCellDefectCount(); m_nEditRcpGlassJudgeDefectCount = pRsRcpReviewInfo->GetRcpJudgeGlassDefectCount(); m_nEditRcpGlassJudgeCellCount = pRsRcpReviewInfo->GetRcpJudgeGlassCellCount(); m_nEditJudgeFilteringCount_CODE = pRsRcpReviewInfo->GetRcpZoneFilterInfoCount_CODE(); UpdateData(FALSE); OnEnChangeEditRcpCellJudgeSettingCount(); OnEnChangeEditRcpCellJudgeSettingCountPR(); OnEnChangeEditRcpJudgeCellJudgeCount(); OnEnChangeEditRcpJudgeGlassJudgeDefectCount(); OnEnChangeEditRcpJudgeGlassJudgeCellCount(); OnEnChangeEditRcpCellJudgeSettingCount_CODE(); InitZoneGridControl(); FillZonFilteringInfo(); FillZonFilteringInfo_PR(); FillZoneInfo(); FillGridCellDefectJudge(); FillGridGlassDefectJudge(); FillGridGlassCellJudge(); FillZonFilteringInfo_CODE(); } int CDlgJudgement::GetJudgeStringIndex(const CString& strString) { int nData = 0; for (int nTypeIdx = 0; nTypeIdx 0) { GV_ITEM Item; nRowIdx = 1; nColIdx = 1; for (i = 0; i < m_nEditJudgeFilteringCount; i++) { //인덱스 nColIdx = 0; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("%02d"), i); Item.strText = strTemp; m_ctrlGridZoneJudgeSetting.SetItem(&Item); // judge code nColIdx++; strArrayOption.RemoveAll(); for (j = 0; j < 1; j++) { switch (j) { // case RCP_FILTER_DATA_JUDGE_TR: // strTemp.Format(_T("TR")); //continue; // break; // case RCP_FILTER_DATA_JUDGE_OK: //strTemp.Format(_T("OK")); // continue; // break; // case RCP_FILTER_DATA_JUDGE_PR: //strTemp.Format(_T("PR")); // continue; // break; default: strTemp.Format(_T("TR")); //continue; break; } strArrayOption.Add(strTemp); } m_ctrlGridZoneJudgeSetting.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridZoneJudgeSetting.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); if ((int)strArrayOption.GetCount() > 0) m_ctrlGridZoneJudgeSetting.SetItemText(nRowIdx, nColIdx, strArrayOption.GetAt(0)); // zone nColIdx++; strArrayOption.RemoveAll(); for (j = 0; j < 5; j++) { switch (j) { case 0: strTemp.Format(_T("Pixel")); break; case 1: strTemp.Format(_T("CS")); break; case 2: strTemp.Format(_T("RED")); break; case 3: strTemp.Format(_T("GREEN")); break; case 4: strTemp.Format(_T("BLUE")); break; default: strTemp.Format(_T("")); break; } strArrayOption.Add(strTemp); } m_ctrlGridZoneJudgeSetting.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridZoneJudgeSetting.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); if ((int)strArrayOption.GetCount() > 0) m_ctrlGridZoneJudgeSetting.SetItemText(nRowIdx, nColIdx, strArrayOption.GetAt(0)); nRowIdx++; } } } void CDlgJudgement::OnEnChangeEditRcpCellJudgeSettingCountPR() { // TODO: RICHEDIT 컨트롤인 경우, 이 컨트롤은 // CDialog::OnInitDialog() 함수를 재지정 //하고 마스크에 OR 연산하여 설정된 ENM_CHANGE 플래그를 지정하여 CRichEditCtrl().SetEventMask()를 호출하지 않으면 // 이 알림 메시지를 보내지 않습니다. // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. UpdateData(TRUE); int i, j, nRowIdx, nColIdx; CString strTemp; CRect rect; CStringArray strArrayOption; CGridCellCombo* pCellCombo = NULL; m_ctrlGridZoneJudgeSetting_PR.GetWindowRect(&rect); m_ctrlGridZoneJudgeSetting_PR.SetRowCount(m_nEditJudgeFilteringCount_PR + 1); if (m_nEditJudgeFilteringCount_PR > 0) { GV_ITEM Item; nRowIdx = 1; nColIdx = 1; for (i = 0; i < m_nEditJudgeFilteringCount_PR; i++) { //인덱스 nColIdx = 0; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("%02d"), i); Item.strText = strTemp; m_ctrlGridZoneJudgeSetting_PR.SetItem(&Item); // judge code nColIdx++; strArrayOption.RemoveAll(); for (j = 0; j < 1; j++) { switch (j) { // case RCP_FILTER_DATA_JUDGE_TR: //strTemp.Format(_T("TR")); // continue; // break; // case RCP_FILTER_DATA_JUDGE_OK: //strTemp.Format(_T("OK")); // continue; // break; // case RCP_FILTER_DATA_JUDGE_PR: // strTemp.Format(_T("PR")); // continue; // break; default: strTemp.Format(_T("PR")); // continue; break; } strArrayOption.Add(strTemp); } m_ctrlGridZoneJudgeSetting_PR.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridZoneJudgeSetting_PR.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); if ((int)strArrayOption.GetCount() > 0) m_ctrlGridZoneJudgeSetting_PR.SetItemText(nRowIdx, nColIdx, strArrayOption.GetAt(0)); // zone nColIdx++; strArrayOption.RemoveAll(); for (j = 0; j < 5; j++) { switch (j) { case 0: strTemp.Format(_T("Pixel")); break; case 1: strTemp.Format(_T("CS")); break; case 2: strTemp.Format(_T("RED")); break; case 3: strTemp.Format(_T("GREEN")); break; case 4: strTemp.Format(_T("BLUE")); break; default: strTemp.Format(_T("")); break; } strArrayOption.Add(strTemp); } m_ctrlGridZoneJudgeSetting_PR.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridZoneJudgeSetting_PR.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); if ((int)strArrayOption.GetCount() > 0) m_ctrlGridZoneJudgeSetting_PR.SetItemText(nRowIdx, nColIdx, strArrayOption.GetAt(0)); nRowIdx++; } } } void CDlgJudgement::OnEnChangeEditRcpCellJudgeSettingCount_CODE() { UpdateData(TRUE); int i, j, nRowIdx, nColIdx; CString strTemp; CRect rect; CStringArray strArrayOption; CGridCellCombo* pCellCombo = NULL; m_ctrlGridCodeJudgeSetting.GetWindowRect(&rect); m_ctrlGridCodeJudgeSetting.SetRowCount(m_nEditJudgeFilteringCount_CODE + 1); if (m_nEditJudgeFilteringCount_CODE > 0) { GV_ITEM Item; nRowIdx = 1; nColIdx = 1; for (i = 0; i < m_nEditJudgeFilteringCount_CODE; i++) { //인덱스 nColIdx = 0; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("%02d"), i); Item.strText = strTemp; m_ctrlGridCodeJudgeSetting.SetItem(&Item); nColIdx++; //strTemp.Format(_T("")); //Item.strText = strTemp; //m_ctrlGridCodeJudgeSetting.SetItemText(nRowIdx,nColIdx, strTemp); // judge code nColIdx++; strArrayOption.RemoveAll(); for (j = 0; j < 1; j++) { switch (j) { // case RCP_FILTER_DATA_JUDGE_TR: //strTemp.Format(_T("TR")); // continue; // break; // case RCP_FILTER_DATA_JUDGE_OK: //strTemp.Format(_T("OK")); // continue; // break; // case RCP_FILTER_DATA_JUDGE_PR: // strTemp.Format(_T("PR")); // continue; // break; default: strTemp.Format(_T("TR")); // continue; break; } strArrayOption.Add(strTemp); } m_ctrlGridCodeJudgeSetting.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridCodeJudgeSetting.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); if ((int)strArrayOption.GetCount() > 0) m_ctrlGridCodeJudgeSetting.SetItemText(nRowIdx, nColIdx, strArrayOption.GetAt(0)); nRowIdx++; } } }