Files
geomative/GeomativeStudio/cpp/Views/opsyntddlg.cpp
T
coco df489d5640 a
2026-07-03 16:05:30 +08:00

886 lines
25 KiB
C++

// opsyntddlg.cpp : implementation file
//
#include "stdafx.h"
#include "geomative.h"
#include "opsyntddlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CString g_szMacAddress;
extern CGeoMativeApp theApp;
extern int g_UIOffset;
extern int g_iUILanguage;
BEGIN_EASYSIZE_MAP(COpSynTDDlg)
EASYSIZE(IDC_TREE_SYN_DMS, ES_BORDER,ES_BORDER,ES_KEEPSIZE,ES_BORDER,0)
EASYSIZE(IDC_LIST_SYN_TD, ES_BORDER,ES_BORDER,ES_BORDER,ES_BORDER,0)
EASYSIZE(IDC_TD_SEL, ES_KEEPSIZE,IDC_LIST_SYN_TD,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_TD_DEL, IDC_TD_SEL,IDC_LIST_SYN_TD,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_STATIC_UPLOADED, IDC_TREE_SYN_DMS,IDC_LIST_SYN_TD,ES_KEEPSIZE,ES_KEEPSIZE,0)
EASYSIZE(IDC_LIST_SYN_SELTD, ES_BORDER,IDC_STATIC_UPLOADED,ES_BORDER,ES_BORDER,0)
EASYSIZE(IDC_TD_REMOVE, ES_KEEPSIZE,IDC_LIST_SYN_SELTD,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_TD_UPLOAD, IDC_TD_REMOVE,IDC_LIST_SYN_SELTD,ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_CREATE, ES_BORDER,IDC_TREE_SYN_DMS,ES_KEEPSIZE,ES_KEEPSIZE,0)
EASYSIZE(IDC_DMS_DEL, ES_BORDER,IDC_TREE_SYN_DMS,ES_KEEPSIZE,ES_KEEPSIZE,0)
END_EASYSIZE_MAP
/////////////////////////////////////////////////////////////////////////////
// COpSynTDDlg dialog
extern HHOOK hHook;
extern LRESULT __stdcall CBTHookProc(long nCode, WPARAM wParam, LPARAM lParam);
COpSynTDDlg::COpSynTDDlg(CWnd* pParent /*=NULL*/)
: CDialog(COpSynTDDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(COpSynTDDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_pDev = NULL;
}
void COpSynTDDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(COpSynTDDlg)
// DDX_Control(pDX, IDC_TD_SEL, m_btnAdd);
DDX_Control(pDX, IDC_LIST_SYN_TD, m_tdList);
DDX_Control(pDX, IDC_LIST_SYN_SELTD, m_selTdList);
DDX_Control(pDX, IDC_TREE_SYN_DMS, m_dmsTree);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(COpSynTDDlg, CDialog)
//{{AFX_MSG_MAP(COpSynTDDlg)
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_SYN_DMS, OnSelchangedTreeSynDms)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST_SYN_TD, OnItemchangedListSynTd)
ON_BN_CLICKED(IDC_TD_SEL, OnTdSel)
ON_BN_CLICKED(IDC_TD_REMOVE, OnTdRemove)
ON_BN_CLICKED(IDC_CREATE, OnCreate)
ON_BN_CLICKED(IDC_DMS_DEL, OnDmsDel)
ON_BN_CLICKED(IDC_TD_DEL, OnTdDel)
ON_BN_CLICKED(IDC_TD_UPLOAD, OnTdUpload)
ON_WM_SIZE()
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COpSynTDDlg message handlers
BOOL COpSynTDDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
InitULByLanguage(g_iUILanguage);
CString strColTitle = _T("");
int iColIndex = (int)VAL_ZERO;
m_dmsTree.ModifyStyle(0, TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS | TVS_SHOWSELALWAYS | TVS_NOHSCROLL);
iColIndex = (int)VAL_ZERO;
m_tdList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP | LVS_EX_ONECLICKACTIVATE | LVS_EX_GRIDLINES);
strColTitle.Empty();
strColTitle.LoadString(IDS_SYN_ISSYNED+g_UIOffset);
m_tdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 100);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_TD_NAME+g_UIOffset);
m_tdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 115);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_TD_TTYPE+g_UIOffset);
// strColTitle = _T("Test method");
m_tdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 93);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_TD_STYPE+g_UIOffset);
// strColTitle = _T("Script type");
m_tdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 93);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_TD_CDATE+g_UIOffset);
// strColTitle = _T("Create date");
m_tdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 93);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_TD_CTIME+g_UIOffset);
// strColTitle = _T("Create time");
m_tdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 88);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_TD_CN+g_UIOffset);
m_tdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
// iColIndex++;
// strColTitle.Empty();
// strColTitle.LoadString(IDS_DB_PROJECT_PRNAME);
// m_tdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_PROJECT_CN+g_UIOffset);
// strColTitle = _T("Project ID");
m_tdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
// iColIndex++;
// strColTitle.Empty();
// strColTitle.LoadString(IDS_DB_TZ_TZNAME);
// m_tdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_TZ_CN+g_UIOffset);
m_tdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
//新增一列用于存放大数据任务的子任务的TDCN
iColIndex++;
m_tdList.InsertColumn(iColIndex, _T(""), LVCFMT_LEFT, 0);
iColIndex = (int)VAL_ZERO;
m_selTdList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP
| LVS_EX_ONECLICKACTIVATE | LVS_EX_GRIDLINES );
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_TD_NAME+g_UIOffset);
m_selTdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 135);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_TD_TTYPE+g_UIOffset);
// strColTitle = _T("Test method");
m_selTdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 112);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_TD_STYPE+g_UIOffset);
// strColTitle = _T("Script type");
m_selTdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 112);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_TD_CDATE+g_UIOffset);
// strColTitle = _T("Create date");
m_selTdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 112);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_TD_CTIME+g_UIOffset);
// strColTitle = _T("Create time");
m_selTdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 111);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_TD_CN+g_UIOffset);
m_selTdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
// iColIndex++;
// strColTitle.Empty();
// strColTitle.LoadString(IDS_DB_PROJECT_PRNAME);
// m_selTdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_PROJECT_CN+g_UIOffset);
// strColTitle = _T("Project ID");
m_selTdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
// iColIndex++;
// strColTitle.Empty();
// strColTitle.LoadString(IDS_DB_TZ_TZNAME);
// m_selTdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_TZ_CN+g_UIOffset);
m_selTdList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
//用于存放大数据的子任务的TDCN
iColIndex++;
m_selTdList.InsertColumn(iColIndex, _T(""), LVCFMT_LEFT, 0);
// HBITMAP hBitmap;
// hBitmap = LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_ADD1)); // IDB_BITMAP_TEST为资源图片ID
// ((CButton *)GetDlgItem(IDC_TD_SEL))->SetBitmap(hBitmap);
//初始化自适应窗口控件
INIT_EASYSIZE;
// CRect rect;
// GetDlgItem(IDC_TD_SEL)->GetWindowRect(&rect);
// ScreenToClient(rect);
// m_btnAdd.Create(_T("Add"),WS_VISIBLE | WS_CHILD, CRect(400,150,450,180), this, IDC_TD_SEL);
// m_btnAdd.LoadImgByID(IDR_PNG_ADD);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void COpSynTDDlg::OnSelchangedTreeSynDms(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
CString ItemCN = _T("");
HTREEITEM hTreeItem = NULL;
hTreeItem = this->m_dmsTree.GetSelectedItem();
if (0 != this->m_dmsTree.GetItemData(hTreeItem))
{
ItemCN = *(CString*)(this->m_dmsTree.GetItemData(hTreeItem));
}
if (!ItemCN.IsEmpty())
{
if (NULL == this->m_dmsTree.GetParentItem(hTreeItem))
{
theApp.m_pTdManager->InitialTDListByProForSyn(this->m_tdList, this->m_pDev->m_szDevSN, ItemCN);
}
else
{
theApp.m_pTdManager->InitialTDListByTzForSyn(this->m_tdList, this->m_pDev->m_szDevSN, ItemCN);
}
}
*pResult = 0;
}
BOOL COpSynTDDlg::ClearAll()
{
theApp.m_pProManager->ClearDMSTreeForSyn(this->m_dmsTree);
this->m_tdList.DeleteAllItems();
this->m_selTdList.DeleteAllItems();
return TRUE;
}
void COpSynTDDlg::OnItemchangedListSynTd(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
/*
if (((pNMListView->uOldState & LVIS_SELECTED) == VAL_ZERO) && ((pNMListView->uNewState & LVIS_SELECTED) == LVIS_SELECTED))
{
if (1 == this->m_tdList.GetItemData(pNMListView->iItem))
{
this->m_tdList.SetItemState(pNMListView->iItem, 0, -1); //如果已同步,则不可选中
}
}
*/
*pResult = 0;
}
void COpSynTDDlg::OnTdSel()
{
// TODO: Add your control notification handler code here
LVFINDINFO info;
CString szTdCN = _T("");
CString szTdName = _T("");
CString szTType = _T("");
CString szSType = _T("");
CString szCDate = _T("");
CString szCTime = _T("");
CString szPrName = _T("");
CString szPrCN = _T("");
CString szTzName = _T("");
CString szTzCN = _T("");
CString strSubTaskCN = _T("");
int iItemIndex = (int)VAL_ZERO;
POSITION pos = NULL;
int iSelItemIndex = (int)VAL_ZERO;
iSelItemIndex = this->m_selTdList.GetItemCount();
pos = m_tdList.GetFirstSelectedItemPosition();
while (pos)
{
iItemIndex = m_tdList.GetNextSelectedItem(pos);
szTdName.Empty();
szTdName = m_tdList.GetItemText(iItemIndex, 1);
szTType.Empty();
szTType = m_tdList.GetItemText(iItemIndex, 2);
szSType.Empty();
szSType = m_tdList.GetItemText(iItemIndex, 3);
szCDate.Empty();
szCDate = m_tdList.GetItemText(iItemIndex, 4);
szCTime.Empty();
szCTime = m_tdList.GetItemText(iItemIndex, 5);
// szPrName.Empty();
// szPrName = m_tdList.GetItemText(iItemIndex, 6);
szTdCN.Empty();
szTdCN = m_tdList.GetItemText(iItemIndex, 6);
szPrCN.Empty();
szPrCN = m_tdList.GetItemText(iItemIndex, 7);
// szTzName.Empty();
// szTzName = m_tdList.GetItemText(iItemIndex, 8);
szTzCN.Empty();
szTzCN = m_tdList.GetItemText(iItemIndex, 8);
strSubTaskCN.Empty();
strSubTaskCN = m_tdList.GetItemText(iItemIndex, 9);
// info.flags = LVFI_PARTIAL | LVFI_STRING;
// //info.flags = LVFI_WRAP | LVFI_STRING;
// info.psz = szTdCN;
if (!FindSelListItem(5,szTdCN))
{
this->m_selTdList.InsertItem(iSelItemIndex, szTdName);
this->m_selTdList.SetItemText(iSelItemIndex, 1, szTType);
this->m_selTdList.SetItemText(iSelItemIndex, 2, szSType);
this->m_selTdList.SetItemText(iSelItemIndex, 3, szCDate);
this->m_selTdList.SetItemText(iSelItemIndex, 4, szCTime);
this->m_selTdList.SetItemText(iSelItemIndex, 5, szTdCN);
this->m_selTdList.SetItemText(iSelItemIndex, 6, szPrCN);
this->m_selTdList.SetItemText(iSelItemIndex, 7, szTzCN);
if (!strSubTaskCN.IsEmpty())
this->m_selTdList.SetItemText(iSelItemIndex, 8, strSubTaskCN);
// this->m_selTdList.SetItemText(iSelItemIndex, 5, szPrName);
// this->m_selTdList.SetItemText(iSelItemIndex, 6, szPrCN);
// this->m_selTdList.SetItemText(iSelItemIndex, 7, szTzName);
// this->m_selTdList.SetItemText(iSelItemIndex, 8, szTzCN);
iSelItemIndex++;
}
}
}
bool COpSynTDDlg::FindSelListItem(int iColumn, CString strText)
{
// strTex
strText.TrimLeft();
strText.TrimRight();
CString strTmp = _T("");
for (int i = 0; i < m_selTdList.GetItemCount(); i++)
{
strTmp = m_selTdList.GetItemText(i, iColumn);
strTmp.TrimLeft();
strTmp.TrimRight();
if (0 == strTmp.Compare(strText))
{
return true;
}
}
return false;
}
void COpSynTDDlg::OnTdRemove()
{
// TODO: Add your control notification handler code here
UINT iSelItemIndex = (int)VAL_ZERO;
while (m_selTdList.GetNextItem(-1, LVNI_ALL | LVNI_SELECTED) != -1) //删除CListCtrl选中的多行
{
iSelItemIndex = m_selTdList.GetNextItem(-1, LVNI_ALL | LVNI_SELECTED);
m_selTdList.DeleteItem(iSelItemIndex);
}
}
void COpSynTDDlg::OnCreate()
{
// TODO: Add your control notification handler code here
if (NULL != m_pDev)
{
UINT uiRes = theApp.m_pProManager->CreateDMSInDev(this->m_pDev->m_szDevSN, m_pDev);
if (APP_SUCCESS == uiRes)
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("工程下发成功."));
else
MessageBoxEx(NULL, _T("Download project to mainframe success!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
}
else if (APP_DEFAULT == uiRes)
{
}
else if (APP_CANCLE != uiRes)
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("工程下发失败."));
else
MessageBoxEx(NULL, _T("Download project to mainframe failed!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
}
theApp.m_pProManager->ClearDMSTreeForSyn(m_dmsTree);
theApp.m_pProManager->InitialDMSTreeForSyn(m_dmsTree, m_pDev->m_szDevSN);
}
}
void COpSynTDDlg::OnDmsDel()
{
// TODO: Add your control notification handler code here
CString szPrCN = _T("");
CString szTzCN = _T("");
// CString szMac = _T("");
int nChildrenCount = 0;
HTREEITEM hChildItem = NULL;
HTREEITEM hTreeItem = NULL;
HTREEITEM hParentItem = NULL;
HTREEITEM hCurrItem = NULL;
hTreeItem = this->m_dmsTree.GetSelectedItem();
hParentItem = this->m_dmsTree.GetParentItem(hTreeItem);
if (hParentItem)
{
hChildItem = m_dmsTree.GetChildItem(hParentItem);
while (hChildItem)
{
nChildrenCount ++;
hChildItem = m_dmsTree.GetNextSiblingItem(hChildItem);
}
}
if (NULL != hTreeItem)
{
int nRet = 0;
if (LANG_ZHCN == g_iUILanguage)
nRet = AfxMessageBox(_T("是否要删除数据?"), MB_YESNO | MB_ICONINFORMATION);
else
nRet = MessageBoxEx(NULL, _T("Do you want to delete data?"), STRING_MESSAGEBOXEX_TITLE, MB_YESNO | MB_ICONINFORMATION, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
if (IDYES != nRet)
{
return;
}
this->m_tdList.DeleteAllItems();
this->m_selTdList.DeleteAllItems();
if ((NULL == hParentItem) || ((NULL != hParentItem) && ((int)VAL_ONE == nChildrenCount)))
{
if (NULL != hParentItem)
{
hTreeItem = hParentItem;
}
szPrCN = *((CString*)this->m_dmsTree.GetItemData(hTreeItem));
if (APP_SUCCESS == theApp.m_pProManager->DeleteProjectInDev(g_szMacAddress, szPrCN, m_pDev))
{
hCurrItem = this->m_dmsTree.GetChildItem(hTreeItem);
while (NULL != hCurrItem)
{
delete (CString*)(this->m_dmsTree.GetItemData(hCurrItem));
this->m_dmsTree.SetItemData(hCurrItem, 0);
hCurrItem = this->m_dmsTree.GetNextSiblingItem(hCurrItem);
}
delete (CString*)(this->m_dmsTree.GetItemData(hTreeItem));
this->m_dmsTree.SetItemData(hTreeItem, 0);
this->m_dmsTree.DeleteItem(hTreeItem);
}
else
{
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
if (LANG_ZHCN == g_iUILanguage)
MessageBox(_T("删除工程失败!"));
else
MessageBox("Delete project failed!");
}
}
else
{
szPrCN = *((CString*)this->m_dmsTree.GetItemData(hParentItem));
szTzCN = *((CString*)this->m_dmsTree.GetItemData(hTreeItem));
if (APP_SUCCESS == theApp.m_pProManager->DeleteTzInDev(szPrCN, szTzCN, m_pDev))
{
delete (CString*)(this->m_dmsTree.GetItemData(hTreeItem));
this->m_dmsTree.SetItemData(hTreeItem, 0);
this->m_dmsTree.DeleteItem(hTreeItem);
}
else
{
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
MessageBox("Delete testingzone failed!");
}
}
}
}
void COpSynTDDlg::OnTdDel()
{
// TODO: Add your control notification handler code here
LVFINDINFO info;
CString szTdCN = _T("");
CString szPrCN = _T("");
CString szTzCN = _T("");
int iItemIndex = (int)VAL_ZERO;
POSITION pos = NULL;
int iSelItemIndex = (int)VAL_ZERO;
// iSelItemIndex = this->m_selTdList.GetItemCount();
pos = m_tdList.GetFirstSelectedItemPosition();
if (NULL == pos)
{
return;
}
int nRet = 0;
if (LANG_ZHCN == g_iUILanguage)
nRet = AfxMessageBox(_T("是否要删除任务?"), MB_YESNO);
else
nRet = MessageBoxEx(NULL, _T("Delete the task?"), STRING_MESSAGEBOXEX_TITLE, MB_YESNO, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
if (IDYES != nRet)
return;
//临时写法
CStringArray array;
//
while (pos)
{
iItemIndex = m_tdList.GetNextSelectedItem(pos);
szTdCN.Empty();
szTdCN = m_tdList.GetItemText(iItemIndex, 6);
szPrCN.Empty();
szPrCN = m_tdList.GetItemText(iItemIndex, 7);
szTzCN.Empty();
szTzCN = m_tdList.GetItemText(iItemIndex, 8);
//临时写法
array.Add(szTzCN);
//
if (TRUE == theApp.m_pTdManager->DeleteTdInDev(szPrCN, szTzCN, szTdCN, m_pDev))
{
//本来是下面的代码,但是不起作用,暂时替换写法
// InitialTDListByTzForSyn
/*
info.flags = LVFI_PARTIAL | LVFI_STRING;
info.psz = szTdCN;
iSelItemIndex = (int)VAL_ZERO;
iSelItemIndex = m_selTdList.FindItem(&info);
if (-1 != iSelItemIndex)
{
this->m_selTdList.DeleteItem(iSelItemIndex);
}
*/
}
}
CString ItemCN = _T("");
HTREEITEM hTreeItem = NULL;
hTreeItem = this->m_dmsTree.GetSelectedItem();
if (0 != this->m_dmsTree.GetItemData(hTreeItem))
{
ItemCN = *(CString*)(this->m_dmsTree.GetItemData(hTreeItem));
}
if (!ItemCN.IsEmpty())
{
if (NULL == this->m_dmsTree.GetParentItem(hTreeItem))
{
theApp.m_pTdManager->InitialTDListByProForSyn(this->m_tdList, this->m_pDev->m_szDevSN, ItemCN);
}
else
{
theApp.m_pTdManager->InitialTDListByTzForSyn(this->m_tdList, this->m_pDev->m_szDevSN, ItemCN);
}
}
}
void COpSynTDDlg::OnTdUpload()
{
// TODO: Add your control notification handler code here
CString szTdCN = _T("");
CString szSubTdCN = _T("");//用于大数据任务存放子任务的TDCN
CString szPrCN = _T("");
CString szTzCN = _T("");
CString szTestMethod = _T("");
CString szTmp = _T("");
int iItemIndex = (int)VAL_ZERO;
POSITION pos = NULL;
CString strTaskName = _T("");
if (this->m_selTdList.GetItemCount() != 0)
{
::SetCursor(::LoadCursor(NULL, IDC_WAIT));
while (iItemIndex < this->m_selTdList.GetItemCount())
{
szTdCN.Empty();
szTdCN = m_selTdList.GetItemText(iItemIndex, 5);
szPrCN.Empty();
szPrCN = m_selTdList.GetItemText(iItemIndex, 6);
szTzCN.Empty();
szTzCN = m_selTdList.GetItemText(iItemIndex, 7);
szSubTdCN.Empty();
szSubTdCN = m_selTdList.GetItemText(iItemIndex, 8);
theApp.m_pProManager->LoadTzFromDev(szPrCN, szTzCN, m_pDev);
//----------------------判断任务是否存在---------------------------
szTestMethod.Empty();
szTestMethod = m_selTdList.GetItemText(iItemIndex, 1);
DWORD TdId = 0;
if (!theApp.m_pTdManager->CheckTdExist(szPrCN, szTzCN, szTdCN, m_pDev,&TdId))
{
//该任务存在
strTaskName.Empty();
strTaskName = m_selTdList.GetItemText(iItemIndex, 0);
szTmp.Empty();
int nRet = 0;
if (LANG_ZHCN == g_iUILanguage)
{
szTmp.Format(_T("任务 \"%s\" 已经存在, 是否要覆盖?"), strTaskName);
nRet = AfxMessageBox(szTmp, MB_YESNO);
}
else
{
szTmp.Format(_T("The task \"%s\" existed, do you want to replace?"), strTaskName);
nRet = MessageBoxEx(NULL, szTmp, STRING_MESSAGEBOXEX_TITLE, MB_YESNO, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));;
}
if (nRet == IDYES)
{
if (szTestMethod == "Resistivity")
{
if (_T("VES") == szTdCN.Left(3))
theApp.m_pTdManager->DeleteRspCETd(TdId);
else if (_T("ERI") == szTdCN.Left(3))
theApp.m_pTdManager->DeleteRsp2DTd(TdId);
else if (_T("ERT") == szTdCN.Left(3))
theApp.m_pTdManager->DeleteRsp3DTd(TdId);
}
else if(szTestMethod == "Induced polarization")
{
if (_T("VES") == szTdCN.Left(3))
theApp.m_pTdManager->DeleteIpspCETd(TdId);
else if (_T("ERI") == szTdCN.Left(3))
theApp.m_pTdManager->DeleteIpsp2DTd(TdId);
else if (_T("ERT") == szTdCN.Left(3))
theApp.m_pTdManager->DeleteIpsp3DTd(TdId);
}
else if(szTestMethod == "Self-potential")
{
if (_T("VES") == szTdCN.Left(3))
theApp.m_pTdManager->DeleteSPCETd(TdId);
else if (_T("ERI") == szTdCN.Left(3))
theApp.m_pTdManager->DeleteSP2DTd(TdId);
else if (_T("ERT") == szTdCN.Left(3))
theApp.m_pTdManager->DeleteSP3DTd(TdId);
}
}
else
{
//不覆盖,返回
return;
}
}
//----------------------判断任务是否存在---------------------------
if (_T("VES") == szTdCN.Left(3))
{
if (TRUE != theApp.m_pTdManager->UploadCETdFromDev(szPrCN, szTzCN, szTdCN, szSubTdCN, m_pDev))
{
::SetCursor(::LoadCursor(NULL, IDC_ARROW));
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("同步任务失败."));
else
MessageBoxEx(NULL, _T("Upload task failed!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return;
}
}
else if (_T("ERI") == szTdCN.Left(3))
{
if (TRUE == theApp.m_pTdManager->Upload2DTdFromDev(szPrCN, szTzCN, szTdCN, szSubTdCN, m_pDev))
{
/*
if (TRUE == this->m_selTdList.GetCheck(iItemIndex))
{
if (FALSE == theApp.m_pTdManager->DeleteTdInDev(szPrCN, szTzCN, szTdCN, m_pDev))
{
::SetCursor(::LoadCursor(NULL, IDC_ARROW));
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
MessageBox(_T("Delete testing data " + szTdCN + " failed!"));
::SetCursor(::LoadCursor(NULL, IDC_WAIT));
}
}
*/
}
else
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("同步任务失败."));
else
MessageBoxEx(NULL, _T("Upload task failed!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
::SetCursor(::LoadCursor(NULL, IDC_ARROW));
return;
}
}
//waston
else if (_T("ERT") == szTdCN.Left(3))
{
if (TRUE == theApp.m_pTdManager->Upload3DTdFromDev(szPrCN, szTzCN, szTdCN, szSubTdCN, m_pDev))
{
/*选了那个钩钩,机器上的测试任务就会被删掉
if (TRUE == this->m_selTdList.GetCheck(iItemIndex))
{
if (FALSE == theApp.m_pTdManager->DeleteTdInDev(szPrCN, szTzCN, szTdCN, m_pDev))
{
::SetCursor(::LoadCursor(NULL, IDC_ARROW));
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
MessageBox(_T("Delete testing data " + szTdCN + " failed!"));
::SetCursor(::LoadCursor(NULL, IDC_WAIT));
}
}
*/
}
else
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("同步任务失败."));
else
MessageBoxEx(NULL, _T("Upload task failed!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
::SetCursor(::LoadCursor(NULL, IDC_ARROW));
return;
}
}
else if (_T("WEL") == szTdCN.Left(3))
{
BOOL bRes = theApp.m_pTdManager->UploadWellTdFromDev(szPrCN, szTzCN, szTdCN, szSubTdCN, m_pDev);
if (!bRes)
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("同步任务失败."));
else
MessageBoxEx(NULL, _T("Upload task failed!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
::SetCursor(::LoadCursor(NULL, IDC_ARROW));
return;
}
}
//waston
iItemIndex++;
}
::SendMessage(AfxGetMainWnd()->m_hWnd, WM_REFRESH, (WPARAM)OP_TD_SYN, (LPARAM)VAL_ZERO);
m_selTdList.DeleteAllItems();
}
else
{
return;
}
//added by lsq 20160407
//刷新同步的任务列表,使得可以实时刷新
CString ItemCN = _T("");
HTREEITEM hTreeItem = NULL;
hTreeItem = this->m_dmsTree.GetSelectedItem();
if (NULL != hTreeItem)
{
if (0 != this->m_dmsTree.GetItemData(hTreeItem))
{
ItemCN = *(CString*)(this->m_dmsTree.GetItemData(hTreeItem));
}
}
if (!ItemCN.IsEmpty())
{
if (NULL == this->m_dmsTree.GetParentItem(hTreeItem))
{
theApp.m_pTdManager->InitialTDListByProForSyn(this->m_tdList, this->m_pDev->m_szDevSN, ItemCN);
}
else
{
theApp.m_pTdManager->InitialTDListByTzForSyn(this->m_tdList, this->m_pDev->m_szDevSN, ItemCN);
}
}
}
BOOL COpSynTDDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN)
{
return TRUE;
}
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE)
{
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
void COpSynTDDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
UPDATE_EASYSIZE;
// TODO: Add your message handler code here
}
void COpSynTDDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
// Do not call CDialog::OnPaint() for painting messages
}
void COpSynTDDlg::InitULByLanguage(int iLanguage)
{
if (LANG_ZHCN == iLanguage)
{
GetDlgItem(IDC_STATIC_DEVICE_PRO)->SetWindowText(_T("主机设备中的工程"));
GetDlgItem(IDC_STATIC_DEVICE_TASK)->SetWindowText(_T("主机设备中的任务"));
GetDlgItem(IDC_STATIC_UPLOADED)->SetWindowText(_T("需要上传到Geomative Studio的任务列表"));
GetDlgItem(IDC_TD_SEL)->SetWindowText(_T("增加"));
GetDlgItem(IDC_TD_DEL)->SetWindowText(_T("删除"));
GetDlgItem(IDC_TD_UPLOAD)->SetWindowText(_T("上传"));
GetDlgItem(IDC_TD_REMOVE)->SetWindowText(_T("移除"));
GetDlgItem(IDC_CREATE)->SetWindowText(_T(" 新工程"));
GetDlgItem(IDC_DMS_DEL)->SetWindowText(_T(" 删除工程"));
}
}