// DlgReview.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù.
|
//
|
|
#include "stdafx.h"
|
#include "ReviewRecipeEditor.h"
|
#include "DlgCommon.h"
|
#include "ReviewRecipeEditorDlg.h"
|
#include "CHCommonControls/GridCellButton.h"
|
#include "DlgUserPitchInpout.h"
|
#include "DlgRecipeChange.h"
|
|
// CDlgCommon ´ëÈ »óÀÚÀÔ´Ï´Ù.
|
|
IMPLEMENT_DYNAMIC(CDlgCommon, CDialog)
|
|
CDlgCommon::CDlgCommon(CWnd* pParent /*=NULL*/)
|
: CDialog(CDlgCommon::IDD, pParent)
|
, m_nPlanCount(0)
|
, m_nUserDefectCount(0)
|
, m_nReflowPixelScale(0)
|
, m_nradioGantryMode(0)
|
{
|
m_nSelectPlanIdx = -1;
|
m_nLightCount = 0;
|
m_nAFMCount = 0;
|
ZeroMemory(m_bSelectGlassSlot, sizeof(BOOL) * TOTAL_GLASS_SLOT_COUNT);
|
}
|
|
CDlgCommon::~CDlgCommon()
|
{
|
}
|
|
void CDlgCommon::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialog::DoDataExchange(pDX);
|
DDX_Control(pDX, IDC_GRID_RCP_REVIEW_PLAN_INFO, m_ctrlGridPlanInfo);
|
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_GRID_RCP_REFLOW_PARAMETER, m_ctrlGridReflowParameter);
|
DDX_Control(pDX, IDC_GRID_RCP_REVIEW_USER_DEFECT_INFO, m_ctrlGridUserDefectInfo);
|
DDX_Text(pDX, IDC_EDIT_RCP_REVIEW_PLAN_COUNT, m_nPlanCount);
|
DDX_Text(pDX, IDC_EDIT_RCP_REVIEW_USER_DEFECT_COUNT, m_nUserDefectCount);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_01, m_ctrlStaticGlassSlot_01);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_02, m_ctrlStaticGlassSlot_02);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_03, m_ctrlStaticGlassSlot_03);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_04, m_ctrlStaticGlassSlot_04);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_05, m_ctrlStaticGlassSlot_05);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_06, m_ctrlStaticGlassSlot_06);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_07, m_ctrlStaticGlassSlot_07);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_08, m_ctrlStaticGlassSlot_08);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_09, m_ctrlStaticGlassSlot_09);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_10, m_ctrlStaticGlassSlot_10);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_11, m_ctrlStaticGlassSlot_11);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_12, m_ctrlStaticGlassSlot_12);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_13, m_ctrlStaticGlassSlot_13);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_14, m_ctrlStaticGlassSlot_14);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_15, m_ctrlStaticGlassSlot_15);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_16, m_ctrlStaticGlassSlot_16);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_17, m_ctrlStaticGlassSlot_17);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_18, m_ctrlStaticGlassSlot_18);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_19, m_ctrlStaticGlassSlot_19);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_20, m_ctrlStaticGlassSlot_20);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_21, m_ctrlStaticGlassSlot_21);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_22, m_ctrlStaticGlassSlot_22);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_23, m_ctrlStaticGlassSlot_23);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_24, m_ctrlStaticGlassSlot_24);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_25, m_ctrlStaticGlassSlot_25);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_26, m_ctrlStaticGlassSlot_26);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_27, m_ctrlStaticGlassSlot_27);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_28, m_ctrlStaticGlassSlot_28);
|
/*< LYW 20220525 - #4157 ADD Start >*/
|
DDX_Radio(pDX, IDC_RADIO_GANTRY_MODE_1, (int&)m_nradioGantryMode);
|
/*< LYW 20220525 - #4157 ADD End >*/
|
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_ALL_SELECT, m_ctrlStaticGlassSlot_ALL_Select);
|
DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_ALL_DESELECT, m_ctrlStaticGlassSlot_ALL_Deselect);
|
DDX_Control(pDX, IDC_COMBO_RCP_REVIEW_GLASS_TYPE, m_ctrlComboGlassType);
|
DDX_Control(pDX, IDC_GRID_RCP_REVIEW_SCHEDULE_INFO, m_ctrlGridScheduleInfo);
|
DDX_Control(pDX, IDC_GRID_RCP_REVIEW_SCHEDULE_RANGE_POINT_COUNT, m_ctrlGridScheduleRangeCntInfo);
|
DDX_Control(pDX, IDC_CHECK_AUTO_LIGHT, m_ctrlAutoLight);
|
DDX_Control(pDX, IDC_COMBO_RCP_GLASSORIGIN, m_ctrlComboGlassOrigin);
|
DDX_Text(pDX, IDC_EDIT_RCP_REFLOW_PIXEL_SCALE, m_nReflowPixelScale);
|
}
|
|
|
BEGIN_MESSAGE_MAP(CDlgCommon, CDialog)
|
ON_BN_CLICKED(IDC_BUTTON_RCP_REVIEW_RESET, &CDlgCommon::OnBnClickedButtonRcpReviewReset)
|
ON_BN_CLICKED(IDC_BUTTON_RCP_REVIEW_APPLY, &CDlgCommon::OnBnClickedButtonRcpReviewApply)
|
ON_CONTROL_RANGE(BN_CLICKED, IDC_STATIC_GLASS_SLOT_01, IDC_STATIC_GLASS_SLOT_28, OnGlassSlotClick)
|
ON_CONTROL_RANGE(BN_CLICKED, IDC_RADIO_GANTRY_MODE_1, IDC_RADIO_GANTRY_MODE_3, OnClickRadioGantryMode)
|
ON_EN_CHANGE(IDC_EDIT_RCP_REVIEW_PLAN_COUNT, &CDlgCommon::OnEnChangeEditRcpReviewPlanCount)
|
ON_EN_CHANGE(IDC_EDIT_RCP_REVIEW_USER_DEFECT_COUNT, &CDlgCommon::OnEnChangeEditRcpReviewUserDefectCount)
|
ON_NOTIFY(NM_CLICK, IDC_GRID_RCP_REVIEW_PLAN_INFO, &CDlgCommon::OnPlanInfoGridClick)
|
ON_NOTIFY(GVN_COMBOSELCHANGE, IDC_GRID_RCP_REVIEW_USER_DEFECT_INFO, &CDlgCommon::OnSelChange)
|
ON_BN_CLICKED(IDC_BUTTON_LOAD_MASTER, &CDlgCommon::OnBnClickedButtonLoadMaster)
|
ON_NOTIFY(NM_CLICK, IDC_GRID_RCP_REFLOW_PARAMETER, &CDlgCommon::OnClickImageInfo)
|
ON_BN_CLICKED(IDC_BUTTON_USER_PITCH_INPUT, &CDlgCommon::OnBnClickedButtonUserPitchInput)
|
ON_BN_CLICKED(IDC_BUTTON4, &CDlgCommon::OnBnClickedButton4)
|
/*< LYW 20220525 - #4157 ADD Start >*/
|
/*< LYW 20220525 - #4157 ADD End >*/
|
END_MESSAGE_MAP()
|
|
// CDlgCommon ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù.
|
|
BOOL CDlgCommon::OnInitDialog()
|
{
|
CDialog::OnInitDialog();
|
|
// TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù.
|
int i, nSlotIdx = 0;
|
CString strFont, strTemp;
|
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_01;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_02;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_03;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_04;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_05;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_06;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_07;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_08;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_09;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_10;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_11;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_12;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_13;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_14;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_15;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_16;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_17;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_18;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_19;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_20;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_21;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_22;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_23;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_24;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_25;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_26;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_27;
|
m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_28;
|
|
strFont = _T("MS Sans Serif");
|
|
for(i = 0; i < TOTAL_GLASS_SLOT_COUNT; i++)
|
{
|
strTemp.Format(_T("%d"), i + 1);
|
m_ctrlStaticGlassSlot[i]->SetFontStatic(strFont, 9, RGB(0,0,0), FS_CENTER | FS_BOLD);
|
m_ctrlStaticGlassSlot[i]->SetBackground(RGB(240,240,240));
|
m_ctrlStaticGlassSlot[i]->SetWindowText(strTemp);
|
}
|
|
m_ctrlStaticGlassSlot_ALL_Select.SetFontStatic(strFont, 9, RGB(0,0,0), FS_CENTER | FS_BOLD);
|
m_ctrlStaticGlassSlot_ALL_Select.SetBackground(RGB(240,240,240));
|
m_ctrlStaticGlassSlot_ALL_Select.SetWindowText(_T("All Select"));//_T("Àüü ¼±ÅÃ"));
|
|
m_ctrlStaticGlassSlot_ALL_Deselect.SetFontStatic(strFont, 9, RGB(0,0,0), FS_CENTER | FS_BOLD);
|
m_ctrlStaticGlassSlot_ALL_Deselect.SetBackground(RGB(240,240,240));
|
m_ctrlStaticGlassSlot_ALL_Deselect.SetWindowText(_T("Cancel"));//_T("¼±Åà Ãë¼Ò"));
|
|
int nGlassTypeCount;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
if(pDlg)
|
{
|
CSys_GlassTypeManager *pSysGlassTypeManager = pDlg->GetSysGlassTypeManager();
|
CRcp_RsReviewManager *pRcpRsReviewManager = pDlg->GetRsReviewManager();
|
if(pSysGlassTypeManager && pRcpRsReviewManager)
|
{
|
nGlassTypeCount = pSysGlassTypeManager->GetGlassTypeInfoCount();
|
|
for(i = 0; i < nGlassTypeCount; i++)
|
{
|
CGlassTypeInfo *pGlassTypeInfo = pSysGlassTypeManager->GetGlassTypeInfo(i);
|
if (pGlassTypeInfo==NULL) continue;
|
|
m_ctrlComboGlassType.InsertString(i, pGlassTypeInfo->m_strGlassTypeName);
|
}
|
|
m_ctrlComboGlassType.SetCurSel(pRcpRsReviewManager->GetRsRcpReviewInfo()->m_nGlassTypeIdx);
|
|
m_ctrlComboGlassOrigin.SetCurSel(pRcpRsReviewManager->GetRsRcpReviewInfo()->m_nGlassOrigion);
|
}
|
}
|
|
|
InitPlanInfoGridControl();
|
FillPlanInfo();
|
|
InitLightInfoGridControl();
|
FillLightInfoInfo();
|
InitAFMRecipeGridControl();
|
FillAFMRecipeInfo();
|
InitScheduleGridControl();
|
FillScheduleInfo();
|
InitScheduleRangeCntGridControl();
|
FillScheduleRangeCntInfo();
|
InitReflowParameterGridControl();
|
FillReflowParameter();
|
InitUserDefectInfoGridControl();
|
FillUserDefectInfo();
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
// ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù.
|
}
|
|
BOOL CDlgCommon::PreTranslateMessage(MSG* pMsg)
|
{
|
// TODO: ¿©±â¿¡ Ư¼öÈµÈ Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº» Ŭ·¡½º¸¦ È£ÃâÇÕ´Ï´Ù.
|
CRect rtSelect, rtDeselect;
|
|
if( pMsg->message == WM_KEYDOWN )
|
{
|
if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE )
|
{
|
::TranslateMessage(pMsg);
|
::DispatchMessage(pMsg);
|
return TRUE;
|
}
|
}
|
|
int i, nPlanCount;
|
VectorRcpPlanInfo* pVectorRcpPlanInfo = NULL;
|
CRcp_RsReviewManager* pRcpRsReviewManager = NULL;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
|
m_ctrlStaticGlassSlot_ALL_Select.GetWindowRect(rtSelect);
|
m_ctrlStaticGlassSlot_ALL_Deselect.GetWindowRect(rtDeselect);
|
|
if(pDlg)
|
{
|
pRcpRsReviewManager = pDlg->GetRsReviewManager();
|
|
if(pRcpRsReviewManager)
|
{
|
nPlanCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfoCount();
|
|
if(m_nSelectPlanIdx < nPlanCount && m_nSelectPlanIdx >= 0)
|
{
|
if(rtSelect.PtInRect(pMsg->pt))
|
{
|
if(pMsg->message == WM_LBUTTONDOWN)
|
{
|
//pVectorRcpPlanInfo = &pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo();m_rsRcpReviewInfo.m_vecRcpPlanInfo;
|
m_ctrlStaticGlassSlot_ALL_Select.SetBackground(RGB(0,255,0));
|
for(i = 0; i < TOTAL_GLASS_SLOT_COUNT; i++)
|
{
|
pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo(m_nSelectPlanIdx)->m_bSelectSlot[i] = TRUE;
|
//(*pVectorRcpPlanInfo)[m_nSelectPlanIdx].m_bSelectSlot[i] = TRUE;
|
}
|
UpdateSelectGlassSlot();
|
}
|
if(pMsg->message == WM_LBUTTONUP)
|
{
|
m_ctrlStaticGlassSlot_ALL_Select.SetBackground(RGB(240,240,240));
|
}
|
}
|
|
if(rtDeselect.PtInRect(pMsg->pt))
|
{
|
if(pMsg->message == WM_LBUTTONDOWN)
|
{
|
m_ctrlStaticGlassSlot_ALL_Deselect.SetBackground(RGB(0,255,0));
|
memset(pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo(m_nSelectPlanIdx)->m_bSelectSlot, 0, sizeof(BOOL) * TOTAL_GLASS_SLOT_COUNT);
|
UpdateSelectGlassSlot();
|
}
|
if(pMsg->message == WM_LBUTTONUP)
|
{
|
m_ctrlStaticGlassSlot_ALL_Deselect.SetBackground(RGB(240,240,240));
|
}
|
}
|
}
|
}
|
}
|
|
return CDialog::PreTranslateMessage(pMsg);
|
}
|
|
void CDlgCommon::OnBnClickedButtonRcpReviewReset()
|
{
|
// TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
int i, nRowIdx, nColIdx;
|
CString strItemText;
|
m_nPlanCount = 0;
|
m_nUserDefectCount = 0;
|
m_ctrlComboGlassType.SetCurSel(-1);
|
m_ctrlComboGlassOrigin.SetCurSel(4);
|
|
UpdateData(FALSE);
|
OnEnChangeEditRcpReviewPlanCount();
|
OnEnChangeEditRcpReviewUserDefectCount();
|
|
nRowIdx = 1;
|
nColIdx = 1;
|
strItemText = _T("");
|
|
for(i = 0; i < m_nLightCount; i++)
|
{
|
m_ctrlGridLightInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
}
|
m_ctrlGridLightInfo.Invalidate(FALSE);
|
m_ctrlAutoLight.SetCheck(FALSE);
|
|
nRowIdx = 1;
|
nColIdx = 1;
|
|
for(i = 0; i < m_nAFMCount; i++)
|
{
|
m_ctrlGridAFMRecipeInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
}
|
m_ctrlGridAFMRecipeInfo.Invalidate(FALSE);
|
|
nRowIdx = 1;
|
nColIdx = 0;
|
CGridCellCheck* pCellCheck = NULL;
|
|
for(i = 0; i < SCHEDULE_INFO_GRID_COL_COUNT; i++)
|
{
|
if(i == 0)
|
{
|
pCellCheck = (CGridCellCheck*)m_ctrlGridScheduleInfo.GetCell(nRowIdx, nColIdx++);
|
|
if(pCellCheck)
|
{
|
pCellCheck->SetCheck(FALSE);
|
}
|
}
|
|
m_ctrlGridScheduleInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
}
|
m_ctrlGridScheduleInfo.Invalidate(FALSE);
|
}
|
|
void CDlgCommon::OnBnClickedButtonRcpReviewApply()
|
{
|
// TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
UpdateData(TRUE);
|
|
int i, j, nRowIdx, nColIdx, nArrayCount;
|
CString strTemp, strItemText, strItemTextTemp;
|
CRcp_RsReviewManager* pRcpRsReviewManager = NULL;
|
CGridCellCheck* pCellCheck = NULL;
|
CGridCellCombo* pCellCombo = NULL;
|
CGridCellCombo* pCellComboTemp = NULL;
|
CStringArray strArrayOption;
|
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
if(pDlg == NULL) return;
|
|
pRcpRsReviewManager = pDlg->GetRsReviewManager();
|
if(pRcpRsReviewManager == NULL) return;
|
|
CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo();
|
if (pRsRcpReviewInfo == NULL) return;
|
|
// [2017:6:16]-[WEZASW] : schedule Value ¿¹¿Üó¸®. (Max Point 200)
|
nRowIdx = 1;
|
nColIdx = 2;
|
/* if (_ttoi(m_ctrlGridScheduleInfo.GetItemText(nRowIdx, nColIdx++)) > 200)
|
{
|
AfxMessageBox(_T("Review setting Out of range (Max 200"));
|
return;
|
}
|
*/
|
nColIdx++;
|
//if (_ttoi(m_ctrlGridScheduleInfo.GetItemText(nRowIdx, nColIdx++)) > 200)
|
//{
|
// AfxMessageBox(_T("WSI setting Out of range (Max 200)"));
|
// return;
|
//}
|
|
//±Û¶ó½º ŸÀÔ
|
pRsRcpReviewInfo->m_nGlassTypeIdx = m_ctrlComboGlassType.GetCurSel();
|
pRsRcpReviewInfo->m_nGlassOrigion = m_ctrlComboGlassOrigin.GetCurSel();
|
pRsRcpReviewInfo->SetRcpPlanInfoCount(m_nPlanCount);
|
|
//Ç÷£
|
nRowIdx = 1;
|
|
for(i = 0; i < m_nPlanCount; i++)
|
{
|
nColIdx = 1;
|
pCellCombo = (CGridCellCombo*)m_ctrlGridPlanInfo.GetCell(nRowIdx, nColIdx++);
|
|
if(pCellCombo)
|
{
|
strItemText = pCellCombo->GetText();
|
|
// [2017:1:19]-[WEZASW] : Plan ¿¹¿Üó¸®
|
// 1.'WSI Measure' PlanÀº ¹Ýµå½Ã 'Defect Review' PlanÀ» ¼± ÁøÇà.(°í°´»ç¾ç)
|
/*if (i == 0 && strItemText.Compare(_T("WSI Measure")) == 0)
|
{
|
AfxMessageBox(_T("Please add the 'Defect Review' plan first."));
|
return;
|
}
|
else if (strItemText.Compare(_T("WSI Measure")) == 0 && strItemTextTemp.Compare(_T("Defect Review")) != 0)
|
{
|
AfxMessageBox(_T("Please add the 'Defect Review' plan first."));
|
return;
|
}*/
|
|
// 2.Plan °³¼ö¿¡ ´ëÇÑ Plan Ç׸ñ ¼±ÅÃ
|
if (strItemText.Compare(_T("")) == 0)
|
{
|
AfxMessageBox(_T("Please fill in the Plan information."));
|
return;
|
}
|
|
strArrayOption.RemoveAll();
|
pCellCombo->GetOptions(strArrayOption);
|
nArrayCount = (int)strArrayOption.GetCount();
|
|
for(j = 0; j < nArrayCount; j++)
|
{
|
strTemp = strArrayOption.GetAt(j);
|
if(strTemp.Compare(strItemText) == 0)
|
{
|
pRsRcpReviewInfo->GetRcpPlanInfo(i)->m_nReviewType = j;
|
break;
|
}
|
}
|
strItemTextTemp = strItemText;
|
}
|
nRowIdx++;
|
}
|
|
//USER Á¶¸í
|
nColIdx = 1;
|
pRsRcpReviewInfo->SetRcpUserLightInfoCount(m_nLightCount);
|
pRsRcpReviewInfo->m_bAutoLight = m_ctrlAutoLight.GetCheck();
|
for(i = 0; i < m_nLightCount; i++)
|
{
|
nRowIdx = 1;
|
CRcpLightInfo* pRcpLightInfo = pRsRcpReviewInfo->GetRcpUserLightInfo(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++;
|
}
|
|
// USER AFM ·¹½ÃÇÇ
|
TRACE(_T("[A2E]Apply 4\n"));
|
nRowIdx = 1;
|
nColIdx = 1;
|
pRsRcpReviewInfo->SetRcpUserAFMRecipeInfoCount(m_nAFMCount);
|
|
for(i = 0; i < m_nAFMCount; i++)
|
{
|
CRcpAFMRecipeInfo* pRcpAFMRecipeInfo = pRsRcpReviewInfo->GetRcpUserAFMRecipeInfo(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++;
|
}
|
|
//½ºÄÉÁì
|
TRACE(_T("[A2E]Apply 5\n"));
|
|
CRcpSchedulingInfo* pScheduleInfo = pRsRcpReviewInfo->GetRcpSchedulingInfo();
|
if (pScheduleInfo == NULL) return;
|
// schedule
|
nRowIdx = 1;
|
nColIdx = 0;
|
pCellCheck = (CGridCellCheck*)m_ctrlGridScheduleInfo.GetCell(nRowIdx, nColIdx++);
|
if(pCellCheck)
|
pScheduleInfo->SetTacTimeFree(pCellCheck->GetCheck());
|
|
strItemText = m_ctrlGridScheduleInfo.GetItemText(nRowIdx, nColIdx++);
|
pScheduleInfo->SetMaxPadPointCount(_ttoi(strItemText));
|
|
//strItemText = m_ctrlGridScheduleInfo.GetItemText(nRowIdx, nColIdx++);
|
//pScheduleInfo->SetTacTime(_tcstod(strItemText, NULL));
|
|
strItemText = m_ctrlGridScheduleInfo.GetItemText(nRowIdx, nColIdx++);
|
pScheduleInfo->SetMaxPointCount(_ttoi(strItemText));
|
|
strItemText = m_ctrlGridScheduleInfo.GetItemText(nRowIdx, nColIdx++);
|
pScheduleInfo->SetMaxWsiPointCount(_ttoi(strItemText));
|
|
//pScheduleInfo->SetSingleGantryPath(m_EditControl_GantryPathUse);
|
|
pScheduleInfo->SetSingleGantryPath(m_nradioGantryMode);
|
|
pCellCheck = (CGridCellCheck*)m_ctrlGridScheduleInfo.GetCell(nRowIdx, nColIdx++);
|
if(pCellCheck)
|
pScheduleInfo->SetShortestPath(pCellCheck->GetCheck());
|
|
// range point count
|
nRowIdx = 1;
|
nColIdx = 0;
|
pCellCheck = (CGridCellCheck*)m_ctrlGridScheduleRangeCntInfo.GetCell(nRowIdx, nColIdx++);
|
if(pCellCheck)
|
pScheduleInfo->SetUseRangeCntInfo(pCellCheck->GetCheck());
|
|
strItemText = m_ctrlGridScheduleRangeCntInfo.GetItemText(nRowIdx, nColIdx++);
|
pScheduleInfo->SetRangePointCount(Range_Left, _ttoi(strItemText));
|
|
strItemText = m_ctrlGridScheduleRangeCntInfo.GetItemText(nRowIdx, nColIdx++);
|
pScheduleInfo->SetRangePointCount(Range_Middle, _ttoi(strItemText));
|
|
strItemText = m_ctrlGridScheduleRangeCntInfo.GetItemText(nRowIdx, nColIdx++);
|
pScheduleInfo->SetRangePointCount(Range_Right, _ttoi(strItemText));
|
|
//pScheduleInfo->SetSingleGantryPath(m_EditControl_GantryPathUse);
|
pScheduleInfo->SetSingleGantryPath(m_nradioGantryMode);
|
|
//»ç¿ëÀÚ °áÇÔ
|
nRowIdx = 1;
|
pRsRcpReviewInfo->SetRcpUserDefectInfoCount(m_nUserDefectCount);
|
|
for(i = 0; i < m_nUserDefectCount; i++)
|
{
|
nColIdx = 1;
|
CRcpUserDefectInfo* pRcpUserDefectInfo = pRsRcpReviewInfo->GetRcpUserDefectInfo(i);
|
if(pRcpUserDefectInfo == NULL) continue;
|
|
strItemText = m_ctrlGridUserDefectInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpUserDefectInfo->m_dPosX = _tcstod(strItemText, NULL);
|
strItemText = m_ctrlGridUserDefectInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpUserDefectInfo->m_dPosY = _tcstod(strItemText, NULL);
|
|
|
pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.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)
|
{
|
pRsRcpReviewInfo->GetRcpUserDefectInfo(i)->m_nCellSide = j;
|
break;
|
}
|
}
|
strItemTextTemp = strItemText;
|
}
|
|
pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.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)
|
{
|
pRsRcpReviewInfo->GetRcpUserDefectInfo(i)->m_nInspectionMode = j;
|
break;
|
}
|
}
|
strItemTextTemp = strItemText;
|
}
|
|
strItemText = m_ctrlGridUserDefectInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpUserDefectInfo->m_strCellId = strItemText;
|
|
strItemText = m_ctrlGridUserDefectInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpUserDefectInfo->m_strCellId2 = strItemText;
|
|
strItemText = m_ctrlGridUserDefectInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpUserDefectInfo->m_nReflowCellIndex = _ttoi(strItemText);
|
|
nRowIdx++;
|
}
|
|
nRowIdx = 1;
|
pRsRcpReviewInfo->SetRcpReflowParameterCount(REFLOW_PARAMETER_GRID_ROW_COUNT);
|
for (int i=0; i < REFLOW_PARAMETER_GRID_ROW_COUNT; i++)
|
{
|
nColIdx = 1;
|
|
CRcpReflowParameter* pRcpReflowParameter = pRsRcpReviewInfo->GetRcpReflowParameter(i);
|
if (pRcpReflowParameter == NULL) continue;
|
|
strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++);
|
pRcpReflowParameter->m_nAPixel =_ttoi(strItemText);
|
|
strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++);
|
pRcpReflowParameter->m_nBPixel = _ttoi(strItemText);
|
|
strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++);
|
pRcpReflowParameter->m_nCPixel =_ttoi(strItemText);
|
|
strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++);
|
pRcpReflowParameter->m_nDPixel = _ttoi(strItemText);
|
//
|
// strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++);
|
// pRcpReflowParameter->m_nDam1 =_ttoi(strItemText);
|
//
|
// strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++);
|
// pRcpReflowParameter->m_nBaseTh = _ttoi(strItemText);
|
|
strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++);
|
pRcpReflowParameter->m_nDam1Th =_ttoi(strItemText);
|
|
strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++);
|
pRcpReflowParameter->m_nDam2Th =_ttoi(strItemText);
|
|
strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++);
|
pRcpReflowParameter->m_nDam3Th =_ttoi(strItemText);
|
|
strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++);
|
pRcpReflowParameter->m_nDam4Th =_ttoi(strItemText);
|
|
strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++);
|
pRcpReflowParameter->m_strMasterFileName = strItemText;
|
|
pRcpReflowParameter->m_nPixelScale = m_nReflowPixelScale;
|
|
nRowIdx++;
|
}
|
|
|
|
|
|
pDlg->UpdateTabDialogData();
|
}
|
|
void CDlgCommon::OnGlassSlotClick(UINT nID)
|
{
|
int nIdx, nPlanCount;
|
CRcpPlanInfo rcpPlanInfo;
|
CRcp_RsReviewManager* pRcpRsReviewManager = NULL;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
if(pDlg == NULL) return;
|
|
nIdx = nID - IDC_STATIC_GLASS_SLOT_01;
|
if(nIdx >= TOTAL_GLASS_SLOT_COUNT) return;
|
if(m_nSelectPlanIdx < 0)
|
{
|
AfxMessageBox(_T("Please Select Plan"));//_T("Ç÷£À» ¼±ÅÃÇϼ¼¿ä"));
|
return;
|
}
|
|
pRcpRsReviewManager = pDlg->GetRsReviewManager();
|
if(pRcpRsReviewManager == NULL) return;
|
|
nPlanCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfoCount();
|
|
if(m_nSelectPlanIdx < nPlanCount)
|
{
|
CRcpPlanInfo* pRcpPlanInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo(m_nSelectPlanIdx);
|
if(pRcpPlanInfo == NULL) return;
|
|
if(pRcpPlanInfo->m_bSelectSlot[nIdx])
|
{
|
m_ctrlStaticGlassSlot[nIdx]->SetBackground(RGB(240,240,240));
|
}
|
else
|
{
|
m_ctrlStaticGlassSlot[nIdx]->SetBackground(RGB(0,255,0));
|
}
|
|
pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo(m_nSelectPlanIdx)->m_bSelectSlot[nIdx] = !rcpPlanInfo.m_bSelectSlot[nIdx];
|
}
|
else
|
{
|
|
}
|
}
|
|
void CDlgCommon::InitPlanInfoGridControl()
|
{
|
int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols, nMargin, nDataColumnWidth;
|
CString strTemp;
|
CRect rect;
|
|
nRows = m_nPlanCount + 1;
|
nCols = PLAN_INFO_GRID_COL_COUNT;
|
nFixRows = 1;
|
nFixCols = 1;
|
nRowIdx = 0;
|
nColIdx = 0;
|
|
m_ctrlGridPlanInfo.GetWindowRect(&rect);
|
m_ctrlGridPlanInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0));
|
m_ctrlGridPlanInfo.SetRowCount(nRows);
|
m_ctrlGridPlanInfo.SetColumnCount(nCols);
|
m_ctrlGridPlanInfo.SetFixedRowCount(nFixRows);
|
m_ctrlGridPlanInfo.SetFixedColumnCount(nFixCols);
|
|
GV_ITEM Item;
|
|
Item.mask = GVIF_TEXT;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Index"));//_T("À妽º"));
|
Item.strText = strTemp;
|
m_ctrlGridPlanInfo.SetItem(&Item);
|
m_ctrlGridPlanInfo.SetColumnWidth(nColIdx++, 50);
|
|
nMargin = 22;
|
nDataColumnWidth = rect.Width() - 50 - nMargin;
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("Motion Plan"));//_T("µ¿ÀÛ Ç÷£"));
|
Item.strText = strTemp;
|
m_ctrlGridPlanInfo.SetItem(&Item);
|
m_ctrlGridPlanInfo.SetColumnWidth(nColIdx++, nDataColumnWidth);
|
}
|
|
void CDlgCommon::FillPlanInfo()
|
{
|
int i, nRowIdx, nColIdx, nPlanCount;
|
CString strItemText;
|
CRcp_RsReviewManager* pRcpRsReviewManager = NULL;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
if(pDlg == NULL) return;
|
|
pRcpRsReviewManager = pDlg->GetRsReviewManager();
|
if(pRcpRsReviewManager == NULL) return;
|
|
nPlanCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfoCount();
|
|
if(nPlanCount >= 0)
|
{
|
CGridCellCombo* pCellCombo = NULL;
|
CStringArray strArrayOption;
|
|
nRowIdx = 1;
|
m_nPlanCount = nPlanCount;
|
|
UpdateData(FALSE);
|
OnEnChangeEditRcpReviewPlanCount();
|
|
for(i = 0; i < nPlanCount; i++)
|
{
|
nColIdx = 1;
|
CRcpPlanInfo* pRcpPlanInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo(i);
|
if(pRcpPlanInfo == NULL) continue;
|
|
pCellCombo = (CGridCellCombo*)m_ctrlGridPlanInfo.GetCell(nRowIdx, nColIdx);
|
|
if(pCellCombo)
|
{
|
strArrayOption.RemoveAll();
|
pCellCombo->GetOptions(strArrayOption);
|
|
if(strArrayOption.GetSize() > 0 && pRcpPlanInfo->m_nReviewType > -1)
|
{
|
strItemText = strArrayOption.GetAt(pRcpPlanInfo->m_nReviewType);
|
m_ctrlGridPlanInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
}
|
}
|
|
nRowIdx++;
|
}
|
}
|
|
m_ctrlGridPlanInfo.Invalidate(FALSE);
|
}
|
|
void CDlgCommon::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; nGantryIdx<nGantryCount; nGantryIdx++)
|
{
|
const CGantryInfo *pGantryInfo = pSystemInfo->GetGantryInfo(nGantryIdx);
|
if (pGantryInfo==NULL) continue;
|
|
int nHeaderCount = pGantryInfo->GetHeaderInfoCount();
|
for (int nHeaderIdx=0; nHeaderIdx<nHeaderCount; nHeaderIdx++)
|
{
|
const CHeaderInfo *pHeaderInfo = pGantryInfo->GetHeaderInfo(nHeaderIdx);
|
if ( pHeaderInfo->m_nModuleType )
|
{
|
nLightCount++;
|
}
|
}
|
}
|
|
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 CDlgCommon::FillLightInfoInfo()
|
{
|
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;
|
|
m_ctrlAutoLight.SetCheck(pRcpRsReviewManager->GetRsRcpReviewInfo()->GetAutoLight());
|
|
nLightCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpUserLightInfoCount();
|
|
nColIdx = 1;
|
for(i = 0; i < nLightCount; i++)
|
{
|
nRowIdx = 1;
|
// [2016:11:2]-[WEZASW] : GetRcpLightInfo(i) -> GetRcpUserLightInfo(i)
|
CRcpLightInfo* pRcpLightInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpUserLightInfo(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 CDlgCommon::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; nHeaderIdx<nHeaderCount; nHeaderIdx++)
|
{
|
const CHeaderInfo *pHeaderInfo = pGantryInfo->GetHeaderInfo(nHeaderIdx);
|
if (pHeaderInfo==NULL) continue;
|
nAFMCount += pHeaderInfo->GetAFMInfoCount();
|
|
//[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 ¹èÀ² Ç¥½Ã ÀÌ»ó.
|
// 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 CDlgCommon::FillAFMRecipeInfo()
|
{
|
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;
|
|
nAFMCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpAFMRecipeInfoCount();
|
|
nRowIdx = 1;
|
nColIdx = 1;
|
for(i = 0; i < nAFMCount; i++)
|
{
|
// [2016:11:2]-[WEZASW] : GetRcpAFMRecipeInfo(i) -> GetRcpUserAFMRecipeInfo(i)
|
CRcpAFMRecipeInfo* pRcpAFMRecipeInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpUserAFMRecipeInfo(i);
|
if(pRcpAFMRecipeInfo == NULL) continue;
|
|
strItemText.Format(_T("%d"), pRcpAFMRecipeInfo->m_nRecipeIndex);
|
m_ctrlGridAFMRecipeInfo.SetItemText(nRowIdx, 1, 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++)
|
{
|
// [2016:11:2]-[WEZASW] : GetRcpAFMRecipeInfo(i) -> GetRcpUserAFMRecipeInfo(i)
|
CRcpAFMRecipeInfo* pRcpAFMRecipeInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpUserAFMRecipeInfo(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 CDlgCommon::InitScheduleGridControl()
|
{
|
int nRowIdx, nColIdx, nRows, nCols, nFixRows, nDataColumnWidth, nMargin;
|
CString strTemp;
|
CRect rect;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
|
if(pDlg)
|
{
|
nRows = SCHEDULE_INFO_GRID_ROW_COUNT;
|
nCols = SCHEDULE_INFO_GRID_COL_COUNT;
|
nFixRows = 1;
|
nRowIdx = 0;
|
nColIdx = 0;
|
|
m_ctrlGridScheduleInfo.GetWindowRect(&rect);
|
m_ctrlGridScheduleInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0));
|
m_ctrlGridScheduleInfo.SetRowCount(nRows);
|
m_ctrlGridScheduleInfo.SetColumnCount(nCols);
|
m_ctrlGridScheduleInfo.SetFixedRowCount(nFixRows);
|
|
GV_ITEM Item;
|
|
nMargin = 5;
|
nDataColumnWidth = (rect.Width() - nMargin) / (SCHEDULE_INFO_GRID_COL_COUNT);
|
|
Item.mask = GVIF_TEXT;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Total Review"));//_T("Àüü ¸®ºä"));
|
Item.strText = strTemp;
|
m_ctrlGridScheduleInfo.SetItem(&Item);
|
m_ctrlGridScheduleInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("PAD Review (ea)"));//_T("PAD ¸®ºä ¼ö"));
|
Item.strText = strTemp;
|
m_ctrlGridScheduleInfo.SetItem(&Item);
|
m_ctrlGridScheduleInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Review (ea)"));//_T("¸®ºä ¼ö"));
|
Item.strText = strTemp;
|
m_ctrlGridScheduleInfo.SetItem(&Item);
|
m_ctrlGridScheduleInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("WSI (ea)"));//_T("WSI ¼ö"));
|
Item.strText = strTemp;
|
m_ctrlGridScheduleInfo.SetItem(&Item);
|
m_ctrlGridScheduleInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Use Shortest"));//_T("Ãִܰæ·Î"));
|
Item.strText = strTemp;
|
m_ctrlGridScheduleInfo.SetItem(&Item);
|
m_ctrlGridScheduleInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
//Àüü ¸®ºä
|
nRowIdx = 1;
|
nColIdx = 0;
|
Item.strText = _T("");
|
m_ctrlGridScheduleInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCheck));
|
m_ctrlGridScheduleInfo.SetItemState(nRowIdx, nColIdx, m_ctrlGridScheduleInfo.GetItemState(nRowIdx, nColIdx) | GVIS_READONLY);
|
|
nColIdx = 4;
|
Item.strText = _T("");
|
m_ctrlGridScheduleInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCheck));
|
m_ctrlGridScheduleInfo.SetItemState(nRowIdx, nColIdx, m_ctrlGridScheduleInfo.GetItemState(nRowIdx, nColIdx) | GVIS_READONLY);
|
}
|
}
|
|
void CDlgCommon::FillScheduleInfo()
|
{
|
int nRowIdx, nColIdx;
|
CString strItemText;
|
const 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;
|
|
const CRcpSchedulingInfo* pScheduleInfo = pRsRcpReviewInfo->GetRcpSchedulingInfo();
|
if (pScheduleInfo == NULL) return;
|
|
nRowIdx = 1;
|
nColIdx = 0;
|
CGridCellCheck* pCellCheck = NULL;
|
|
//Àüü ¸®ºä
|
pCellCheck = (CGridCellCheck*)m_ctrlGridScheduleInfo.GetCell(nRowIdx, nColIdx++);
|
if(pCellCheck)
|
pCellCheck->SetCheck(pScheduleInfo->GetTacTimeFree());
|
|
// PAD Review ÃÖ´ë Æ÷ÀÎÆ® ¼ö
|
strItemText.Format(_T("%d"), pScheduleInfo->GetMaxPadPointCount());
|
m_ctrlGridScheduleInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
////ÅßÀÓ
|
//strItemText.Format(_T("%.3lf"), pScheduleInfo->GetTacTime());
|
//m_ctrlGridScheduleInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
// Review ÃÖ´ë Æ÷ÀÎÆ® ¼ö
|
strItemText.Format(_T("%d"), pScheduleInfo->GetMaxPointCount());
|
m_ctrlGridScheduleInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
// WSI ÃÖ´ë Æ÷ÀÎÆ® ¼ö
|
strItemText.Format(_T("%d"), pScheduleInfo->GetMaxWsiPointCount());
|
m_ctrlGridScheduleInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
// Ãִܰæ·Î »ç¿ë
|
pCellCheck = (CGridCellCheck*)m_ctrlGridScheduleInfo.GetCell(nRowIdx, nColIdx++);
|
if(pCellCheck)
|
pCellCheck->SetCheck(pScheduleInfo->GetShortestPath());
|
|
|
strItemText.Format(_T("%d"), pScheduleInfo->GetMaxPointCount());
|
m_ctrlGridScheduleInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
//m_EditControl_GantryPathUse = pRsRcpReviewInfo->GetRcpSchedulingInfo()->GetSingleGantryPath();
|
m_nradioGantryMode = pRsRcpReviewInfo->GetRcpSchedulingInfo()->GetSingleGantryPath();
|
|
m_ctrlGridScheduleInfo.Invalidate(FALSE);
|
}
|
|
void CDlgCommon::InitScheduleRangeCntGridControl()
|
{
|
int nRowIdx, nColIdx, nRows, nCols, nFixRows, nDataColumnWidth, nMargin;
|
CString strTemp;
|
CRect rect;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
|
if(pDlg)
|
{
|
nRows = SCHEDULE_RANGE_CNT_INFO_GRID_ROW_COUNT;
|
nCols = SCHEDULE_RANGE_CNT_INFO_GRID_COL_COUNT;
|
nFixRows = 1;
|
nRowIdx = 0;
|
nColIdx = 0;
|
|
m_ctrlGridScheduleRangeCntInfo.GetWindowRect(&rect);
|
m_ctrlGridScheduleRangeCntInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0));
|
m_ctrlGridScheduleRangeCntInfo.SetRowCount(nRows);
|
m_ctrlGridScheduleRangeCntInfo.SetColumnCount(nCols);
|
m_ctrlGridScheduleRangeCntInfo.SetFixedRowCount(nFixRows);
|
|
GV_ITEM Item;
|
|
nMargin = 5;
|
nDataColumnWidth = (rect.Width() - nMargin) / (SCHEDULE_RANGE_CNT_INFO_GRID_COL_COUNT);
|
|
Item.mask = GVIF_TEXT;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Use Range"));// Range »ç¿ë
|
Item.strText = strTemp;
|
m_ctrlGridScheduleRangeCntInfo.SetItem(&Item);
|
m_ctrlGridScheduleRangeCntInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Left(ea)"));// left count
|
Item.strText = strTemp;
|
m_ctrlGridScheduleRangeCntInfo.SetItem(&Item);
|
m_ctrlGridScheduleRangeCntInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Middle(ea)"));// middle count
|
Item.strText = strTemp;
|
m_ctrlGridScheduleRangeCntInfo.SetItem(&Item);
|
m_ctrlGridScheduleRangeCntInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Right(ea)"));// right count
|
Item.strText = strTemp;
|
m_ctrlGridScheduleRangeCntInfo.SetItem(&Item);
|
m_ctrlGridScheduleRangeCntInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
// check type
|
nRowIdx = 1;
|
nColIdx = 0;
|
Item.strText = _T("");
|
m_ctrlGridScheduleRangeCntInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCheck));
|
m_ctrlGridScheduleRangeCntInfo.SetItemState(nRowIdx, nColIdx, m_ctrlGridScheduleInfo.GetItemState(nRowIdx, nColIdx) | GVIS_READONLY);
|
}
|
}
|
|
void CDlgCommon::FillScheduleRangeCntInfo()
|
{
|
int nRowIdx, nColIdx;
|
CString strItemText;
|
const 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;
|
|
const CRcpSchedulingInfo* pScheduleInfo = pRsRcpReviewInfo->GetRcpSchedulingInfo();
|
if (pScheduleInfo == NULL) return;
|
|
nRowIdx = 1;
|
nColIdx = 0;
|
CGridCellCheck* pCellCheck = NULL;
|
|
// use
|
pCellCheck = (CGridCellCheck*)m_ctrlGridScheduleRangeCntInfo.GetCell(nRowIdx, nColIdx++);
|
if(pCellCheck)
|
pCellCheck->SetCheck(pScheduleInfo->GetUseRangeCntInfo());
|
|
// left range point count
|
strItemText.Format(_T("%d"), pScheduleInfo->GetRangePointCount(Range_Left));
|
m_ctrlGridScheduleRangeCntInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
// middle range point count
|
strItemText.Format(_T("%d"), pScheduleInfo->GetRangePointCount(Range_Middle));
|
m_ctrlGridScheduleRangeCntInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
// right range point count
|
strItemText.Format(_T("%d"), pScheduleInfo->GetRangePointCount(Range_Right));
|
m_ctrlGridScheduleRangeCntInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
m_ctrlGridScheduleRangeCntInfo.Invalidate(FALSE);
|
}
|
|
void CDlgCommon::InitReflowParameterGridControl()
|
{
|
int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols, nMargin, nDataColumnWidth;
|
CString strTemp;
|
CRect rect;
|
|
nRows = REFLOW_PARAMETER_GRID_ROW_COUNT + 1;
|
nCols = REFLOW_PARAMETER_GRID_COL_COUNT;
|
nFixRows = 1;
|
nFixCols = 1;
|
nRowIdx = 0;
|
nColIdx = 0;
|
|
m_ctrlGridReflowParameter.GetWindowRect(&rect);
|
m_ctrlGridReflowParameter.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0));
|
m_ctrlGridReflowParameter.SetRowCount(nRows);
|
m_ctrlGridReflowParameter.SetColumnCount(nCols);
|
m_ctrlGridReflowParameter.SetFixedRowCount(nFixRows);
|
m_ctrlGridReflowParameter.SetFixedColumnCount(nFixCols);
|
|
GV_ITEM Item;
|
|
Item.mask = GVIF_TEXT;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("IDX"));//_T("À妽º"));
|
Item.strText = strTemp;
|
m_ctrlGridReflowParameter.SetItem(&Item);
|
m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 45);
|
|
nMargin = 3;//22;
|
// nDataColumnWidth = (rect.Width() - 60 - nMargin) / (USER_DEFECT_INFO_GRID_COL_COUNT - 1);
|
nDataColumnWidth = (rect.Width() - 60 - nMargin - 30*6) / (REFLOW_PARAMETER_GRID_COL_COUNT - 6);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("A"));//_T("X À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridReflowParameter.SetItem(&Item);
|
m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 28);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("B"));//_T("Y À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridReflowParameter.SetItem(&Item);
|
m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 28);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("C"));//_T("Y À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridReflowParameter.SetItem(&Item);
|
m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 28);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("D"));//_T("Y À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridReflowParameter.SetItem(&Item);
|
m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 28);
|
|
// Item.col = nColIdx;
|
// strTemp.Format(_T("E"));//_T("Y À§Ä¡"));
|
// Item.strText = strTemp;
|
// m_ctrlGridReflowParameter.SetItem(&Item);
|
// m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 30);
|
//
|
// Item.col = nColIdx;
|
// strTemp.Format(_T("Base Th"));//_T("X À§Ä¡"));
|
// Item.strText = strTemp;
|
// m_ctrlGridReflowParameter.SetItem(&Item);
|
// m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, nDataColumnWidth);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("Th1"));//_T("X À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridReflowParameter.SetItem(&Item);
|
m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 30);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("Th2"));//_T("X À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridReflowParameter.SetItem(&Item);
|
m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 30);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("Th3"));//_T("X À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridReflowParameter.SetItem(&Item);
|
m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 30);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("Th4"));//_T("X À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridReflowParameter.SetItem(&Item);
|
m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 30);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("Name"));//_T("X À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridReflowParameter.SetItem(&Item);
|
m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, nDataColumnWidth+18);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("Master"));//_T("X À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridReflowParameter.SetItem(&Item);
|
m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, nDataColumnWidth+27);
|
|
|
Item.col = 0;
|
Item.row++;
|
strTemp.Format(_T("TOP"));//_T("X À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridReflowParameter.SetItem(&Item);
|
|
nRowIdx = 1;
|
nColIdx = 10;
|
m_ctrlGridReflowParameter.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellButton));
|
CGridCellButton *pCellButton1 = (CGridCellButton*)m_ctrlGridReflowParameter.GetCell(nRowIdx, nColIdx);
|
pCellButton1->SetText(_T("Browser"));
|
|
Item.col = 0;
|
Item.row++;
|
strTemp.Format(_T("LEFT"));//_T("X À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridReflowParameter.SetItem(&Item);
|
|
nRowIdx = 2;
|
nColIdx = 10;
|
m_ctrlGridReflowParameter.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellButton));
|
CGridCellButton *pCellButton2 = (CGridCellButton*)m_ctrlGridReflowParameter.GetCell(nRowIdx, nColIdx);
|
pCellButton2->SetText(_T("Browser"));
|
|
Item.col = 0;
|
Item.row++;
|
strTemp.Format(_T("RIGHT"));//_T("X À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridReflowParameter.SetItem(&Item);
|
|
nRowIdx = 3;
|
nColIdx = 10;
|
m_ctrlGridReflowParameter.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellButton));
|
CGridCellButton *pCellButton3 = (CGridCellButton*)m_ctrlGridReflowParameter.GetCell(nRowIdx, nColIdx);
|
pCellButton3->SetText(_T("Browser"));
|
}
|
|
void CDlgCommon::FillReflowParameter()
|
{
|
int i, nRowIdx, nColIdx;
|
CString strItemText;
|
CRcp_RsReviewManager* pRcpRsReviewManager = NULL;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
if(pDlg == NULL) return;
|
|
pRcpRsReviewManager = pDlg->GetRsReviewManager();
|
if(pRcpRsReviewManager == NULL) return;
|
nRowIdx = 1;
|
for(i = 0; i < REFLOW_PARAMETER_GRID_ROW_COUNT; i++)
|
{
|
nColIdx = 1;
|
|
const CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo();
|
if (pRsRcpReviewInfo == NULL) continue;
|
const CRcpReflowParameter* pRcpReflowParameter = pRsRcpReviewInfo->GetRcpReflowParameter(i);
|
if (pRcpReflowParameter == NULL) continue;
|
|
strItemText.Format(_T("%d"), pRcpReflowParameter->m_nAPixel);
|
m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText.Format(_T("%d"), pRcpReflowParameter->m_nBPixel);
|
m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText.Format(_T("%d"), pRcpReflowParameter->m_nCPixel);
|
m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText.Format(_T("%d"), pRcpReflowParameter->m_nDPixel);
|
m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
// strItemText.Format(_T("%d"), pRcpReflowParameter->m_nDam1);
|
// m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText);
|
//
|
//
|
// strItemText.Format(_T("%d"), pRcpReflowParameter->m_nBaseTh);
|
// m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText.Format(_T("%d"), pRcpReflowParameter->m_nDam1Th);
|
m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText.Format(_T("%d"), pRcpReflowParameter->m_nDam2Th);
|
m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText.Format(_T("%d"), pRcpReflowParameter->m_nDam3Th);
|
m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText.Format(_T("%d"), pRcpReflowParameter->m_nDam4Th);
|
m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText = pRcpReflowParameter->m_strMasterFileName;
|
m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
|
m_nReflowPixelScale = pRcpReflowParameter->m_nPixelScale;
|
|
nRowIdx++;
|
}
|
|
m_ctrlGridReflowParameter.Invalidate(FALSE);
|
}
|
void CDlgCommon::InitUserDefectInfoGridControl()
|
{
|
int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols, nMargin, nDataColumnWidth;
|
CString strTemp;
|
CRect rect;
|
|
nRows = m_nUserDefectCount + 1;
|
nCols = USER_DEFECT_INFO_GRID_COL_COUNT;
|
nFixRows = 1;
|
nFixCols = 1;
|
nRowIdx = 0;
|
nColIdx = 0;
|
|
m_ctrlGridUserDefectInfo.GetWindowRect(&rect);
|
m_ctrlGridUserDefectInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0));
|
m_ctrlGridUserDefectInfo.SetRowCount(nRows);
|
m_ctrlGridUserDefectInfo.SetColumnCount(nCols);
|
m_ctrlGridUserDefectInfo.SetFixedRowCount(nFixRows);
|
m_ctrlGridUserDefectInfo.SetFixedColumnCount(nFixCols);
|
|
GV_ITEM Item;
|
|
Item.mask = GVIF_TEXT;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Idx"));//_T("À妽º"));
|
Item.strText = strTemp;
|
m_ctrlGridUserDefectInfo.SetItem(&Item);
|
m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 30);
|
|
nMargin = 22;
|
nDataColumnWidth = (rect.Width() - 40 - 180 - nMargin) / (USER_DEFECT_INFO_GRID_COL_COUNT - 4);
|
// nDataColumnWidth = (rect.Width() - 40 - 60 - 60 - 60 - nMargin) / (USER_DEFECT_INFO_GRID_COL_COUNT - 4);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("X(mm)"));//_T("X À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridUserDefectInfo.SetItem(&Item);
|
m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, nDataColumnWidth+10);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("Y(mm)"));//_T("Y À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridUserDefectInfo.SetItem(&Item);
|
m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, nDataColumnWidth+10);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("Option"));//_T("Cell Side"));
|
Item.strText = strTemp;
|
m_ctrlGridUserDefectInfo.SetItem(&Item);
|
m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 50);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("Mode"));//_T("Cell Side"));
|
Item.strText = strTemp;
|
m_ctrlGridUserDefectInfo.SetItem(&Item);
|
m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 60);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("A CellID"));//_T("Cell Side"));
|
Item.strText = strTemp;
|
m_ctrlGridUserDefectInfo.SetItem(&Item);
|
m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 55);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("B CellID"));//_T("Cell Side"));
|
Item.strText = strTemp;
|
m_ctrlGridUserDefectInfo.SetItem(&Item);
|
m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 55);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("CellIdx"));//_T("Cell Side"));
|
Item.strText = strTemp;
|
m_ctrlGridUserDefectInfo.SetItem(&Item);
|
m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 40);
|
|
/* Item.col = nColIdx;
|
strTemp.Format(_T("Between-BaseLine"));//_T("Y À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridUserDefectInfo.SetItem(&Item);
|
m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 60);
|
|
Item.col = nColIdx;
|
strTemp.Format(_T("BaseLine-Dam2"));//_T("Y À§Ä¡"));
|
Item.strText = strTemp;
|
m_ctrlGridUserDefectInfo.SetItem(&Item);
|
m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 60);*/
|
}
|
|
void CDlgCommon::FillUserDefectInfo()
|
{
|
int i, nRowIdx, nColIdx, nUserDefectCount;
|
CString strItemText;
|
CRcp_RsReviewManager* pRcpRsReviewManager = NULL;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
if(pDlg == NULL) return;
|
|
pRcpRsReviewManager = pDlg->GetRsReviewManager();
|
if(pRcpRsReviewManager == NULL) return;
|
|
nUserDefectCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpUserDefectInfoCount();
|
|
if(nUserDefectCount > 0)
|
{
|
nRowIdx = 1;
|
m_nUserDefectCount = nUserDefectCount;
|
|
UpdateData(FALSE);
|
OnEnChangeEditRcpReviewUserDefectCount();
|
|
for(i = 0; i < nUserDefectCount; i++)
|
{
|
nColIdx = 1;
|
CRcpUserDefectInfo* pRcpUserDefectInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpUserDefectInfo(i);
|
if(pRcpUserDefectInfo == NULL) continue;
|
|
strItemText.Format(_T("%.03lf"), pRcpUserDefectInfo->m_dPosX);
|
m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText.Format(_T("%.03lf"), pRcpUserDefectInfo->m_dPosY);
|
m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
CGridCellCombo* pCellCombo = NULL;
|
CStringArray strArrayOption;
|
|
pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.GetCell(nRowIdx, nColIdx);
|
if(pCellCombo)
|
{
|
strArrayOption.RemoveAll();
|
pCellCombo->GetOptions(strArrayOption);
|
|
if(strArrayOption.GetSize() > 0 && pRcpUserDefectInfo->m_nCellSide > -1)
|
{
|
strItemText = strArrayOption.GetAt(pRcpUserDefectInfo->m_nCellSide);
|
m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
}
|
}
|
|
pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.GetCell(nRowIdx, nColIdx);
|
if(pCellCombo)
|
{
|
strArrayOption.RemoveAll();
|
pCellCombo->GetOptions(strArrayOption);
|
|
if(strArrayOption.GetSize() > 0 && pRcpUserDefectInfo->m_nInspectionMode > -1)
|
{
|
strItemText = strArrayOption.GetAt(pRcpUserDefectInfo->m_nInspectionMode);
|
m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
}
|
}
|
|
strItemText = pRcpUserDefectInfo->m_strCellId;
|
m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText = pRcpUserDefectInfo->m_strCellId2;
|
m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText.Format(_T("%d"), pRcpUserDefectInfo->m_nReflowCellIndex);
|
m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
// strItemText.Format(_T("%d"), pRcpUserDefectInfo->m_nBaseline);
|
// m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
// strItemText.Format(_T("%d"), pRcpUserDefectInfo->m_nBaseDam2);
|
// m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
nRowIdx++;
|
}
|
}
|
else
|
{
|
m_nUserDefectCount = 0;
|
UpdateData(FALSE);
|
OnEnChangeEditRcpReviewUserDefectCount();
|
}
|
|
m_ctrlGridUserDefectInfo.Invalidate(FALSE);
|
}
|
|
void CDlgCommon::UpdateDialogData()
|
{
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
|
if(pDlg)
|
{
|
CRcp_RsReviewManager* pRcpRsReviewManager = NULL;
|
pRcpRsReviewManager = pDlg->GetRsReviewManager();
|
|
if(pRcpRsReviewManager)
|
{
|
m_ctrlComboGlassType.SetCurSel(pRcpRsReviewManager->GetRsRcpReviewInfo()->m_nGlassTypeIdx);
|
}
|
m_ctrlComboGlassOrigin.SetCurSel(pRcpRsReviewManager->GetRsRcpReviewInfo()->m_nGlassOrigion);
|
}
|
|
FillPlanInfo();
|
FillLightInfoInfo();
|
FillAFMRecipeInfo();
|
FillScheduleInfo();
|
FillScheduleRangeCntInfo();
|
FillReflowParameter();
|
FillUserDefectInfo();
|
|
Invalidate(FALSE);
|
}
|
|
void CDlgCommon::OnEnChangeEditRcpReviewPlanCount()
|
{
|
UpdateData(TRUE);
|
|
int i, j, nRowIdx, nColIdx;
|
CString strTemp;
|
CRect rect;
|
m_ctrlGridPlanInfo.GetWindowRect(&rect);
|
m_ctrlGridPlanInfo.SetRowCount(m_nPlanCount + 1);
|
|
if(m_nPlanCount > 0)
|
{
|
GV_ITEM Item;
|
CStringArray strArrayOption;
|
CGridCellCombo* pCellCombo = NULL;
|
|
nRowIdx = 1;
|
nColIdx = 1;
|
|
for(i = 0; i < m_nPlanCount; i++)
|
{
|
//À妽º
|
nColIdx = 0;
|
Item.mask = GVIF_TEXT;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("%02d"), i);
|
Item.strText = strTemp;
|
m_ctrlGridPlanInfo.SetItem(&Item);
|
|
//¸®ºä ¹æ¹ý
|
nColIdx++;
|
strArrayOption.RemoveAll();
|
|
// [2017:1:25]-[WEZASW] : SystemMachine_B7E_WSI ¼³ºñ ºÐ¸®(WSI À¯/¹«)
|
|
for(j = 0; j < REVIEW_PLAN_TYPE_COUNT; j++)
|
{
|
switch(j)
|
{
|
case REVIEW_PLAN_DEFECT:
|
strTemp.Format(_T("Defect Review"));//_T("°áÇÔ ¸®ºä"));
|
strArrayOption.Add(strTemp);
|
break;
|
case REVIEW_PLAN_USER:
|
strTemp.Format(_T("User Review")); //_T("»ç¿ëÀÚ ¸®ºä"));
|
strArrayOption.Add(strTemp);
|
break;
|
case REVIEW_PLAN_WSI:
|
strTemp.Format(_T("WSI Measure")); //_T("WSI ÃøÁ¤"));
|
strArrayOption.Add(strTemp);
|
break;
|
case REVIEW_PLAN_REFLOW:
|
strTemp.Format(_T("Reflow Measure")); //_T("Reflow ÃøÁ¤"));
|
strArrayOption.Add(strTemp);
|
break;
|
case REVIEW_PLAN_MEASURE:
|
strTemp.Format(_T("CD Measure")); //_T("CD ÃøÁ¤"));
|
strArrayOption.Add(strTemp);
|
break;
|
|
case REVIEW_PLAN_WSI_REFLOW:
|
strTemp.Format(_T("WSI Reflow Measure")); //_T("WSI Reflow ÃøÁ¤"));
|
strArrayOption.Add(strTemp);
|
break;
|
|
case REVIEW_PLAN_WSI_USER:
|
strTemp.Format(_T("WSI User Measure")); //_T("WSI User ÃøÁ¤"));
|
strArrayOption.Add(strTemp);
|
break;
|
|
case REVIEW_PLAN_WSI_MultiShot:
|
strTemp.Format(_T("WSI Multi Shot")); //_T("WSI Multi Shot ÃøÁ¤"));
|
strArrayOption.Add(strTemp);
|
break;
|
|
default:
|
strTemp.Format(_T(""));
|
break;
|
}
|
}
|
m_ctrlGridPlanInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo));
|
pCellCombo = (CGridCellCombo*)m_ctrlGridPlanInfo.GetCell(nRowIdx, nColIdx);
|
pCellCombo->SetOptions(strArrayOption);
|
pCellCombo->SetStyle(CBS_DROPDOWN);
|
|
nRowIdx++;
|
}
|
}
|
}
|
|
void CDlgCommon::OnEnChangeEditRcpReviewUserDefectCount()
|
{
|
UpdateData(TRUE);
|
|
int i, nRowIdx, nColIdx;
|
CString strTemp;
|
CRect rect;
|
m_ctrlGridUserDefectInfo.GetWindowRect(&rect);
|
m_ctrlGridUserDefectInfo.SetRowCount(m_nUserDefectCount + 1);
|
|
CGridCellCombo* pCellCombo = NULL;
|
CStringArray strArrayOption;
|
|
if(m_nUserDefectCount > 0)
|
{
|
GV_ITEM Item;
|
nRowIdx = 1;
|
nColIdx = 1;
|
|
for(i = 0; i < m_nUserDefectCount; i++)
|
{
|
//À妽º
|
nColIdx = 0;
|
Item.mask = GVIF_TEXT;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("%02d"), i);
|
Item.strText = strTemp;
|
m_ctrlGridUserDefectInfo.SetItem(&Item);
|
|
strArrayOption.RemoveAll();
|
for(int j = 0; j < RECIPE_REFLOW_CELLSIDE_COUNT; j++)
|
{
|
strArrayOption.Add(strRecipeReflowCellside[j]);
|
}
|
nColIdx = 3;
|
m_ctrlGridUserDefectInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo));
|
pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.GetCell(nRowIdx, nColIdx);
|
if (pCellCombo)
|
{
|
pCellCombo->SetOptions(strArrayOption);
|
pCellCombo->SetStyle(CBS_DROPDOWN);
|
}
|
|
strArrayOption.RemoveAll();
|
for(int j = 0; j < RECIPE_INSPECTIONMODE_COUNT; j++)
|
{
|
strArrayOption.Add(strRecipeInspectionMode[j]);
|
}
|
nColIdx = 4;
|
m_ctrlGridUserDefectInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo));
|
pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.GetCell(nRowIdx, nColIdx);
|
if (pCellCombo)
|
{
|
pCellCombo->SetOptions(strArrayOption);
|
pCellCombo->SetStyle(CBS_DROPDOWN);
|
}
|
|
nRowIdx++;
|
}
|
}
|
}
|
|
void CDlgCommon::OnPlanInfoGridClick(NMHDR *pNotifyStruct, LRESULT* pResult)
|
{
|
int nIdx, nPlanIdx, nPlanCount;
|
CString strItemText;
|
CRcpPlanInfo rcpPlanInfo;
|
NM_GRIDVIEW* pItem = (NM_GRIDVIEW*) pNotifyStruct;
|
CRcp_RsReviewManager* pRcpRsReviewManager = NULL;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
if(pDlg == NULL) return;
|
|
nIdx = pItem->iRow - 1;
|
|
if(nIdx >= 0)
|
{
|
m_nSelectPlanIdx = nIdx;
|
|
pRcpRsReviewManager = pDlg->GetRsReviewManager();
|
if(pRcpRsReviewManager == NULL) return;
|
|
nPlanCount = (int)pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfoCount();
|
|
if(m_nPlanCount != nPlanCount)
|
{
|
pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpPlanInfoCount(m_nPlanCount);
|
|
for(nPlanIdx = 0; nPlanIdx < m_nPlanCount; nPlanIdx++)
|
{
|
//rcpPlanInfo.Reset();
|
pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo(nPlanIdx)->Reset();
|
//pRcpRsReviewManager->m_rsRcpReviewInfo.m_vecRcpPlanInfo.push_back(rcpPlanInfo);
|
}
|
}
|
UpdateSelectGlassSlot();
|
}
|
}
|
|
void CDlgCommon::UpdateSelectGlassSlot()
|
{
|
if(m_nSelectPlanIdx < 0) return;
|
|
int i;
|
CRcp_RsReviewManager* pRcpRsReviewManager = NULL;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
if(pDlg == NULL) return;
|
|
pRcpRsReviewManager = pDlg->GetRsReviewManager();
|
if(pRcpRsReviewManager == NULL) return;
|
|
CRcpPlanInfo* pRcpPlanInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo(m_nSelectPlanIdx);
|
|
for(i = 0; i < TOTAL_GLASS_SLOT_COUNT; i++)
|
{
|
if(pRcpPlanInfo->m_bSelectSlot[i])
|
{
|
m_ctrlStaticGlassSlot[i]->SetBackground(RGB(0,255,0));
|
}
|
else
|
{
|
m_ctrlStaticGlassSlot[i]->SetBackground(RGB(240,240,240));
|
}
|
}
|
}
|
|
void CDlgCommon::OnSelChange(NMHDR *pNotifyStruct, LRESULT* pResult)
|
{
|
TRACE( _T("_____________________________________\n"));
|
return;
|
int i, nRowIdx, nColIdx, nUserDefectCount;
|
CString strItemText;
|
CRcp_RsReviewManager* pRcpRsReviewManager = NULL;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
if(pDlg == NULL) return;
|
|
pRcpRsReviewManager = pDlg->GetRsReviewManager();
|
if(pRcpRsReviewManager == NULL) return;
|
|
nUserDefectCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpUserDefectInfoCount();
|
|
if(nUserDefectCount > 0)
|
{
|
nRowIdx = 1;
|
m_nUserDefectCount = nUserDefectCount;
|
|
UpdateData(FALSE);
|
for(i = 0; i < REFLOW_PARAMETER_GRID_ROW_COUNT; i++)
|
{
|
nColIdx = 1;
|
CRcpReflowParameter* pRcpReflowParameter = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpReflowParameter(i);
|
if(pRcpReflowParameter == NULL) continue;
|
|
strItemText.Format(_T("%d"), pRcpReflowParameter->m_nAPixel);
|
m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText.Format(_T("%d"), pRcpReflowParameter->m_nBPixel);
|
m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText);
|
}
|
}
|
|
}
|
|
void CDlgCommon::OnBnClickedButtonLoadMaster()
|
{
|
// TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
// Get image file name
|
LPCTSTR szFilter = _T("Image Files(*.BMP, *.GIF, *.JPG, *.PNG) | *.BMP;*.GIF;*.JPG;*.PNG | All Files(*.*)|*.*||");
|
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter);
|
if(IDOK != dlg.DoModal()) return;
|
CString sFilename = dlg.GetPathName();
|
|
if(!m_MasterDlg[0])
|
{
|
m_MasterDlg[0].LoadImage(sFilename);
|
m_MasterDlg[0].Create(IDD_DIALOG_REVIEW_RCP_REFLOW_MASTER_IMAGE, this);
|
m_MasterDlg[0].MoveWindow(0, 0, m_MasterDlg[0].ImageGetWidth(), m_MasterDlg[0].ImageGetHeight() + 50);
|
m_MasterDlg[0].ShowWindow(SW_SHOW);
|
}
|
else
|
{
|
m_MasterDlg[0].LoadImage(sFilename);
|
m_MasterDlg[0].MoveWindow(0, 0, m_MasterDlg[0].ImageGetWidth(), m_MasterDlg[0].ImageGetHeight() + 50);
|
m_MasterDlg[0].ShowWindow(SW_SHOW);
|
m_MasterDlg[0].Invalidate(TRUE);
|
}
|
// if(m_ImageDlg)
|
// {
|
// m_ImageDlg.SetMaster(m_MasterDlg.m_ImageBuffer, m_MasterDlg.ImageGetWidth(), m_MasterDlg.ImageGetHeight(), m_MasterDlg.ImageGetBPP()>>3);
|
// }
|
}
|
|
|
void CDlgCommon::OnClickRadioGantryMode(UINT ID)
|
{
|
return;
|
}
|
|
void CDlgCommon::OnSetMaster(BOOL bSetMaster, int dir, CPoint* reflowPoints)
|
{
|
CString strTemp;
|
if(bSetMaster) // Master Setting Complete
|
{ // ¶óÀÎ À§Ä¡ ÀúÀå ½Ã
|
for (int i = 0; i < 4; i ++)
|
{
|
if (dir == RECIPE_REFLOW_CELLSIDE_TOP)
|
{
|
strTemp.Format(_T("%d"), reflowPoints[i].y);
|
}
|
else
|
{
|
strTemp.Format(_T("%d"), reflowPoints[i].x);
|
}
|
m_ctrlGridReflowParameter.SetItemText(dir + 1, i+1, strTemp);
|
}
|
m_ctrlGridReflowParameter.SetItemText(dir + 1, 5, _T("100"));
|
m_ctrlGridReflowParameter.SetItemText(dir + 1, 6, _T("100"));
|
m_ctrlGridReflowParameter.SetItemText(dir + 1, 7, _T("100"));
|
m_ctrlGridReflowParameter.SetItemText(dir + 1, 8, _T("100"));
|
|
m_ctrlGridReflowParameter.Invalidate(TRUE);
|
}
|
else
|
{ // â ´ÝÀ» ¶§
|
;
|
}
|
}
|
|
|
void CDlgCommon::OnClickImageInfo(NMHDR *pNotifyStruct, LRESULT* pResult)
|
{
|
NM_GRIDVIEW* pItem = (NM_GRIDVIEW*) pNotifyStruct;
|
if (pItem==NULL) return;
|
|
if (pItem->iColumn!=10) return;
|
int nIdx = pItem->iRow;
|
|
|
if (nIdx<1 || nIdx>3) return;
|
|
CString szFilter = _T("Image Files(*.BMP, *.GIF, *.JPG, *.PNG) | *.BMP;*.GIF;*.JPG;*.PNG | All Files(*.*)|*.*||");
|
|
CString strPath;
|
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter);
|
if (nIdx-1 == RECIPE_REFLOW_CELLSIDE_TOP)
|
{
|
dlg.m_ofn.lpstrTitle = _T("Select TOP Master Image");
|
}
|
else if (nIdx-1 == RECIPE_REFLOW_CELLSIDE_LEFT)
|
{
|
dlg.m_ofn.lpstrTitle = _T("Select LEFT Master Image");
|
}
|
else if (nIdx-1 == RECIPE_REFLOW_CELLSIDE_RIGHT)
|
{
|
dlg.m_ofn.lpstrTitle = _T("Select RIGHT Master Image");
|
}
|
|
dlg.m_ofn.lpstrInitialDir = REFLOW_IMAGE_PATH;
|
|
if(dlg.DoModal() == IDOK)
|
{
|
CString strFilepath = dlg.GetPathName();
|
CString strFilename = dlg.GetFileName();
|
|
|
if(!m_MasterDlg[nIdx-1])
|
{
|
m_MasterDlg[nIdx-1].LoadImage(strFilepath);
|
m_MasterDlg[nIdx-1].Create(IDD_DIALOG_REVIEW_RCP_REFLOW_MASTER_IMAGE, this);
|
if (nIdx-1 == RECIPE_REFLOW_CELLSIDE_TOP)
|
{
|
m_MasterDlg[nIdx-1].SetWindowText(_T("TOP Master Image"));
|
}
|
else if (nIdx-1 == RECIPE_REFLOW_CELLSIDE_LEFT)
|
{
|
m_MasterDlg[nIdx-1].SetWindowText(_T("LEFT Master Image"));
|
}
|
else if (nIdx-1 == RECIPE_REFLOW_CELLSIDE_RIGHT)
|
{
|
m_MasterDlg[nIdx-1].SetWindowText(_T("RIGHT Master Image"));
|
}
|
m_MasterDlg[nIdx-1].MoveWindow(0, 0, m_MasterDlg[nIdx-1].ImageGetWidth(), m_MasterDlg[nIdx-1].ImageGetHeight() + 50);
|
m_MasterDlg[nIdx-1].ShowWindow(SW_SHOW);
|
}
|
else
|
{
|
m_MasterDlg[nIdx-1].LoadImage(strFilepath);
|
m_MasterDlg[nIdx-1].MoveWindow(0, 0, m_MasterDlg[nIdx-1].ImageGetWidth(), m_MasterDlg[nIdx-1].ImageGetHeight() + 50);
|
m_MasterDlg[nIdx-1].ShowWindow(SW_SHOW);
|
m_MasterDlg[nIdx-1].Invalidate(TRUE);
|
}
|
m_MasterDlg[nIdx-1].SetDir(nIdx-1);
|
|
m_ctrlGridReflowParameter.SetItemText(nIdx, 9, strFilename);
|
m_ctrlGridReflowParameter.Invalidate(TRUE);
|
}
|
m_MasterDlg[nIdx-1].SetDlgCommon(this);
|
}
|
|
void CDlgCommon::OnUserPitch(int xpos, int xpitch, int xcount, int ypos, int ypitch, int ycount, int dir, int mode)
|
{
|
|
int nOldUserDefectCount = m_nUserDefectCount;
|
m_nUserDefectCount += xcount * ycount;
|
UpdateData(FALSE);
|
|
UpdateData(TRUE);
|
|
int i, nRowIdx, nColIdx;
|
CString strTemp;
|
CRect rect;
|
m_ctrlGridUserDefectInfo.GetWindowRect(&rect);
|
m_ctrlGridUserDefectInfo.SetRowCount(m_nUserDefectCount + 1);
|
|
CGridCellCombo* pCellCombo = NULL;
|
CStringArray strArrayOption;
|
|
if(m_nUserDefectCount > 0)
|
{
|
GV_ITEM Item;
|
nColIdx = 1;
|
nRowIdx = nOldUserDefectCount+1;
|
// for(i = 0; i < m_nUserDefectCount; i++)
|
// {
|
for (int j = 0; j < ycount; j++)
|
{
|
for (i = 0; i < xcount; i++)
|
{
|
//À妽º
|
nColIdx = 0;
|
Item.mask = GVIF_TEXT;
|
Item.row = nRowIdx;
|
Item.col = nColIdx++;
|
strTemp.Format(_T("%02d"), nOldUserDefectCount + xcount*j + i);
|
Item.strText = strTemp;
|
m_ctrlGridUserDefectInfo.SetItem(&Item);
|
|
// X pos
|
Item.col = nColIdx++;
|
strTemp.Format(_T("%.03f"), (float(xpos+i*xpitch))/1000);
|
Item.strText = strTemp;
|
m_ctrlGridUserDefectInfo.SetItem(&Item);
|
|
// Y pos
|
Item.col = nColIdx++;
|
strTemp.Format(_T("%.03f"), (float(ypos+j*ypitch))/1000);
|
Item.strText = strTemp;
|
m_ctrlGridUserDefectInfo.SetItem(&Item);
|
|
////////////// CELL SIDE //////////////////
|
strArrayOption.RemoveAll();
|
for(int j = 0; j < RECIPE_REFLOW_CELLSIDE_COUNT; j++)
|
{
|
strArrayOption.Add(strRecipeReflowCellside[j]);
|
}
|
m_ctrlGridUserDefectInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo));
|
pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.GetCell(nRowIdx, nColIdx);
|
if (pCellCombo)
|
{
|
pCellCombo->SetOptions(strArrayOption);
|
pCellCombo->SetStyle(CBS_DROPDOWN);
|
}
|
m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strRecipeReflowCellside[dir]);
|
|
////////////// INSPECTION MODE //////////////////
|
strArrayOption.RemoveAll();
|
for(int j = 0; j < RECIPE_INSPECTIONMODE_COUNT; j++)
|
{
|
strArrayOption.Add(strRecipeInspectionMode[j]);
|
}
|
m_ctrlGridUserDefectInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo));
|
pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.GetCell(nRowIdx, nColIdx);
|
if (pCellCombo)
|
{
|
pCellCombo->SetOptions(strArrayOption);
|
pCellCombo->SetStyle(CBS_DROPDOWN);
|
}
|
m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strRecipeInspectionMode[mode]);
|
|
nRowIdx++;
|
}
|
}
|
}
|
}
|
|
void CDlgCommon::OnBnClickedButtonUserPitchInput()
|
{
|
// TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
CDlgUserPitchInpout dlgpitch;
|
dlgpitch.SetDlgCommon(this);
|
dlgpitch.DoModal();
|
}
|
|
|
void CDlgCommon::OnBnClickedButton4()
|
{
|
// TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
CDlgRecipeChange dlgrecipechange;
|
dlgrecipechange.DoModal();
|
}
|