// DlgReview_FIC.cpp : ���� �����Դϴ�. // #include "stdafx.h" #include "ReviewRecipeEditor.h" #include "DlgReview.h" #include "afxdialogex.h" #include "ReviewRecipeEditorDlg.h" #include "DlgFilterSizeOption.h" // CDlgReview ��ȭ �����Դϴ�. IMPLEMENT_DYNAMIC(CDlgReview, CDialog) CDlgReview::CDlgReview(int nType, int nMachineType, CWnd* pParent /*=NULL*/) : CDialog(CDlgReview::IDD, pParent) ,m_nFilterCount(0) , m_dDefocusValue(0) { m_nType = nType; m_nMachineType = nMachineType; m_nLightCount = 0; m_nAFMCount = 0; m_nReviewCount = 0; m_dDefocusValue = 0; } CDlgReview::~CDlgReview() { } void CDlgReview::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_GRID_REVIEW_CODE, m_ctrlGridFilterinfo); DDX_Control(pDX, IDC_REVIEW_SORT_SIZE, m_ctrlSortType); DDX_Control(pDX, IDC_REVIEW_SORT_PEAK, m_ctrlSortType2); DDX_Control(pDX, IDC_REVIEW_SORT_DEC, m_ctrlSortOrder); DDX_Control(pDX, IDC_REVIEW_SORT_ASC, m_ctrlSortOrder2); DDX_Control(pDX, IDC_REVIEW_SORT_PRIORITY_NONE, m_ctrlSortPriority); DDX_Control(pDX, IDC_REVIEW_SORT_PRIORITY_CIRCLE, m_ctrlSortPriority2); DDX_Control(pDX, IDC_REVIEW_SORT_PRIORITY_SCRATCH, m_ctrlSortPriority3); DDX_Control(pDX, IDC_REVIEW_SORT_PRIORITY_BUBBLE, m_ctrlSortPriority4); DDX_Control(pDX, IDC_GRID_RCP_REVIEW_LIGHT_INFO, m_ctrlGridLightInfo); DDX_Control(pDX, IDC_GRID_RCP_REVIEW_AFM_RECIPE_INFO, m_ctrlGridAFMRecipeInfo); DDX_Control(pDX, IDC_CHECK_AUTO_LIGHT, m_ctrlAutoLight); DDX_Text(pDX, IDC_EDIT_RCP_FILTER_COUNT, m_nFilterCount); DDX_Control(pDX, IDC_COMBO2, m_comboctrlSortPriority); DDX_Text(pDX, IDC_REVIEW_DEFOCUS_VALUE, m_dDefocusValue); DDX_Control(pDX, IDC_CHECK_REVIEW_DEFOCUS_ALARM, m_ctrlDefocusAlarm); } BEGIN_MESSAGE_MAP(CDlgReview, CDialog) ON_BN_CLICKED(IDC_BUTTON_REVIEW_RESET, &CDlgReview::OnBnClickedButtonReviewReset) ON_BN_CLICKED(IDC_BUTTON_REVIEW_APPLY, &CDlgReview::OnBnClickedButtonReviewApply) ON_EN_CHANGE(IDC_EDIT_RCP_FILTER_COUNT, &CDlgReview::OnEnChangeEditRcpFilterCount) ON_NOTIFY(NM_CLICK, IDC_GRID_REVIEW_CODE, &CDlgReview::OnGridClick) END_MESSAGE_MAP() // CDlgReview �޽��� ó�����Դϴ�. BOOL CDlgReview::OnInitDialog() { CDialog::OnInitDialog(); // TODO: ���⿡ �߰� �ʱ�ȭ �۾��� �߰��մϴ�. InitFilterGridControl(); InitLightInfoGridControl(); InitAFMRecipeGridControl(); FillFilterInfo(m_nType); return TRUE; } void CDlgReview::OnBnClickedButtonReviewReset() { // TODO: ���⿡ ��Ʈ�� �˸� ó���� �ڵ带 �߰��մϴ�. //CDialog::OnOK(); // TODO: ���⿡ ��Ʈ�� �˸� ó���� �ڵ带 �߰��մϴ�. //CDialog::OnOK(); UpdateData(FALSE); } void CDlgReview::OnBnClickedButtonReviewApply() { // TODO: ���⿡ ��Ʈ�� �˸� ó���� �ڵ带 �߰��մϴ�. //CDialog::OnCancel(); SetFilterInfo(m_nType); SetLightAFMInfo(m_nType); } void CDlgReview::UpdateDialogData(int nType) { FillFilterInfo(nType); FillLightInfoInfo(nType); FillAFMRecipeInfo(nType); Invalidate(FALSE); } void CDlgReview::InitFilterGridControl() { int nRowIdx, nColIdx, nCols, nFixRows, nFixCols, nMargin, nDataColumnWidth; CString strTemp; CRect rect; nCols = PRIORITY_INFO_GRID_COL_COUNT; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; CFont font; font.CreateFont( 14, // nHeight 5, // nWidth 0, // nEscapement 0, // nOrientation FW_NORMAL, // nWeight FALSE, // bItalic FALSE, // bUnderline 0, // cStrikeOut ANSI_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily _T("Arial")); m_ctrlGridFilterinfo.SetFont(&font); m_ctrlGridFilterinfo.GetWindowRect(&rect); m_ctrlGridFilterinfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridFilterinfo.SetColumnCount(nCols); m_ctrlGridFilterinfo.SetFixedRowCount(nFixRows); m_ctrlGridFilterinfo.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Idx")); Item.strText = strTemp; m_ctrlGridFilterinfo.SetItem(&Item); m_ctrlGridFilterinfo.SetColumnWidth(nColIdx++, 35); nMargin = 5; nDataColumnWidth = (rect.Width() - 35 - nMargin) / (PRIORITY_INFO_GRID_COL_COUNT-1); Item.col = nColIdx; strTemp.Format(_T("Defect Code")); Item.strText = strTemp; m_ctrlGridFilterinfo.SetItem(&Item); m_ctrlGridFilterinfo.SetColumnWidth(nColIdx++, nDataColumnWidth+30); Item.col = nColIdx; strTemp.Format(_T("Grade Type")); Item.strText = strTemp; m_ctrlGridFilterinfo.SetItem(&Item); m_ctrlGridFilterinfo.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T("Stack Type")); Item.strText = strTemp; m_ctrlGridFilterinfo.SetItem(&Item); m_ctrlGridFilterinfo.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T("Gray Type")); Item.strText = strTemp; m_ctrlGridFilterinfo.SetItem(&Item); m_ctrlGridFilterinfo.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T("Model Type")); Item.strText = strTemp; m_ctrlGridFilterinfo.SetItem(&Item); m_ctrlGridFilterinfo.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T("Size Filter")); Item.strText = strTemp; m_ctrlGridFilterinfo.SetItem(&Item); m_ctrlGridFilterinfo.SetColumnWidth(nColIdx++, nDataColumnWidth-30); m_ctrlGridFilterinfo.Invalidate(FALSE); } void CDlgReview::FillFilterInfo(int nType) { int nRowIdx, nColIdx; CGridCellCheck* pCellCheck = NULL; CString strItemText; CGridCellCombo* pCellCombo = NULL; CStringArray strArrayOption; CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; const CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return; if (nType) { //WSI int nFilterCount = pRsRcpReviewInfo->GetRcpWsiPriorityInfoCount(); if(nFilterCount > 0) { m_nFilterCount = nFilterCount; } UpdateData(FALSE); OnEnChangeEditRcpFilterCount(); nRowIdx = 1; for(int i=0;iGetRcpWsiPriorityInfo(i); if (pRcpPriorityInfo == NULL) continue; /*pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0) {*/ //strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData()); //strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityDefectCode()); //WSI ������ //20210608 //m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD START strItemText.Format(_T("%s"), pRcpPriorityInfo->GetPriorityDefectCode()); m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD END // } //} pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx); if (pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if (strArrayOption.GetSize() > 0) { strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityGradeData()); m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); } } pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0) { strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityStackData()); m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); } } pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0) { //LYW ERR수정 strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityGrayData()); m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); } } pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0) { strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityModelData()); m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); } } pCellCheck = (CGridCellCheck*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); if(pCellCheck) pCellCheck->SetCheck(pRcpPriorityInfo->GetPriorityDefectSizeOption()); nRowIdx++; } //sort CRcpSortingInfo* pRcpSortInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpWSISortInfo(); if(pRcpSortInfo == NULL) return; if(pRcpSortInfo->m_nSortType) { m_ctrlSortType2.SetCheck(TRUE); m_ctrlSortType.SetCheck(FALSE); } else { m_ctrlSortType.SetCheck(TRUE); m_ctrlSortType2.SetCheck(FALSE); } if(pRcpSortInfo->m_nSortData) { m_ctrlSortOrder2.SetCheck(TRUE); m_ctrlSortOrder.SetCheck(FALSE); } else { m_ctrlSortOrder.SetCheck(TRUE); m_ctrlSortOrder2.SetCheck(FALSE); } m_comboctrlSortPriority.SetCurSel(pRcpSortInfo->m_nSortPriority); } else { //Review int nFilterCount = pRsRcpReviewInfo->GetRcpPriorityInfoCount(); if(nFilterCount >= 0) { m_nFilterCount = nFilterCount; } UpdateData(FALSE); OnEnChangeEditRcpFilterCount(); nRowIdx = 1; for(int i=0;iGetRcpPriorityInfo(i); if (pRcpPriorityInfo == NULL) continue; /*pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0) {*/ //strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData()); //strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityDefectCode());//20210608 TRDF ������ //m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD START strItemText.Format(_T("%s"), pRcpPriorityInfo->GetPriorityDefectCode()); m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD END /* } }*/ pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0) { int a = pRcpPriorityInfo->GetPriorityGradeData(); strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityGradeData()); m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); } } pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0) { strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityStackData()); m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); } } pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0) { strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityGrayData()); m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); } } pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx); if (pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if (strArrayOption.GetSize() > 0) { strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityModelData()); m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); } } pCellCheck = (CGridCellCheck*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); if(pCellCheck) pCellCheck->SetCheck(pRcpPriorityInfo->GetPriorityDefectSizeOption()); nRowIdx++; } //sort CRcpSortingInfo* pRcpSortInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpReviewSortInfo(); if(pRcpSortInfo == NULL) return; if(pRcpSortInfo->m_nSortType) { m_ctrlSortType2.SetCheck(TRUE); m_ctrlSortType.SetCheck(FALSE); } else { m_ctrlSortType.SetCheck(TRUE); m_ctrlSortType2.SetCheck(FALSE); } if(pRcpSortInfo->m_nSortData) { m_ctrlSortOrder2.SetCheck(TRUE); m_ctrlSortOrder.SetCheck(FALSE); } else { m_ctrlSortOrder.SetCheck(TRUE); m_ctrlSortOrder2.SetCheck(FALSE); } m_comboctrlSortPriority.SetCurSel(pRcpSortInfo->m_nSortPriority); if(pRsRcpReviewInfo->m_bDefocusUse==TRUE){ m_ctrlDefocusAlarm.SetCheck(TRUE); } else{ m_ctrlDefocusAlarm.SetCheck(FALSE); } m_dDefocusValue =pRsRcpReviewInfo->m_dDefocusValue; UpdateData(FALSE); } m_ctrlGridFilterinfo.Invalidate(FALSE); } void CDlgReview::SetLightAFMInfo(int nType) { UpdateData(TRUE); //���� dlg �������� CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; //���� �Ŵ��� CRcp_RsReviewManager* pRcpRsReviewManager = NULL; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; int i, j, nRowIdx, nColIdx, nArrayCount; CString strTemp, strItemText; CStringArray strArrayOption; // [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type �и� if(nType) { //WSI //���� nColIdx = 1; pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpWsiLightInfoCount(m_nLightCount); pRcpRsReviewManager->GetRsRcpReviewInfo()->m_bAutoLightWsi = m_ctrlAutoLight.GetCheck(); for(i = 0; i < m_nLightCount; i++) { nRowIdx = 1; CRcpLightInfo* pRcpLightInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpWsiLightInfo(i); if(pRcpLightInfo == NULL) continue; strItemText = m_ctrlGridLightInfo.GetItemText(nRowIdx++, nColIdx); pRcpLightInfo->m_nLightLevel = _ttoi(strItemText); strItemText = m_ctrlGridLightInfo.GetItemText(nRowIdx++, nColIdx); pRcpLightInfo->m_nMinThresLevel = _ttoi(strItemText); strItemText = m_ctrlGridLightInfo.GetItemText(nRowIdx++, nColIdx); pRcpLightInfo->m_nMaxThresLevel = _ttoi(strItemText); strItemText = m_ctrlGridLightInfo.GetItemText(nRowIdx++, nColIdx); pRcpLightInfo->m_nAutoLightStep = _ttoi(strItemText); nColIdx++; } //AFM ������ nRowIdx = 1; nColIdx = 1; pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpWsiAFMRecipeInfoCount(m_nAFMCount); for(i = 0; i < m_nAFMCount; i++) { CRcpAFMRecipeInfo* pRcpAFMRecipeInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpWsiAFMRecipeInfo(i); if(pRcpAFMRecipeInfo == NULL) continue; strItemText = m_ctrlGridAFMRecipeInfo.GetItemText(nRowIdx, nColIdx); pRcpAFMRecipeInfo->m_nRecipeIndex = _ttoi(strItemText); strItemText = m_ctrlGridAFMRecipeInfo.GetItemText(3, 1); pRcpAFMRecipeInfo->m_dZPosOffset = _ttof(strItemText); strItemText = m_ctrlGridAFMRecipeInfo.GetItemText(4, 1); pRcpAFMRecipeInfo->m_nAFMOffMode = _ttoi(strItemText); strItemText = m_ctrlGridAFMRecipeInfo.GetItemText(5, 1); pRcpAFMRecipeInfo->m_bAFMHomeOffMode = _ttoi(strItemText); //zoom Idx CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlGridAFMRecipeInfo.GetCell(nRowIdx+1, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); strItemText = pCellCombo->GetText(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for(j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if(strTemp.Compare(strItemText) == 0) { pRcpAFMRecipeInfo->m_nZoomIndex = j; break; } } } nColIdx++; } } else { //Review //���� nColIdx = 1; pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpLightInfoCount(m_nLightCount); pRcpRsReviewManager->GetRsRcpReviewInfo()->m_bAutoLight = m_ctrlAutoLight.GetCheck(); for(i = 0; i < m_nLightCount; i++) { nRowIdx = 1; CRcpLightInfo* pRcpLightInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpLightInfo(i); if(pRcpLightInfo == NULL) continue; strItemText = m_ctrlGridLightInfo.GetItemText(nRowIdx++, nColIdx); pRcpLightInfo->m_nLightLevel = _ttoi(strItemText); strItemText = m_ctrlGridLightInfo.GetItemText(nRowIdx++, nColIdx); pRcpLightInfo->m_nMinThresLevel = _ttoi(strItemText); strItemText = m_ctrlGridLightInfo.GetItemText(nRowIdx++, nColIdx); pRcpLightInfo->m_nMaxThresLevel = _ttoi(strItemText); strItemText = m_ctrlGridLightInfo.GetItemText(nRowIdx++, nColIdx); pRcpLightInfo->m_nAutoLightStep = _ttoi(strItemText); nColIdx++; } //AFM ������ nRowIdx = 1; nColIdx = 1; pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpAFMRecipeInfoCount(m_nAFMCount); for(i = 0; i < m_nAFMCount; i++) { CRcpAFMRecipeInfo* pRcpAFMRecipeInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpAFMRecipeInfo(i); if(pRcpAFMRecipeInfo == NULL) continue; strItemText = m_ctrlGridAFMRecipeInfo.GetItemText(nRowIdx, nColIdx); pRcpAFMRecipeInfo->m_nRecipeIndex = _ttoi(strItemText); strItemText = m_ctrlGridAFMRecipeInfo.GetItemText(3, 1); pRcpAFMRecipeInfo->m_dZPosOffset = _ttof(strItemText); strItemText = m_ctrlGridAFMRecipeInfo.GetItemText(4, 1); pRcpAFMRecipeInfo->m_nAFMOffMode = _ttoi(strItemText); strItemText = m_ctrlGridAFMRecipeInfo.GetItemText(5, 1); pRcpAFMRecipeInfo->m_bAFMHomeOffMode = _ttoi(strItemText); //zoom Idx CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlGridAFMRecipeInfo.GetCell(nRowIdx+1, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); strItemText = pCellCombo->GetText(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for(j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if(strTemp.Compare(strItemText) == 0) { pRcpAFMRecipeInfo->m_nZoomIndex = j; break; } } } nColIdx++; } } } void CDlgReview::SetFilterInfo(int nType) { UpdateData(TRUE); //���� dlg �������� CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; //���� �Ŵ��� CRcp_RsReviewManager* pRcpRsReviewManager = NULL; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return; CRcpSchedulingInfo* pScheduleInfo = pRsRcpReviewInfo->GetRcpSchedulingInfo(); if (pScheduleInfo == NULL) return; CGridCellCheck* pCellCheck = NULL; CGridCellCombo* pCellCombo = NULL; CGridCell* pCell = NULL; int nRowIdx, nColIdx, j, nArrayCount; CString strItemText, strTemp; CStringArray strArrayOption; int nCountError = 0; // Wsi if(nType) { pRsRcpReviewInfo->SetRcpWsiPriorityInfoCount(m_nFilterCount); nRowIdx = 1; for(int i=0;iGetRcpWsiPriorityInfo(i); if(pRcpPriorityInfo == NULL) continue; // optic //pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); //if(pCellCombo) //{ // strArrayOption.RemoveAll(); // strItemText = pCellCombo->GetText(); // pCellCombo->GetOptions(strArrayOption); // nArrayCount = (int)strArrayOption.GetCount(); // for(j = 0; j < nArrayCount; j++) // { // strTemp = strArrayOption.GetAt(j); // if(strTemp.Compare(strItemText) == 0) // { // //pRcpPriorityInfo->SetPriorityOpticData(j);//20210608 // pRcpPriorityInfo->SetPriorityDefectCode(j); // break; // } // } //} //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD START strItemText.Format(_T("%s"), m_ctrlGridFilterinfo.GetItemText(nRowIdx, nColIdx++)); pRcpPriorityInfo->SetPriorityDefectCode(strItemText); //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD END pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); if(pCellCombo) { strArrayOption.RemoveAll(); strItemText = pCellCombo->GetText(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for(j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if(strTemp.Compare(strItemText) == 0) { pRcpPriorityInfo->SetPriorityGradeData(j); break; } } } pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); if(pCellCombo) { strArrayOption.RemoveAll(); strItemText = pCellCombo->GetText(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for(j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if(strTemp.Compare(strItemText) == 0) { pRcpPriorityInfo->SetPriorityStackData(j); break; } } } pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); if(pCellCombo) { strArrayOption.RemoveAll(); strItemText = pCellCombo->GetText(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for(j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if(strTemp.Compare(strItemText) == 0) { pRcpPriorityInfo->SetPriorityGrayData(j); break; } } } pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); if (pCellCombo) { strArrayOption.RemoveAll(); strItemText = pCellCombo->GetText(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for (j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if (strTemp.Compare(strItemText) == 0) { pRcpPriorityInfo->SetPriorityModelData(j); break; } } } pCellCheck = (CGridCellCheck*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); if(pCellCheck) pRcpPriorityInfo->SetPriorityDefectSizeOption(pCellCheck->GetCheck()); nRowIdx++; } } // Review else { pRsRcpReviewInfo->SetRcpPriorityInfoCount(m_nFilterCount); nRowIdx = 1; for(int i=0;iGetRcpPriorityInfo(i); if(pRcpPriorityInfo == NULL) continue; //pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); //if(pCellCombo) //{ // strArrayOption.RemoveAll(); // strItemText = pCellCombo->GetText(); // pCellCombo->GetOptions(strArrayOption); // nArrayCount = (int)strArrayOption.GetCount(); // for(j = 0; j < nArrayCount; j++) // { // strTemp = strArrayOption.GetAt(j); // if(strTemp.Compare(strItemText) == 0) // { // //pRcpPriorityInfo->SetPriorityOpticData(j); //20210608 // pRcpPriorityInfo->SetPriorityDefectCode(j); // break; // } // } //} //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD START strItemText.Format(_T("%s"), m_ctrlGridFilterinfo.GetItemText(nRowIdx, nColIdx++)); pRcpPriorityInfo->SetPriorityDefectCode(strItemText); //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD END pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); if(pCellCombo) { strArrayOption.RemoveAll(); strItemText = pCellCombo->GetText(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for(j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if(strTemp.Compare(strItemText) == 0) { pRcpPriorityInfo->SetPriorityGradeData(j); break; } } } pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); if(pCellCombo) { strArrayOption.RemoveAll(); strItemText = pCellCombo->GetText(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for(j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if(strTemp.Compare(strItemText) == 0) { pRcpPriorityInfo->SetPriorityStackData(j); break; } } } pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); if(pCellCombo) { strArrayOption.RemoveAll(); strItemText = pCellCombo->GetText(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for(j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if(strTemp.Compare(strItemText) == 0) { pRcpPriorityInfo->SetPriorityGrayData(j); break; } } } pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); if (pCellCombo) { strArrayOption.RemoveAll(); strItemText = pCellCombo->GetText(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for (j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if (strTemp.Compare(strItemText) == 0) { pRcpPriorityInfo->SetPriorityModelData(j); break; } } } pCellCheck = (CGridCellCheck*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); if(pCellCheck) pRcpPriorityInfo->SetPriorityDefectSizeOption(pCellCheck->GetCheck()); nRowIdx++; } } CRcpSortingInfo* pRcpSortInfo = NULL; if(nType) { pRcpSortInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpWSISortInfo(); } else { pRcpSortInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpReviewSortInfo(); } if(pRcpSortInfo == NULL) return; if(m_ctrlSortType.GetCheck()) pRcpSortInfo->m_nSortType=0; else pRcpSortInfo->m_nSortType=1; if(m_ctrlSortOrder.GetCheck()) pRcpSortInfo->m_nSortData=0; else pRcpSortInfo->m_nSortData=1; pRcpSortInfo->m_nSortPriority = m_comboctrlSortPriority.GetCurSel(); if(m_ctrlDefocusAlarm.GetCheck()) pRsRcpReviewInfo->m_bDefocusUse = 1; else pRsRcpReviewInfo->m_bDefocusUse = 0; pRsRcpReviewInfo->m_dDefocusValue = m_dDefocusValue; if (nCountError) { AfxMessageBox(_T("Priority count is larger than max point")); m_ctrlGridFilterinfo.SetFocusCell(nCountError,nColIdx); m_ctrlGridFilterinfo.Invalidate(FALSE); } UpdateData(FALSE); } void CDlgReview::InitLightInfoGridControl() { CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg==NULL) return; const CSystemInfo *pSystemInfo = pDlg->GetSys_SystemInfo(); if (pSystemInfo==NULL) return; int nLightCount = 0; // ��� ������ ���� ���� ������ int nGantryCount = pSystemInfo->GetGantryInfoCount(); for(int nGantryIdx=0; nGantryIdxGetGantryInfo(nGantryIdx); if (pGantryInfo==NULL) continue; nLightCount += pGantryInfo->GetHeaderInfoCount(); } m_nLightCount = nLightCount; int nRows = LIGHT_INFO_GRID_ROW_COUNT; int nCols = nLightCount + 1; int nFixRows = 1; int nFixCols = 1; int nRowIdx = 0; int nColIdx = 0; CRect rect; m_ctrlGridLightInfo.GetWindowRect(&rect); m_ctrlGridLightInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridLightInfo.SetRowCount(nRows); m_ctrlGridLightInfo.SetColumnCount(nCols); m_ctrlGridLightInfo.SetFixedRowCount(nFixRows); m_ctrlGridLightInfo.SetFixedColumnCount(nFixCols); CString strTemp = _T(""); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Index"));//_T("�ε���")); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); m_ctrlGridLightInfo.SetColumnWidth(nColIdx, 100); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Light Level (gLv)"));//_T("���� ��")); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Min Level (gLv)"));//_T("�ּ� ���� ��")); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Max Level (gLv)"));//_T("�ִ� ���� ��")); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Auto Light (gLv)"));//_T("�ڵ� ���� ��")); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); int nMargin = 5; int nDataColumnWidth = 0; if (nLightCount>0) { nDataColumnWidth = (rect.Width() - 100 - nMargin) / nLightCount; } nRowIdx = 0; nColIdx = 1; Item.row = nRowIdx; for(int nLightIdx = 0; nLightIdx < nLightCount; nLightIdx++) { Item.col = nColIdx; strTemp.Format(_T("%02d"), nLightIdx); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); m_ctrlGridLightInfo.SetColumnWidth(nColIdx++, nDataColumnWidth); } } void CDlgReview::FillLightInfoInfo(int nType) { int i, nRowIdx, nColIdx, nLightCount; CString strItemText; CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; // [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type �и� if(nType) { m_ctrlAutoLight.SetCheck(pRcpRsReviewManager->GetRsRcpReviewInfo()->GetWsiAutoLight()); nLightCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpWsiLightInfoCount(); nColIdx = 1; for(i = 0; i < nLightCount; i++) { nRowIdx = 1; CRcpLightInfo* pRcpLightInfoWsi = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpWsiLightInfo(i); if(pRcpLightInfoWsi == NULL) continue; strItemText.Format(_T("%d"), pRcpLightInfoWsi->m_nLightLevel); m_ctrlGridLightInfo.SetItemText(nRowIdx++, nColIdx, strItemText); strItemText.Format(_T("%d"), pRcpLightInfoWsi->m_nMinThresLevel); m_ctrlGridLightInfo.SetItemText(nRowIdx++, nColIdx, strItemText); strItemText.Format(_T("%d"), pRcpLightInfoWsi->m_nMaxThresLevel); m_ctrlGridLightInfo.SetItemText(nRowIdx++, nColIdx, strItemText); strItemText.Format(_T("%d"), pRcpLightInfoWsi->m_nAutoLightStep); m_ctrlGridLightInfo.SetItemText(nRowIdx++, nColIdx, strItemText); nColIdx++; } m_ctrlGridLightInfo.Invalidate(FALSE); } else { m_ctrlAutoLight.SetCheck(pRcpRsReviewManager->GetRsRcpReviewInfo()->GetAutoLight()); nLightCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpLightInfoCount(); nColIdx = 1; for(i = 0; i < nLightCount; i++) { nRowIdx = 1; CRcpLightInfo* pRcpLightInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpLightInfo(i); if(pRcpLightInfo == NULL) continue; strItemText.Format(_T("%d"), pRcpLightInfo->m_nLightLevel); m_ctrlGridLightInfo.SetItemText(nRowIdx++, nColIdx, strItemText); strItemText.Format(_T("%d"), pRcpLightInfo->m_nMinThresLevel); m_ctrlGridLightInfo.SetItemText(nRowIdx++, nColIdx, strItemText); strItemText.Format(_T("%d"), pRcpLightInfo->m_nMaxThresLevel); m_ctrlGridLightInfo.SetItemText(nRowIdx++, nColIdx, strItemText); strItemText.Format(_T("%d"), pRcpLightInfo->m_nAutoLightStep); m_ctrlGridLightInfo.SetItemText(nRowIdx++, nColIdx, strItemText); nColIdx++; } m_ctrlGridLightInfo.Invalidate(FALSE); } } void CDlgReview::InitAFMRecipeGridControl() { CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg==NULL) return; const CSystemInfo* pSystemInfo = pDlg->GetSys_SystemInfo(); if (pSystemInfo==NULL) return; CString strTemp = _T(""); CStringArray strArrayOption[2]; int nLensCount = 0; int nAFMCount = 0; int nGantryCount = pSystemInfo->GetGantryInfoCount(); for(int nGantryIdx = 0; nGantryIdx < nGantryCount; nGantryIdx++) { const CGantryInfo *pGantryInfo = pSystemInfo->GetGantryInfo(nGantryIdx); if (pGantryInfo==NULL) continue; int nHeaderCount = pGantryInfo->GetHeaderInfoCount(); for (int nHeaderIdx=0; nHeaderIdxGetHeaderInfo(nHeaderIdx); if (pHeaderInfo==NULL) continue; nAFMCount += pHeaderInfo->GetAFMInfoCount(); //[2017:6:2]-[WEZASW] : SystemSetting�� �������� �������� ����(���õ� ���� ������ ����) nLensCount = pHeaderInfo->GetMagnificInfoCount(); for (int nLensIdx=0; nLensIdxGetMagnificInfo(nLensIdx); if (pMagnificInfo==NULL) continue; // 2017.12.21 smok. �� �� �̻��� gantry / header �� AFM ���� ǥ�� �̻�. // strArrayOption[nHeaderIdx].Add(pMagnificInfo->m_strMagnificName); strArrayOption[nGantryIdx].Add(pMagnificInfo->m_strMagnificName); } } } m_nAFMCount = nAFMCount; if(m_nAFMCount > 0) { int nRows = AFM_RECIPE_INFO_GRID_ROW_COUNT; int nCols = m_nAFMCount + 1; int nFixRows = 1; int nFixCols = 1; int nRowIdx = 0; int nColIdx = 0; CRect rect; m_ctrlGridAFMRecipeInfo.GetWindowRect(&rect); m_ctrlGridAFMRecipeInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridAFMRecipeInfo.SetRowCount(nRows); m_ctrlGridAFMRecipeInfo.SetColumnCount(nCols); m_ctrlGridAFMRecipeInfo.SetFixedRowCount(nFixRows); m_ctrlGridAFMRecipeInfo.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Index"));//_T("�ε���")); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); m_ctrlGridAFMRecipeInfo.SetColumnWidth(nColIdx, 100); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Recipe Index"));//_T("������ �ε���")); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Magnific Index"));//_T("���� �ε���")); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("AFM ZPos Offset")); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("AFM Off Mode")); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("AFM Home OFF")); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); int nMargin = 5; int nDataColumnWidth = (rect.Width() - 100 - nMargin) / m_nAFMCount; nRowIdx = 0; nColIdx = 1; Item.row = nRowIdx; for(int nAFMIdx = 0; nAFMIdx < m_nAFMCount; nAFMIdx++) { Item.col = nColIdx; strTemp.Format(_T("%02d"), nAFMIdx); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); m_ctrlGridAFMRecipeInfo.SetColumnWidth(nColIdx, nDataColumnWidth); nColIdx++; } nRowIdx = 2; nColIdx = 1; Item.row = nRowIdx; for(int nAFMIdx = 0; nAFMIdx < m_nAFMCount; nAFMIdx++) { Item.col = nColIdx; m_ctrlGridAFMRecipeInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlGridAFMRecipeInfo.GetCell(nRowIdx, nColIdx); if (pCellCombo) { pCellCombo->SetOptions(strArrayOption[nAFMIdx]); pCellCombo->SetStyle(CBS_DROPDOWN); } nColIdx++; } } } void CDlgReview::FillAFMRecipeInfo(int nType) { int i, nRowIdx, nColIdx, nAFMCount; CString strItemText; CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; CStringArray strArrayOption; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; // [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type �и� if(nType) { nAFMCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpWsiAFMRecipeInfoCount(); nRowIdx = 1; nColIdx = 1; for(i = 0; i < nAFMCount; i++) { CRcpAFMRecipeInfo* pRcpAFMRecipeInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpWsiAFMRecipeInfo(i); if(pRcpAFMRecipeInfo == NULL) continue; strItemText.Format(_T("%d"), pRcpAFMRecipeInfo->m_nRecipeIndex); m_ctrlGridAFMRecipeInfo.SetItemText(nRowIdx, nColIdx++, strItemText); strItemText.Format(_T("%lf"), pRcpAFMRecipeInfo->m_dZPosOffset); m_ctrlGridAFMRecipeInfo.SetItemText(3, 1, strItemText); strItemText.Format(_T("%d"), pRcpAFMRecipeInfo->m_nAFMOffMode); m_ctrlGridAFMRecipeInfo.SetItemText(4, 1, strItemText); strItemText.Format(_T("%d"), pRcpAFMRecipeInfo->m_bAFMHomeOffMode); m_ctrlGridAFMRecipeInfo.SetItemText(5, 1, strItemText); } nRowIdx++; nColIdx = 1; for(i = 0; i < nAFMCount; i++) { CRcpAFMRecipeInfo* pRcpAFMRecipeInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpWsiAFMRecipeInfo(i); if(pRcpAFMRecipeInfo == NULL) continue; CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlGridAFMRecipeInfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0 && pRcpAFMRecipeInfo->m_nZoomIndex > -1) { strItemText = strArrayOption.GetAt(pRcpAFMRecipeInfo->m_nZoomIndex); m_ctrlGridAFMRecipeInfo.SetItemText(nRowIdx, nColIdx, strItemText); } } nColIdx++; } m_ctrlGridAFMRecipeInfo.Invalidate(FALSE); } else { nAFMCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpAFMRecipeInfoCount(); nRowIdx = 1; nColIdx = 1; for(i = 0; i < nAFMCount; i++) { CRcpAFMRecipeInfo* pRcpAFMRecipeInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpAFMRecipeInfo(i); if(pRcpAFMRecipeInfo == NULL) continue; strItemText.Format(_T("%d"), pRcpAFMRecipeInfo->m_nRecipeIndex); m_ctrlGridAFMRecipeInfo.SetItemText(nRowIdx, nColIdx++, strItemText); strItemText.Format(_T("%lf"), pRcpAFMRecipeInfo->m_dZPosOffset); m_ctrlGridAFMRecipeInfo.SetItemText(3, 1, strItemText); strItemText.Format(_T("%d"), pRcpAFMRecipeInfo->m_nAFMOffMode); m_ctrlGridAFMRecipeInfo.SetItemText(4, 1, strItemText); strItemText.Format(_T("%d"), pRcpAFMRecipeInfo->m_bAFMHomeOffMode); m_ctrlGridAFMRecipeInfo.SetItemText(5, 1, strItemText); } nRowIdx++; nColIdx = 1; for(i = 0; i < nAFMCount; i++) { CRcpAFMRecipeInfo* pRcpAFMRecipeInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpAFMRecipeInfo(i); if(pRcpAFMRecipeInfo == NULL) continue; CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlGridAFMRecipeInfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0 && pRcpAFMRecipeInfo->m_nZoomIndex > -1) { strItemText = strArrayOption.GetAt(pRcpAFMRecipeInfo->m_nZoomIndex); m_ctrlGridAFMRecipeInfo.SetItemText(nRowIdx, nColIdx, strItemText); } } nColIdx++; } m_ctrlGridAFMRecipeInfo.Invalidate(FALSE); } } void CDlgReview::OnEnChangeEditRcpFilterCount() { UpdateData(TRUE); int j, nRowIdx, nColIdx; CString strTemp; CString strTriangleRecipePath; CRect rect; m_ctrlGridFilterinfo.GetWindowRect(&rect); m_ctrlGridFilterinfo.SetRowCount(m_nFilterCount + 1); if(m_nFilterCount > 0) { GV_ITEM Item; CStringArray strArrayOption; CGridCellCombo* pCellCombo = NULL; CGridCell* pCell = NULL; nRowIdx = 1; nColIdx = 1; VectorInteger intArrayOption; int nPointIdx = 0; for (int nResultIdx=0; nResultIdxSetOptions(strArrayOption); //pCellCombo->SetStyle(CBS_DROPDOWN); nColIdx++; strArrayOption.RemoveAll(); for (j = 0; j < RCP_PRIORITY_GRADE_COUNT; j++) { switch (j) { case RCP_PRIORITY_Judge_ALL: strTemp.Format(_T("ALL")); break; case RCP_PRIORITY_Judge_OK: strTemp.Format(_T("OK")); break; case RCP_PRIORITY_Judge_RP: strTemp.Format(_T("RP")); break; case RCP_PRIORITY_Judge_NG: strTemp.Format(_T("NG")); break; case RCP_PRIORITY_Judge_TR: strTemp.Format(_T("TR")); break; case RCP_PRIORITY_Judge_PR: strTemp.Format(_T("PR")); break; case RCP_PRIORITY_Judge_ND: strTemp.Format(_T("ND")); break; case RCP_PRIORITY_Judge_PT: strTemp.Format(_T("PT")); break; case RCP_PRIORITY_Judge_Review: strTemp.Format(_T("RV")); break; case RCP_PRIORITY_Judge_RC: strTemp.Format(_T("RC")); break; case RCP_PRIORITY_Judge_Size: strTemp.Format(_T("SZ")); break; case RCP_PRIORITY_Judge_VI: strTemp.Format(_T("VI")); break; case RCP_PRIORITY_Judge_Rework: strTemp.Format(_T("RW")); break; case RCP_PRIORITY_Judge_Unknown: strTemp.Format(_T("OK")); break; } strArrayOption.Add(strTemp); } m_ctrlGridFilterinfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); strArrayOption.RemoveAll(); for(j = 0; j < RCP_CPJT_PRIORITY_STACK_COUNT; j++) { switch(j) { case RCP_PRIORITY_CPJT_STACK_ALL: strTemp.Format(_T("ALL")); break; case RCP_PRIORITY_STACK_TD: strTemp.Format(_T("TD")); break; case RCP_PRIORITY_STACK_SD: strTemp.Format(_T("SD")); break; case RCP_PRIORITY_STACK_PD: strTemp.Format(_T("PD")); break; case RCP_PRIORITY_STACK_SP: strTemp.Format(_T("SP")); break; } strArrayOption.Add(strTemp); } m_ctrlGridFilterinfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); strArrayOption.RemoveAll(); for(j = 0; j < RCP_PRIORITY_ORDER_GRAY_COUNT; j++) { switch(j) { case RCP_PRIORITY_ORDER_GRAY_ALL: strTemp.Format(_T("ALL")); break; case RCP_PRIORITY_ORDER_GRAY_BLACK: strTemp.Format(_T("BLACK")); break; case RCP_PRIORITY_ORDER_GRAY_WHITE: strTemp.Format(_T("WHITE")); break; } strArrayOption.Add(strTemp); } m_ctrlGridFilterinfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); strArrayOption.RemoveAll(); for (j = 0; j < RCP_PRIORITY_MODEL_COUNT; j++) { switch (j) { case RCP_PRIORITY_MODEL_TYPE_ALL: strTemp.Format(_T("ALL")); break; case RCP_PRIORITY_MODEL_TYPE_0: strTemp.Format(_T("MODEL_0")); break; case RCP_PRIORITY_MODEL_TYPE_1: strTemp.Format(_T("MODEL_1")); break; } strArrayOption.Add(strTemp); } m_ctrlGridFilterinfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++); pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); m_ctrlGridFilterinfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCheck)); m_ctrlGridFilterinfo.SetItemState(nRowIdx, nColIdx, m_ctrlGridFilterinfo.GetItemState(nRowIdx, nColIdx) | GVIS_READONLY); nRowIdx++; } } } void CDlgReview::SetReviewCount(int reviewCount) { m_nReviewCount = reviewCount; } int CDlgReview::GetDefectType(CString strDefectName) { VectorString compStr; compStr.push_back(_T("CRACK")); compStr.push_back(_T("PARTICLE")); compStr.push_back(_T("MURA")); compStr.push_back(_T("PROTRUDE")); compStr.push_back(_T("DENT")); compStr.push_back(_T("TFE_ABNORMAL")); compStr.push_back(_T("BUBBLE")); compStr.push_back(_T("SCRATCH")); for (int v = 0;viColumn == 6) { UpdateData(TRUE); CGridCellCheck* pCellCheck = (CGridCellCheck*)m_ctrlGridFilterinfo.GetCell(pItem->iRow, pItem->iColumn); if(pCellCheck == NULL) return; if(pCellCheck->GetCheck()) SizeOptionSetting((pItem->iRow-1)); } return; } void CDlgReview::SizeOptionSetting(int nIndex) { //���� dlg �������� 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 nFilterCount, nMaxSize, nMinSize; if(m_nType) // wsi { nFilterCount = pRsRcpReviewInfo->GetRcpWsiPriorityInfoCount(); if(nFilterCount < 1) return; CRcpPriorityInfo* pRcpPriorityInfo = pRsRcpReviewInfo->GetRcpWsiPriorityInfo(nIndex); if (pRcpPriorityInfo == NULL) return; nMaxSize = pRcpPriorityInfo->GetPriorityDefectMaxSize(); nMinSize = pRcpPriorityInfo->GetPriorityDefectMinSize(); } else // Review { nFilterCount = pRsRcpReviewInfo->GetRcpPriorityInfoCount(); if(nFilterCount < 1) return; CRcpPriorityInfo* pRcpPriorityInfo = pRsRcpReviewInfo->GetRcpPriorityInfo(nIndex); if (pRcpPriorityInfo == NULL) return; nMaxSize = pRcpPriorityInfo->GetPriorityDefectMaxSize(); nMinSize = pRcpPriorityInfo->GetPriorityDefectMinSize(); } CDlgFilterSizeOption FilterSizeOptionDlg; FilterSizeOptionDlg.SetFilterSizeInfo(nMinSize, nMaxSize); FilterSizeOptionDlg.DoModal(); if(!FilterSizeOptionDlg.m_bApplyFlag) return; if(m_nType) // wsi { nFilterCount = pRsRcpReviewInfo->GetRcpWsiPriorityInfoCount(); if(nFilterCount < 1) return; CRcpPriorityInfo* pRcpPriorityInfo = pRsRcpReviewInfo->GetRcpWsiPriorityInfo(nIndex); if (pRcpPriorityInfo == NULL) return; pRcpPriorityInfo->SetPriorityDefectMinSize(pRsRcpReviewInfo->m_nRsFilterMInSize); pRcpPriorityInfo->SetPriorityDefectMaxSize(pRsRcpReviewInfo->m_nRsFilterMaxSize); } else // Review { nFilterCount = pRsRcpReviewInfo->GetRcpPriorityInfoCount(); if(nFilterCount < 1) return; CRcpPriorityInfo* pRcpPriorityInfo = pRsRcpReviewInfo->GetRcpPriorityInfo(nIndex); if (pRcpPriorityInfo == NULL) return; pRcpPriorityInfo->SetPriorityDefectMinSize(pRsRcpReviewInfo->m_nRsFilterMInSize); pRcpPriorityInfo->SetPriorityDefectMaxSize(pRsRcpReviewInfo->m_nRsFilterMaxSize); } }