// PhoneRecordOut.cpp : implementation file // #include "stdafx.h" #include "ylgl.h" #include "PhoneRecordOut.h" #include "MyMdi.H" #include "AVIPlayerDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // PhoneRecordOut IMPLEMENT_DYNCREATE(PhoneRecordOut, MyFormView) PhoneRecordOut::PhoneRecordOut() : MyFormView(PhoneRecordOut::IDD) { //{{AFX_DATA_INIT(PhoneRecordOut) m_filter = _T(""); //}}AFX_DATA_INIT bLoad1 = bLoad2 = bLoad3 = bLoad4 = 0; } PhoneRecordOut::~PhoneRecordOut() { } void PhoneRecordOut::DoDataExchange(CDataExchange* pDX) { MyFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(PhoneRecordOut) DDX_Control(pDX, IDC_LIST8, m_List5); DDX_Control(pDX, IDC_LIST7, m_List4); DDX_Control(pDX, IDC_LIST6, m_List3); DDX_Control(pDX, IDC_LIST4, m_List2); DDX_Control(pDX, IDC_COMBO1, m_combo1); DDX_Control(pDX, IDC_LIST2, m_List1); DDX_Control(pDX, IDC_STATIC1, m_static1); DDX_CBString(pDX, IDC_COMBO1, m_filter); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(PhoneRecordOut, MyFormView) //{{AFX_MSG_MAP(PhoneRecordOut) ON_BN_CLICKED(IDC_BUTclose, OnBUTclose) ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1) ON_WM_TIMER() ON_BN_CLICKED(IDC_BUTTON2, OnButton2) ON_BN_CLICKED(IDC_BUTTON3, OnButton3) ON_BN_CLICKED(IDC_BUTTON4, OnButton4) ON_BN_CLICKED(IDC_BUTTON10, OnButton10) ON_BN_CLICKED(IDC_BUTdel2, OnBUTdel2) ON_BN_CLICKED(IDC_BUTTON6, OnButton6) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // PhoneRecordOut diagnostics #ifdef _DEBUG void PhoneRecordOut::AssertValid() const { MyFormView::AssertValid(); } void PhoneRecordOut::Dump(CDumpContext& dc) const { MyFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // PhoneRecordOut message handlers void PhoneRecordOut::OnInitialUpdate() { MyFormView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class GetDlgItem(IDC_BUTTON4)->EnableWindow(IsHasRights2new(49)); CMyMdi Mdi; Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this); // Here we create the outbar control using the splitter as its parent // and setting its id to the first pane. CRect rc2; GetWindowRect(rc2); ::MoveWindow(m_hWnd, g_rc.left, g_rc.top, g_rc.Width(), g_rc.Height(), TRUE); EnumChildWindows(m_hWnd, (WNDENUMPROC)EnumChildProc, 0); int idarray[] = { IDC_BUTdel2, IDC_BUTTON4, IDC_BUTclose }; int idcount = 3; int btnwid; CRect prerc; for (int a = idcount - 2; a >= 0; a--) { GetDlgItem(idarray[a + 1])->GetWindowRect(prerc); ScreenToClient(prerc); GetDlgItem(idarray[a])->GetWindowRect(rc2); ScreenToClient(rc2); btnwid = rc2.Width(); rc2.right = prerc.left; rc2.left = rc2.right - btnwid; GetDlgItem(idarray[a])->MoveWindow(rc2); } { int idarray[] = { IDC_BUTTON1, IDC_BUTTON6, IDC_BUTTON2, IDC_BUTTON3, IDC_BUTTON10 }; int idcount = 5; int btnwid; CRect prerc; for (int a = 1; a < idcount; a++) { GetDlgItem(idarray[a - 1])->GetWindowRect(prerc); ScreenToClient(prerc); GetDlgItem(idarray[a])->GetWindowRect(rc2); ScreenToClient(rc2); btnwid = rc2.Width(); rc2.left = prerc.right; rc2.right = rc2.left + btnwid; GetDlgItem(idarray[a])->MoveWindow(rc2); } } m_static1.SetFont(&g_titlefont); m_List1.SetHeadings("客人姓名,200;电话号码,200;拨出时间,200"); m_List1.LoadColumnInfo(155); m_List2.SetHeadings("客人姓名,200;电话号码,200;拨出时间,200"); m_List2.LoadColumnInfo(156); m_List3.SetHeadings("员工姓名,200;电话号码,200;拨出时间,200"); m_List3.LoadColumnInfo(157); m_List4.SetHeadings("电话号码,200;拨出时间,200"); m_List4.LoadColumnInfo(158); m_List5.SetHeadings("客人姓名,200;电话号码,200;拨出时间,200"); m_List5.LoadColumnInfo(156); m_combo1.GetWindowRect(rc2); ScreenToClient(rc2); rc2.bottom += 200; m_combo1.MoveWindow(rc2); GetDlgItem(IDC_BUTclose)->GetWindowRect(rc2); SetComboHei(&m_combo1, rc2.Height()); OnButton1(); } void PhoneRecordOut::OnBUTclose() { // TODO: Add your control notification handler code here GetParent()->SendMessage(WM_CLOSE); } void PhoneRecordOut::OnSelchangeCombo1() { // TODO: Add your control notification handler code here SetTimer(1, 100, NULL); } void PhoneRecordOut::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default KillTimer(nIDEvent); // OnButton1(); } BOOL PhoneRecordOut::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class try { if (pMsg->message == WM_KEYDOWN) { switch (pMsg->wParam) { case VK_RETURN: OnButton1(); return 1; case 0x43: // copy if ((GetKeyState(VK_CONTROL) & 0x80)) { GetFocus()->SendMessage(WM_COPY); return TRUE; } break; case 0x56: //Ctrl + V: if ((GetKeyState(VK_CONTROL) & 0x80)) { GetFocus()->SendMessage(WM_PASTE); return TRUE; } break; case 0x58: // cut if ((GetKeyState(VK_CONTROL) & 0x80)) { GetFocus()->SendMessage(WM_CUT); return TRUE; } break; case 0x5A: //undo case 0x59: //redo if ((GetKeyState(VK_CONTROL) & 0x80)) { GetFocus()->SendMessage(WM_UNDO); return TRUE; } break; } } return MyFormView::PreTranslateMessage(pMsg); } catch (...) { } return TRUE; } void PhoneRecordOut::OnButton1() { // TODO: Add your control notification handler code here UpdateData(); m_filter.TrimLeft(); m_filter.TrimRight(); if (!bLoad1) { bLoad1 = 1; g_sendhead.bsql = 0; g_sendhead.code[0] = 113; g_sendhead.tabcount = 1; g_pMainWnd->ProcessChatMessageRequest2(15); if (g_bSendOK == 0)return; DataToArray(&m_List1array); } FillGrid(); } void PhoneRecordOut::OnButton2() { // TODO: Add your control notification handler code here UpdateData(); m_filter.TrimLeft(); m_filter.TrimRight(); if (!bLoad2) { bLoad2 = 1; g_sendhead.bsql = 0; g_sendhead.code[0] = 114; g_sendhead.tabcount = 1; g_pMainWnd->ProcessChatMessageRequest2(15); if (g_bSendOK == 0)return; DataToArray(&m_List2array); } FillGrid2(); } void PhoneRecordOut::OnButton3() { // TODO: Add your control notification handler code here UpdateData(); m_filter.TrimLeft(); m_filter.TrimRight(); if (!bLoad3) { bLoad3 = 1; g_sendhead.bsql = 0; g_sendhead.code[0] = 115; g_sendhead.tabcount = 1; g_pMainWnd->ProcessChatMessageRequest2(15); if (g_bSendOK == 0)return; DataToArray(&m_List3array); } FillGrid3(); } void PhoneRecordOut::OnButton10() { // TODO: Add your control notification handler code here UpdateData(); if (!bLoad4) { bLoad4 = 1; g_sendhead.bsql = 0; g_sendhead.code[0] = 116; g_sendhead.tabcount = 1; g_pMainWnd->ProcessChatMessageRequest2(15); if (g_bSendOK == 0)return; DataToArray(&m_List4array); } FillGrid4(); } void PhoneRecordOut::FillGrid(int mode) { m_List1.ShowWindow(SW_SHOW); m_List2.ShowWindow(SW_HIDE); m_List3.ShowWindow(SW_HIDE); m_List4.ShowWindow(SW_HIDE); m_List5.ShowWindow(SW_HIDE); m_List1.DeleteAllItems2(); int ii = 0; m_List1.m_arLabels.SetSize(m_List1array.GetSize(), 1); int count = 0; if (m_filter.IsEmpty()) { for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++) { m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii)); } } else { for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++) { if (m_List1array.ElementAt(ii).ElementAt(0).Find(m_filter) != -1 || \ m_List1array.ElementAt(ii).ElementAt(1).Find(m_filter) != -1 || m_List1array.ElementAt(ii).ElementAt(2).Find(m_filter) != -1) { m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii)); } } } m_List1.m_arLabels.SetSize(count, 1); ii = count; m_List1.m_LabelCount = ii; m_List1.SetItemCountEx(ii); } void PhoneRecordOut::FillGrid2() { m_List2.ShowWindow(SW_SHOW); m_List1.ShowWindow(SW_HIDE); m_List3.ShowWindow(SW_HIDE); m_List4.ShowWindow(SW_HIDE); m_List5.ShowWindow(SW_HIDE); m_List2.DeleteAllItems2(); int ii = 0; m_List2.m_arLabels.SetSize(m_List2array.GetSize(), 1); int count = 0; if (m_filter.IsEmpty()) { for (ii = 0; ii < m_List2.m_arLabels.GetSize(); ii++) { m_List2.m_arLabels.ElementAt(count++).Copy(m_List2array.ElementAt(ii)); } } else { for (ii = 0; ii < m_List2.m_arLabels.GetSize(); ii++) { if (m_List2array.ElementAt(ii).ElementAt(0).Find(m_filter) != -1 || \ m_List2array.ElementAt(ii).ElementAt(1).Find(m_filter) != -1 || m_List2array.ElementAt(ii).ElementAt(2).Find(m_filter) != -1) { m_List2.m_arLabels.ElementAt(count++).Copy(m_List2array.ElementAt(ii)); } } } m_List2.m_arLabels.SetSize(count, 1); ii = count; m_List2.m_LabelCount = ii; m_List2.SetItemCountEx(ii); } void PhoneRecordOut::FillGrid3() { m_List3.ShowWindow(SW_SHOW); m_List1.ShowWindow(SW_HIDE); m_List2.ShowWindow(SW_HIDE); m_List4.ShowWindow(SW_HIDE); m_List5.ShowWindow(SW_HIDE); m_List3.DeleteAllItems2(); int ii = 0; m_List3.m_arLabels.SetSize(m_List3array.GetSize(), 1); int count = 0; if (m_filter.IsEmpty()) { for (ii = 0; ii < m_List3.m_arLabels.GetSize(); ii++) { m_List3.m_arLabels.ElementAt(count++).Copy(m_List3array.ElementAt(ii)); } } else { for (ii = 0; ii < m_List3.m_arLabels.GetSize(); ii++) { if (m_List3array.ElementAt(ii).ElementAt(0).Find(m_filter) != -1 || \ m_List3array.ElementAt(ii).ElementAt(1).Find(m_filter) != -1 || m_List3array.ElementAt(ii).ElementAt(2).Find(m_filter) != -1) { m_List3.m_arLabels.ElementAt(count++).Copy(m_List3array.ElementAt(ii)); } } } m_List3.m_arLabels.SetSize(count, 1); ii = count; m_List3.m_LabelCount = ii; m_List3.SetItemCountEx(ii); } void PhoneRecordOut::FillGrid4() { m_List4.ShowWindow(SW_SHOW); m_List1.ShowWindow(SW_HIDE); m_List2.ShowWindow(SW_HIDE); m_List3.ShowWindow(SW_HIDE); m_List5.ShowWindow(SW_HIDE); m_List4.DeleteAllItems2(); int ii = 0; m_List4.m_arLabels.SetSize(m_List4array.GetSize(), 1); int count = 0; if (m_filter.IsEmpty()) { for (ii = 0; ii < m_List4.m_arLabels.GetSize(); ii++) { m_List4.m_arLabels.ElementAt(count++).Copy(m_List4array.ElementAt(ii)); } } else { for (ii = 0; ii < m_List4.m_arLabels.GetSize(); ii++) { if (m_List4array.ElementAt(ii).ElementAt(0).Find(m_filter) != -1 || \ m_List4array.ElementAt(ii).ElementAt(1).Find(m_filter) != -1) { m_List4.m_arLabels.ElementAt(count++).Copy(m_List4array.ElementAt(ii)); } } } m_List4.m_arLabels.SetSize(count, 1); ii = count; m_List4.m_LabelCount = ii; m_List4.SetItemCountEx(ii); } void PhoneRecordOut::FillGrid5() { m_List5.ShowWindow(SW_SHOW); m_List1.ShowWindow(SW_HIDE); m_List2.ShowWindow(SW_HIDE); m_List3.ShowWindow(SW_HIDE); m_List4.ShowWindow(SW_HIDE); m_List5.DeleteAllItems2(); int ii = 0; m_List5.m_arLabels.SetSize(m_List5array.GetSize(), 1); int count = 0; if (m_filter.IsEmpty()) { for (ii = 0; ii < m_List5.m_arLabels.GetSize(); ii++) { m_List5.m_arLabels.ElementAt(count++).Copy(m_List5array.ElementAt(ii)); } } else { for (ii = 0; ii < m_List5.m_arLabels.GetSize(); ii++) { if (m_List5array.ElementAt(ii).ElementAt(0).Find(m_filter) != -1 || \ m_List5array.ElementAt(ii).ElementAt(1).Find(m_filter) != -1) { m_List5.m_arLabels.ElementAt(count++).Copy(m_List5array.ElementAt(ii)); } } } m_List5.m_arLabels.SetSize(count, 1); ii = count; m_List5.m_LabelCount = ii; m_List5.SetItemCountEx(ii); } void PhoneRecordOut::OnButton4() { // TODO: Add your control notification handler code here if (m_List1.IsWindowVisible()) { POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox("请先选中您要回放的录音!", MB_ICONINFORMATION); return; } int iItem = m_List1.GetNextSelectedItem(pos); CString phone = m_List1.GetItemText(iItem, 1); CString datetime = m_List1.GetItemText(iItem, 2); datetime.Replace(":", ""); CString path = g_path6 + "\\客户电话(拨出)\\" + phone + "\\" + datetime + ".mp3"; if (::PathFileExists(path)) { CAVIPlayerDlg dlg; dlg.m_Path = path; dlg.DoModal(); } else AfxMessageBox("文件未找到!", MB_ICONINFORMATION); } if (m_List2.IsWindowVisible()) { POSITION pos; pos = m_List2.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox("请先选中您要回放的录音!", MB_ICONINFORMATION); return; } int iItem = m_List2.GetNextSelectedItem(pos); CString phone = m_List2.GetItemText(iItem, 1); CString datetime = m_List2.GetItemText(iItem, 2); datetime.Replace(":", ""); CString path = g_path6 + "\\意向客户(拨出)\\" + phone + "\\" + datetime + ".mp3"; if (::PathFileExists(path)) { CAVIPlayerDlg dlg; dlg.m_Path = path; dlg.DoModal(); } else AfxMessageBox("文件未找到!", MB_ICONINFORMATION); } if (m_List3.IsWindowVisible()) { POSITION pos; pos = m_List3.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox("请先选中您要回放的录音!", MB_ICONINFORMATION); return; } int iItem = m_List3.GetNextSelectedItem(pos); CString name = m_List3.GetItemText(iItem, 0); CString datetime = m_List3.GetItemText(iItem, 2); datetime.Replace(":", ""); CString path = g_path6 + "\\员工电话(拨出)\\" + name + "\\" + datetime + ".mp3"; if (::PathFileExists(path)) { CAVIPlayerDlg dlg; dlg.m_Path = path; dlg.DoModal(); } else AfxMessageBox("文件未找到!", MB_ICONINFORMATION); } if (m_List4.IsWindowVisible()) { POSITION pos; pos = m_List4.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox("请先选中您要回放的录音!", MB_ICONINFORMATION); return; } int iItem = m_List4.GetNextSelectedItem(pos); CString phone = m_List4.GetItemText(iItem, 0); CString datetime = m_List4.GetItemText(iItem, 1); datetime.Replace(":", ""); CString path = g_path6 + "\\未知电话(拨出)\\" + phone + "\\" + datetime + ".mp3"; if (::PathFileExists(path)) { CAVIPlayerDlg dlg; dlg.m_Path = path; dlg.DoModal(); } else AfxMessageBox("文件未找到!", MB_ICONINFORMATION); } if (m_List5.IsWindowVisible()) { POSITION pos; pos = m_List5.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox("请先选中您要回放的录音!", MB_ICONINFORMATION); return; } int iItem = m_List5.GetNextSelectedItem(pos); CString phone = m_List5.GetItemText(iItem, 1); CString datetime = m_List5.GetItemText(iItem, 2); datetime.Replace(":", ""); CString path = g_path6 + "\\老客户(拨出)\\" + phone + "\\" + datetime + ".mp3"; if (::PathFileExists(path)) { CAVIPlayerDlg dlg; dlg.m_Path = path; dlg.DoModal(); } else AfxMessageBox("文件未找到!", MB_ICONINFORMATION); } } void PhoneRecordOut::OnBUTdel2() { // TODO: Add your control notification handler code here if (IsHasRights2new(49) == 0)return; // TODO: Add your control notification handler code here if (m_List1.IsWindowVisible()) { POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox("请先选中您要删除的记录!", MB_ICONINFORMATION); return; } if (AfxMessageBox("删除后将无法恢复,是否继续?", MB_YESNO | MB_ICONINFORMATION) != IDYES)return; int iItem = m_List1.GetNextSelectedItem(pos); CString phone = m_List1.GetItemText(iItem, 1); CString datetime = m_List1.GetItemText(iItem, 2); CString sql; sql.Format("delete from phonerecordout where datetime='%s' ", datetime); g_sendhead.bsql = 1; g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return; datetime.Replace(":", ""); CString path = g_path6 + "\\客户电话(拨出)\\" + phone + "\\" + datetime + ".mp3"; ::DeleteFile(path); // 删除mp3; bLoad1 = 0; OnButton1(); } if (m_List2.IsWindowVisible()) { POSITION pos; pos = m_List2.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox("请先选中您要删除的记录!", MB_ICONINFORMATION); return; } if (AfxMessageBox("删除后将无法恢复,是否继续?", MB_YESNO | MB_ICONINFORMATION) != IDYES)return; int iItem = m_List2.GetNextSelectedItem(pos); CString phone = m_List2.GetItemText(iItem, 1); CString datetime = m_List2.GetItemText(iItem, 2); CString sql; sql.Format("delete from client2phonerecordout where datetime='%s' ", datetime); g_sendhead.bsql = 1; g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return; datetime.Replace(":", ""); CString path = g_path6 + "\\意向客户(拨出)\\" + phone + "\\" + datetime + ".mp3"; ::DeleteFile(path); // 删除mp3; bLoad2 = 0; OnButton2(); } if (m_List3.IsWindowVisible()) { POSITION pos; pos = m_List3.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox("请先选中您要删除的记录!", MB_ICONINFORMATION); return; } if (AfxMessageBox("删除后将无法恢复,是否继续?", MB_YESNO | MB_ICONINFORMATION) != IDYES)return; int iItem = m_List3.GetNextSelectedItem(pos); CString name = m_List3.GetItemText(iItem, 0); CString datetime = m_List3.GetItemText(iItem, 2); CString sql; sql.Format("delete from employeephonerecordout where datetime='%s' ", datetime); g_sendhead.bsql = 1; g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return; datetime.Replace(":", ""); CString path = g_path6 + "\\员工电话(拨出)\\" + name + "\\" + datetime + ".mp3"; ::DeleteFile(path); // 删除mp3; bLoad3 = 0; OnButton3(); } if (m_List4.IsWindowVisible()) { POSITION pos; pos = m_List4.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox("请先选中您要删除的记录!", MB_ICONINFORMATION); return; } if (AfxMessageBox("删除后将无法恢复,是否继续?", MB_YESNO | MB_ICONINFORMATION) != IDYES)return; int iItem = m_List4.GetNextSelectedItem(pos); CString phone = m_List4.GetItemText(iItem, 0); CString datetime = m_List4.GetItemText(iItem, 1); CString sql; sql.Format("delete from unknownphonerecordout where datetime='%s' ", datetime); g_sendhead.bsql = 1; g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return; datetime.Replace(":", ""); CString path = g_path6 + "\\未知电话(拨出)\\" + phone + "\\" + datetime + ".mp3"; ::DeleteFile(path); // 删除mp3; bLoad4 = 0; OnButton10(); } if (m_List5.IsWindowVisible()) { POSITION pos; pos = m_List5.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox("请先选中您要删除的记录!", MB_ICONINFORMATION); return; } if (AfxMessageBox("删除后将无法恢复,是否继续?", MB_YESNO | MB_ICONINFORMATION) != IDYES)return; int iItem = m_List5.GetNextSelectedItem(pos); CString phone = m_List5.GetItemText(iItem, 1); CString datetime = m_List5.GetItemText(iItem, 2); CString sql; sql.Format("delete from client3phonerecordout where datetime='%s' ", datetime); g_sendhead.bsql = 1; g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return; datetime.Replace(":", ""); CString path = g_path6 + "\\老客户(拨出)\\" + phone + "\\" + datetime + ".mp3"; ::DeleteFile(path); // 删除mp3; bLoad5 = 0; OnButton6(); } } void PhoneRecordOut::OnButton6() { // TODO: Add your control notification handler code here UpdateData(); m_filter.TrimLeft(); m_filter.TrimRight(); if (!bLoad5) { bLoad5 = 1; g_sendhead.bsql = 0; g_sendhead.code[0] = 176; g_sendhead.tabcount = 1; g_pMainWnd->ProcessChatMessageRequest2(15); if (g_bSendOK == 0)return; DataToArray(&m_List5array); } FillGrid5(); }