// 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(" 删除工程")); } }