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