a
This commit is contained in:
@@ -0,0 +1,370 @@
|
||||
// CDialTaskManagerOffline.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "GeoMative.h"
|
||||
#include "DialTaskManagerOffline.h"
|
||||
#include "DialNew1DTask.h"
|
||||
#include "DialNew2DTask.h"
|
||||
#include "DialNew3DTask.h"
|
||||
#include "DialMeasureData.h"
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
extern int g_UIOffset;
|
||||
extern int g_iUILanguage;
|
||||
extern CGeoMativeApp theApp;
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CDialTaskManagerOffline dialog
|
||||
|
||||
|
||||
CDialTaskManagerOffline::CDialTaskManagerOffline(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CDialTaskManagerOffline::IDD, pParent)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CDialTaskManagerOffline)
|
||||
// NOTE: the ClassWizard will add member initialization here
|
||||
//}}AFX_DATA_INIT
|
||||
m_iSelTaskType = 0;
|
||||
m_iTestType = -1;
|
||||
m_uiDstDevID = 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
void CDialTaskManagerOffline::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CDialTaskManagerOffline)
|
||||
DDX_Control(pDX, IDC_LIST_TASK_ATTR, m_listTaskAttr);
|
||||
DDX_Control(pDX, IDC_LIST_TASK_DATA, m_listTaskData);
|
||||
DDX_Control(pDX, IDC_TAB_TASK_CHG, m_tabTaskChg);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CDialTaskManagerOffline, CDialog)
|
||||
//{{AFX_MSG_MAP(CDialTaskManagerOffline)
|
||||
ON_BN_CLICKED(IDC_BUTTON_CREATE_TASK, OnButtonCreateTask)
|
||||
ON_BN_CLICKED(IDC_BUTTON_DEL_TASK, OnButtonDelTask)
|
||||
ON_MESSAGE(WM_CLICK_TASK_TREE, OnClickTaskTree)
|
||||
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB_TASK_CHG, OnSelchangeTabTaskChg)
|
||||
// ON_BN_CLICKED(IDC_BUTTON_EXP_TASK, OnButtonExpTask)
|
||||
ON_BN_CLICKED(IDC_BUTTON_MEASURE_TASK, OnButtonMeasureTask)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CDialTaskManagerOffline message handlers
|
||||
|
||||
void CDialTaskManagerOffline::OnButtonCreateTask()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
int iRet = -1;
|
||||
int iTaskID = 0;
|
||||
CString strTdName = _T("");
|
||||
m_taskOper.m_uiDevID = m_uiDstDevID;
|
||||
if (0 == m_iSelTaskType)
|
||||
{
|
||||
CDialNew1DTask dialNew1DTask(&m_taskOper);
|
||||
iRet = dialNew1DTask.DoModal();
|
||||
iTaskID = dialNew1DTask.m_iNewTaskID;
|
||||
strTdName = dialNew1DTask.m_strTaskName;
|
||||
}
|
||||
else if (1 == m_iSelTaskType)
|
||||
{
|
||||
CDialNew2DTask dialNew2DTask(&m_taskOper);
|
||||
iRet = dialNew2DTask.DoModal();
|
||||
iTaskID = dialNew2DTask.m_iNewTaskID;
|
||||
strTdName = dialNew2DTask.m_strTaskName;
|
||||
}
|
||||
else if (2 == m_iSelTaskType)
|
||||
{
|
||||
CDialNew3DTask dialNew3DTask(&m_taskOper);
|
||||
iRet = dialNew3DTask.DoModal();
|
||||
iTaskID = dialNew3DTask.m_iNewTaskID;
|
||||
strTdName = dialNew3DTask.m_strTaskName;
|
||||
}
|
||||
else
|
||||
{
|
||||
CString strErr = _T("");
|
||||
if (LANG_ZHCN == g_iUILanguage)
|
||||
{
|
||||
strErr.Format(_T("未知任务类型(%d)"), m_iSelTaskType);
|
||||
AfxMessageBox(strErr);
|
||||
}
|
||||
else
|
||||
{
|
||||
strErr.Format(_T("Unknow task type(%d)"), m_iSelTaskType);
|
||||
MessageBoxEx(NULL, strErr, STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (IDOK == iRet)
|
||||
{
|
||||
HTREEITEM hRoot = m_dialTaskTreeOffline.m_treeTask.GetRootItem();
|
||||
HTREEITEM hItem = m_dialTaskTreeOffline.m_treeTask.InsertItem(strTdName, hRoot);
|
||||
m_dialTaskTreeOffline.m_treeTask.SetItemData(hItem, iTaskID);
|
||||
m_dialTaskTreeOffline.m_treeTask.Invalidate(TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
void CDialTaskManagerOffline::OnButtonDelTask()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
HTREEITEM hItem = m_dialTaskTreeOffline.m_treeTask.GetSelectedItem();
|
||||
if (NULL == hItem)
|
||||
{
|
||||
if (LANG_ZHCN == g_iUILanguage)
|
||||
AfxMessageBox(_T("请先选择数据"));
|
||||
else
|
||||
MessageBoxEx(NULL, _T("Please choose one task first"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
||||
return;
|
||||
}
|
||||
DWORD dwTaskID = 0;
|
||||
dwTaskID = m_dialTaskTreeOffline.m_treeTask.GetItemData(hItem);
|
||||
if (dwTaskID < 1)
|
||||
{
|
||||
if (LANG_ZHCN == g_iUILanguage)
|
||||
AfxMessageBox(_T("获取任务数据ID错误"));
|
||||
else
|
||||
MessageBoxEx(NULL, _T("Can not find the test task.please select the task firstly"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
||||
return;
|
||||
}
|
||||
if (m_taskOper.DeleteTask(dwTaskID))
|
||||
{
|
||||
m_listTaskData.DeleteAllItems();
|
||||
int iItemCnt = m_listTaskAttr.GetItemCount();
|
||||
for (int i = 0; i < iItemCnt; i++)
|
||||
{
|
||||
m_listTaskAttr.SetItemText(i, 2, _T(""));
|
||||
}
|
||||
m_dialTaskTreeOffline.m_treeTask.DeleteItem(hItem);
|
||||
if (LANG_ZHCN == g_iUILanguage)
|
||||
AfxMessageBox(_T("删除任务成功"));
|
||||
else
|
||||
MessageBoxEx(NULL, _T("Delete task successful"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (LANG_ZHCN == g_iUILanguage)
|
||||
AfxMessageBox(_T("删除任务失败"));
|
||||
else
|
||||
MessageBoxEx(NULL, _T("Delete task failed"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
BOOL CDialTaskManagerOffline::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// TODO: Add extra initialization here
|
||||
m_tabTaskChg.InsertItem(0, _T("VES TASK"));
|
||||
m_tabTaskChg.InsertItem(1, _T("2D TASK"));
|
||||
m_tabTaskChg.InsertItem(2, _T("3D TASK"));
|
||||
m_iSelTaskType = 0;
|
||||
CRect rect;
|
||||
m_tabTaskChg.GetClientRect(&rect);
|
||||
|
||||
rect.top += 2;
|
||||
rect.left += 2;
|
||||
rect.right -= 2;
|
||||
rect.bottom -= 23;
|
||||
m_dialTaskTreeOffline.Create(IDD_DIALOG_TASK_TREE, &m_tabTaskChg);
|
||||
m_dialTaskTreeOffline.RegisterWnd(this);
|
||||
m_dialTaskTreeOffline.MoveWindow(&rect);
|
||||
m_dialTaskTreeOffline.ShowWindow(SW_SHOW);
|
||||
m_dialTaskTreeOffline.SetSptType(m_iSelTaskType);
|
||||
|
||||
//初始化任务属性
|
||||
InitialTaskListAttr();
|
||||
//初始化任务数据
|
||||
m_listTaskData.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP
|
||||
| LVS_EX_ONECLICKACTIVATE | LVS_EX_GRIDLINES);
|
||||
InitialTaskListData(0);
|
||||
if (LANG_ENUS == g_iUILanguage)
|
||||
{
|
||||
GetDlgItem(IDC_STATIC_TASK_LIST)->SetWindowText("Task List:");
|
||||
GetDlgItem(IDC_STATIC_LIST_ATTR)->SetWindowText("Task Attribute:");
|
||||
GetDlgItem(IDC_STATIC_TASK_DATA)->SetWindowText("Task Data:");
|
||||
|
||||
GetDlgItem(IDC_BUTTON_CREATE_TASK)->SetWindowText("Create");
|
||||
GetDlgItem(IDC_BUTTON_MEASURE_TASK)->SetWindowText("Measure");
|
||||
GetDlgItem(IDC_BUTTON_DEL_TASK)->SetWindowText("Delete");
|
||||
}
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
void CDialTaskManagerOffline::InitialTaskListData(int iTestType)
|
||||
{
|
||||
if (iTestType == m_iTestType)
|
||||
{
|
||||
return;
|
||||
}
|
||||
m_listTaskData.DeleteAllItems();
|
||||
int iColumnCount = m_listTaskData.GetHeaderCtrl()->GetItemCount();
|
||||
for (int i = 0; i < iColumnCount; i++)
|
||||
{
|
||||
m_listTaskData.DeleteColumn(0);
|
||||
}
|
||||
m_iTestType = iTestType;
|
||||
int iColIndex = 0;
|
||||
m_listTaskData.InsertColumn(iColIndex++, _T("A"), LVCFMT_CENTER, 80);
|
||||
m_listTaskData.InsertColumn(iColIndex++, _T("B"), LVCFMT_CENTER, 80);
|
||||
m_listTaskData.InsertColumn(iColIndex++, _T("M"), LVCFMT_CENTER, 80);
|
||||
m_listTaskData.InsertColumn(iColIndex++, _T("N"), LVCFMT_CENTER, 80);
|
||||
m_listTaskData.InsertColumn(iColIndex++, _T("Stack"), LVCFMT_CENTER, 80);
|
||||
m_listTaskData.InsertColumn(iColIndex++, "K", LVCFMT_CENTER, 120);
|
||||
m_listTaskData.InsertColumn(iColIndex++, "V(mV)", LVCFMT_CENTER, 120);
|
||||
m_listTaskData.InsertColumn(iColIndex++, "I(mA)", LVCFMT_CENTER, 120);
|
||||
if (0 == iTestType)
|
||||
{
|
||||
m_listTaskData.InsertColumn(iColIndex++, "R(Ohm)", LVCFMT_CENTER, 120);
|
||||
}
|
||||
m_listTaskData.InsertColumn(iColIndex++, "R0(Ohm*m)", LVCFMT_CENTER, 120);
|
||||
m_listTaskData.InsertColumn(iColIndex++, "SP(mV)", LVCFMT_CENTER, 120);
|
||||
}
|
||||
|
||||
void CDialTaskManagerOffline::InitialTaskListAttr()
|
||||
{
|
||||
CString strColTitle;
|
||||
m_listTaskAttr.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP
|
||||
| LVS_EX_ONECLICKACTIVATE | LVS_EX_GRIDLINES);
|
||||
m_listTaskAttr.InsertColumn(0, _T(""), LVCFMT_RIGHT, 1);
|
||||
if (LANG_ENUS == g_iUILanguage)
|
||||
{
|
||||
m_listTaskAttr.InsertColumn(1, _T("Attribute"), LVCFMT_RIGHT, 150);
|
||||
m_listTaskAttr.InsertColumn(2, _T("Value"), LVCFMT_LEFT, 400);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_listTaskAttr.InsertColumn(1, _T("任务属性"), LVCFMT_RIGHT, 150);
|
||||
m_listTaskAttr.InsertColumn(2, _T("属性值"), LVCFMT_LEFT, 400);
|
||||
}
|
||||
|
||||
int iItemIndex = 0;
|
||||
|
||||
strColTitle.Empty();
|
||||
strColTitle.LoadString(IDS_DB_TD_TDNAME + g_UIOffset);
|
||||
m_listTaskAttr.InsertItem(iItemIndex, _T(""));
|
||||
m_listTaskAttr.SetItemText(iItemIndex, 1, strColTitle);
|
||||
|
||||
iItemIndex++;
|
||||
strColTitle.Empty();
|
||||
strColTitle.LoadString(IDS_DB_SCON_SNAME + g_UIOffset);
|
||||
m_listTaskAttr.InsertItem(iItemIndex, _T(""));
|
||||
m_listTaskAttr.SetItemText(iItemIndex, 1, strColTitle);
|
||||
|
||||
iItemIndex++;
|
||||
strColTitle.Empty();
|
||||
strColTitle.LoadString(IDS_DB_SCON_STYPE + g_UIOffset);
|
||||
m_listTaskAttr.InsertItem(iItemIndex, _T(""));
|
||||
m_listTaskAttr.SetItemText(iItemIndex, 1, strColTitle);
|
||||
|
||||
iItemIndex++;
|
||||
strColTitle.Empty();
|
||||
strColTitle.LoadString(IDS_DB_TD_TMODE + g_UIOffset);
|
||||
m_listTaskAttr.InsertItem(iItemIndex, _T(""));
|
||||
m_listTaskAttr.SetItemText(iItemIndex, 1, strColTitle);
|
||||
|
||||
iItemIndex++;
|
||||
strColTitle.Empty();
|
||||
strColTitle.LoadString(IDS_ARRAY_TYPE + g_UIOffset);
|
||||
m_listTaskAttr.InsertItem(iItemIndex, _T(""));
|
||||
m_listTaskAttr.SetItemText(iItemIndex, 1, strColTitle);
|
||||
|
||||
iItemIndex++;
|
||||
strColTitle.Empty();
|
||||
strColTitle.LoadString(IDS_DB_SCON_EAMOUNT + g_UIOffset);
|
||||
m_listTaskAttr.InsertItem(iItemIndex, _T(""));
|
||||
m_listTaskAttr.SetItemText(iItemIndex, 1, strColTitle);
|
||||
|
||||
iItemIndex++;
|
||||
strColTitle.Empty();
|
||||
strColTitle.LoadString(IDS_DB_SCON_TPAMOUNT + g_UIOffset);
|
||||
m_listTaskAttr.InsertItem(iItemIndex, _T(""));
|
||||
m_listTaskAttr.SetItemText(iItemIndex, 1, strColTitle);
|
||||
|
||||
iItemIndex++;
|
||||
strColTitle.Empty();
|
||||
strColTitle.LoadString(IDS_DB_SCRIPT_N + g_UIOffset);
|
||||
m_listTaskAttr.InsertItem(iItemIndex, _T(""));
|
||||
m_listTaskAttr.SetItemText(iItemIndex, 1, strColTitle);
|
||||
|
||||
iItemIndex++;
|
||||
strColTitle.Empty();
|
||||
strColTitle.LoadString(IDS_DB_TD_TRWAVE + g_UIOffset);
|
||||
m_listTaskAttr.InsertItem(iItemIndex, _T(""));
|
||||
m_listTaskAttr.SetItemText(iItemIndex, 1, strColTitle);
|
||||
|
||||
iItemIndex++;
|
||||
strColTitle.Empty();
|
||||
strColTitle.LoadString(IDS_DB_TD_TRFREQUENCY + g_UIOffset);
|
||||
m_listTaskAttr.InsertItem(iItemIndex, _T(""));
|
||||
m_listTaskAttr.SetItemText(iItemIndex, 1, strColTitle);
|
||||
|
||||
iItemIndex++;
|
||||
strColTitle.Empty();
|
||||
strColTitle.LoadString(IDS_DB_TD_CLAYOUT + g_UIOffset);
|
||||
m_listTaskAttr.InsertItem(iItemIndex, _T(""));
|
||||
m_listTaskAttr.SetItemText(iItemIndex, 1, strColTitle);
|
||||
|
||||
iItemIndex++;
|
||||
strColTitle.Empty();
|
||||
strColTitle.LoadString(IDS_DB_TD_EDISTANCE + g_UIOffset);
|
||||
m_listTaskAttr.InsertItem(iItemIndex, _T(""));
|
||||
m_listTaskAttr.SetItemText(iItemIndex, 1, strColTitle);
|
||||
}
|
||||
|
||||
LRESULT CDialTaskManagerOffline::OnClickTaskTree(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
DWORD dwTaskID = (DWORD)wParam;
|
||||
m_taskOper.QueryTdAttrToCtrl(m_listTaskAttr, dwTaskID);
|
||||
int iTtype = m_taskOper.GetCurSelTdTestType();
|
||||
|
||||
InitialTaskListData(iTtype);
|
||||
m_taskOper.QueryTdDataToCtrl(m_listTaskData, dwTaskID, m_iSelTaskType, iTtype);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void CDialTaskManagerOffline::OnSelchangeTabTaskChg(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
if (m_iSelTaskType == m_tabTaskChg.GetCurSel())
|
||||
{
|
||||
return;
|
||||
}
|
||||
m_iSelTaskType = m_tabTaskChg.GetCurSel();
|
||||
m_dialTaskTreeOffline.ShowTaskTree(m_iSelTaskType);
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
void CDialTaskManagerOffline::OnButtonMeasureTask()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
|
||||
HTREEITEM hItem = m_dialTaskTreeOffline.m_treeTask.GetSelectedItem();
|
||||
if (NULL == hItem || m_dialTaskTreeOffline.m_treeTask.GetRootItem() == hItem)
|
||||
{
|
||||
if (LANG_ZHCN == g_iUILanguage)
|
||||
AfxMessageBox(_T("请先选择任务"));
|
||||
else
|
||||
MessageBoxEx(NULL, _T("Please choose one task first"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
||||
return;
|
||||
}
|
||||
DWORD dwTdID = m_dialTaskTreeOffline.m_treeTask.GetItemData(hItem);
|
||||
CDialMeasureData dialMeasuData;
|
||||
dialMeasuData.SetTaksID(dwTdID);
|
||||
dialMeasuData.SetDeviceID(m_uiDstDevID);
|
||||
dialMeasuData.DoModal();
|
||||
m_taskOper.QueryTdDataToCtrl(m_listTaskData, dwTdID, m_iSelTaskType, m_iTestType);
|
||||
}
|
||||
Reference in New Issue
Block a user