| | |
| | | // DlgReview_FIC.cpp : 구현 파일입니다. |
| | | // DlgReview_FIC.cpp : ���� �����Դϴ�. |
| | | // |
| | | |
| | | #include "stdafx.h" |
| | |
| | | #include "ReviewRecipeEditorDlg.h" |
| | | #include "DlgFilterSizeOption.h" |
| | | |
| | | // CDlgReview 대화 상자입니다. |
| | | // CDlgReview ��ȭ �����Դϴ�. |
| | | |
| | | IMPLEMENT_DYNAMIC(CDlgReview, CDialog) |
| | | |
| | |
| | | END_MESSAGE_MAP() |
| | | |
| | | |
| | | // CDlgReview 메시지 처리기입니다. |
| | | // CDlgReview ���� ó�����Դϴ�. |
| | | BOOL CDlgReview::OnInitDialog() |
| | | { |
| | | CDialog::OnInitDialog(); |
| | | |
| | | // TODO: 여기에 추가 초기화 작업을 추가합니다. |
| | | // TODO: ��� �߰� �ʱ�ȭ �۾��� �߰��մϴ�. |
| | | InitFilterGridControl(); |
| | | InitLightInfoGridControl(); |
| | | InitAFMRecipeGridControl(); |
| | |
| | | |
| | | void CDlgReview::OnBnClickedButtonReviewReset() |
| | | { |
| | | // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. |
| | | // TODO: ��� ��Ʈ�� �˸� ó���� �ڵ带 �߰��մϴ�. |
| | | //CDialog::OnOK(); |
| | | // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. |
| | | // TODO: ��� ��Ʈ�� �˸� ó���� �ڵ带 �߰��մϴ�. |
| | | //CDialog::OnOK(); |
| | | UpdateData(FALSE); |
| | | } |
| | |
| | | |
| | | void CDlgReview::OnBnClickedButtonReviewApply() |
| | | { |
| | | // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. |
| | | // TODO: ��� ��Ʈ�� �˸� ó���� �ڵ带 �߰��մϴ�. |
| | | //CDialog::OnCancel(); |
| | | |
| | | SetFilterInfo(m_nType); |
| | |
| | | nDataColumnWidth = (rect.Width() - 35 - nMargin) / (PRIORITY_INFO_GRID_COL_COUNT-1); |
| | | |
| | | Item.col = nColIdx; |
| | | strTemp.Format(_T("Defect Type")); |
| | | strTemp.Format(_T("Defect Code")); |
| | | Item.strText = strTemp; |
| | | m_ctrlGridFilterinfo.SetItem(&Item); |
| | | m_ctrlGridFilterinfo.SetColumnWidth(nColIdx++, nDataColumnWidth+30); |
| | |
| | | |
| | | if(strArrayOption.GetSize() > 0) |
| | | { |
| | | strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData()); |
| | | //strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData()); |
| | | strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityDefectCode()); //WSI ������ //20210608 |
| | | m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); |
| | | } |
| | | } |
| | |
| | | |
| | | if(strArrayOption.GetSize() > 0) |
| | | { |
| | | strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData()); |
| | | //strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData()); |
| | | strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityDefectCode());//20210608 TRDF ������ |
| | | m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); |
| | | } |
| | | } |
| | |
| | | { |
| | | UpdateData(TRUE); |
| | | |
| | | //리뷰 dlg 가져오기 |
| | | //���� dlg �������� |
| | | CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); |
| | | if(pDlg == NULL) return; |
| | | |
| | | //리뷰 매니져 |
| | | //���� �Ŵ��� |
| | | CRcp_RsReviewManager* pRcpRsReviewManager = NULL; |
| | | pRcpRsReviewManager = pDlg->GetRsReviewManager(); |
| | | if(pRcpRsReviewManager == NULL) return; |
| | |
| | | CString strTemp, strItemText; |
| | | CStringArray strArrayOption; |
| | | |
| | | // [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type 분리 |
| | | // [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(); |
| | |
| | | nColIdx++; |
| | | } |
| | | |
| | | //AFM 레시피 |
| | | //AFM ������ |
| | | nRowIdx = 1; |
| | | nColIdx = 1; |
| | | pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpWsiAFMRecipeInfoCount(m_nAFMCount); |
| | |
| | | else |
| | | { |
| | | //Review |
| | | //조명 |
| | | //���� |
| | | nColIdx = 1; |
| | | pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpLightInfoCount(m_nLightCount); |
| | | pRcpRsReviewManager->GetRsRcpReviewInfo()->m_bAutoLight = m_ctrlAutoLight.GetCheck(); |
| | |
| | | nColIdx++; |
| | | } |
| | | |
| | | //AFM 레시피 |
| | | //AFM ������ |
| | | nRowIdx = 1; |
| | | nColIdx = 1; |
| | | pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpAFMRecipeInfoCount(m_nAFMCount); |
| | |
| | | { |
| | | UpdateData(TRUE); |
| | | |
| | | //리뷰 dlg 가져오기 |
| | | //���� dlg �������� |
| | | CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); |
| | | if(pDlg == NULL) return; |
| | | |
| | | //리뷰 매니져 |
| | | //���� �Ŵ��� |
| | | CRcp_RsReviewManager* pRcpRsReviewManager = NULL; |
| | | pRcpRsReviewManager = pDlg->GetRsReviewManager(); |
| | | if(pRcpRsReviewManager == NULL) return; |
| | |
| | | strTemp = strArrayOption.GetAt(j); |
| | | if(strTemp.Compare(strItemText) == 0) |
| | | { |
| | | pRcpPriorityInfo->SetPriorityOpticData(j); |
| | | //pRcpPriorityInfo->SetPriorityOpticData(j);//20210608 |
| | | pRcpPriorityInfo->SetPriorityDefectCode(j); |
| | | break; |
| | | } |
| | | } |
| | |
| | | strTemp = strArrayOption.GetAt(j); |
| | | if(strTemp.Compare(strItemText) == 0) |
| | | { |
| | | pRcpPriorityInfo->SetPriorityOpticData(j); |
| | | //pRcpPriorityInfo->SetPriorityOpticData(j); //20210608 |
| | | pRcpPriorityInfo->SetPriorityDefectCode(j); |
| | | break; |
| | | } |
| | | } |
| | |
| | | const CSystemInfo *pSystemInfo = pDlg->GetSys_SystemInfo(); |
| | | if (pSystemInfo==NULL) return; |
| | | |
| | | int nLightCount = 0; // 헤더 갯수가 조명 설정 갯수임 |
| | | int nLightCount = 0; // ��� ������ ���� ���� ������ |
| | | int nGantryCount = pSystemInfo->GetGantryInfoCount(); |
| | | for(int nGantryIdx=0; nGantryIdx<nGantryCount; nGantryIdx++) |
| | | { |
| | |
| | | Item.mask = GVIF_TEXT; |
| | | Item.row = nRowIdx; |
| | | Item.col = nColIdx; |
| | | strTemp.Format(_T("Index"));//_T("인덱스")); |
| | | 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("광량 값")); |
| | | 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("최소 광량 값")); |
| | | 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("최대 광량 값")); |
| | | 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("자동 변경 값")); |
| | | strTemp.Format(_T("Auto Light (gLv)"));//_T("�ڵ� ���� ��")); |
| | | Item.strText = strTemp; |
| | | m_ctrlGridLightInfo.SetItem(&Item); |
| | | |
| | |
| | | if(pRcpRsReviewManager == NULL) return; |
| | | |
| | | |
| | | // [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type 분리 |
| | | // [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type �и� |
| | | if(nType) |
| | | { |
| | | m_ctrlAutoLight.SetCheck(pRcpRsReviewManager->GetRsRcpReviewInfo()->GetWsiAutoLight()); |
| | |
| | | if (pHeaderInfo==NULL) continue; |
| | | nAFMCount += pHeaderInfo->GetAFMInfoCount(); |
| | | |
| | | //[2017:6:2]-[WEZASW] : SystemSetting의 배율정보 기준으로 적용(셋팅된 렌즈 배율만 선택) |
| | | //[2017:6:2]-[WEZASW] : SystemSetting�� �������� �������� ����(���õ� ���� ������ ����) |
| | | nLensCount = pHeaderInfo->GetMagnificInfoCount(); |
| | | |
| | | for (int nLensIdx=0; nLensIdx<nLensCount; nLensIdx++) |
| | |
| | | const CMagnificInfo* pMagnificInfo = pHeaderInfo->GetMagnificInfo(nLensIdx); |
| | | if (pMagnificInfo==NULL) continue; |
| | | |
| | | // 2017.12.21 smok. 두 개 이상의 gantry / header 시 AFM 배율 표시 이상. |
| | | // 2017.12.21 smok. �� �� �̻��� gantry / header �� AFM ���� ǥ�� �̻�. |
| | | // strArrayOption[nHeaderIdx].Add(pMagnificInfo->m_strMagnificName); |
| | | strArrayOption[nGantryIdx].Add(pMagnificInfo->m_strMagnificName); |
| | | } |
| | |
| | | Item.mask = GVIF_TEXT; |
| | | Item.row = nRowIdx; |
| | | Item.col = nColIdx; |
| | | strTemp.Format(_T("Index"));//_T("인덱스")); |
| | | 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("레시피 인덱스")); |
| | | 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("배율 인덱스")); |
| | | strTemp.Format(_T("Magnific Index"));//_T("���� ���")); |
| | | Item.strText = strTemp; |
| | | m_ctrlGridAFMRecipeInfo.SetItem(&Item); |
| | | |
| | |
| | | pRcpRsReviewManager = pDlg->GetRsReviewManager(); |
| | | if(pRcpRsReviewManager == NULL) return; |
| | | |
| | | // [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type 분리 |
| | | // [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type �и� |
| | | if(nType) |
| | | { |
| | | nAFMCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpWsiAFMRecipeInfoCount(); |
| | |
| | | |
| | | for (int nResultIdx=0; nResultIdx<m_nFilterCount; nResultIdx++) |
| | | { |
| | | //인덱스 |
| | | //��� |
| | | nColIdx = 0; |
| | | Item.mask = GVIF_TEXT; |
| | | Item.row = nRowIdx; |
| | |
| | | // optic |
| | | nColIdx++; |
| | | strArrayOption.RemoveAll(); |
| | | for(j = 0; j < RCP_PRIORITY_ORDER_COUNT; j++) |
| | | /*for(j = 0; j < RCP_PRIORITY_ORDER_COUNT; j++) |
| | | { |
| | | switch(j) |
| | | { |
| | |
| | | break; |
| | | case RCP_PRIORITY_ORDER_SCR: |
| | | strTemp.Format(_T("SCRATCH")); |
| | | break; |
| | | } |
| | | strArrayOption.Add(strTemp); |
| | | }*/ |
| | | for (j = 0; j < RCP_PRIORITY_DEFECTCODE_COUNT; j++)//20210608 |
| | | { |
| | | switch (j) |
| | | { |
| | | case RCP_PRIORITY_DEFECT_CODE_ALL: |
| | | strTemp.Format(_T("ALL")); |
| | | break; |
| | | case RCP_PRIORITY_DEFECT_CODE_TRDF: |
| | | strTemp.Format(_T("TRDF")); |
| | | break; |
| | | case RCP_PRIORITY_DEFECT_CODE_BATR: |
| | | strTemp.Format(_T("BATR")); |
| | | break; |
| | | case RCP_PRIORITY_DEFECT_CODE_DOBB: |
| | | strTemp.Format(_T("DOBB")); |
| | | break; |
| | | case RCP_PRIORITY_DEFECT_CODE_DOBS: |
| | | strTemp.Format(_T("DOBS")); |
| | | break; |
| | | case RCP_PRIORITY_DEFECT_CODE_DOWW: |
| | | strTemp.Format(_T("DOWW")); |
| | | break; |
| | | case RCP_PRIORITY_DEFECT_CODE_DOWB: |
| | | strTemp.Format(_T("DOWB")); |
| | | break; |
| | | case RCP_PRIORITY_DEFECT_CODE_DOWS: |
| | | strTemp.Format(_T("DOWS")); |
| | | break; |
| | | } |
| | | strArrayOption.Add(strTemp); |
| | |
| | | |
| | | void CDlgReview::SizeOptionSetting(int nIndex) |
| | | { |
| | | //리뷰 dlg 가져오기 |
| | | //���� dlg �������� |
| | | CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); |
| | | if(pDlg == NULL) return; |
| | | |
| | | //리뷰 매니져 |
| | | //���� �Ŵ��� |
| | | CRcp_RsReviewManager* pRcpRsReviewManager = pDlg->GetRsReviewManager(); |
| | | if(pRcpRsReviewManager == NULL) return; |
| | | |