// DlgServiceTracking.cpp : 实现文件 // #include "stdafx.h" #include "YLGL.h" #include "DlgServiceTracking.h" #include "DlgServiceTrackingInfo.h" #include "ShowLOg.h" // CDlgServiceTracking 对话框 IMPLEMENT_DYNAMIC(CDlgServiceTracking, CDialog) CDlgServiceTracking::CDlgServiceTracking(CWnd* pParent /*=NULL*/) : CDialog(CDlgServiceTracking::IDD, pParent) , m_radio(3) { } CDlgServiceTracking::~CDlgServiceTracking() { } void CDlgServiceTracking::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST1, m_list); DDX_Control(pDX, CBOX_ORDER_TAKER_DEPT, m_cbox_dept); DDX_Control(pDX, CBOX_ORDER_TAKER, m_cbox_staff); DDX_Control(pDX, DTPICKER_BEGIN, m_dt_begin); DDX_Control(pDX, DTPICKER_END, m_dt_end); } BEGIN_MESSAGE_MAP(CDlgServiceTracking, CDialog) ON_WM_SYSCOMMAND() ON_WM_CTLCOLOR() ON_BN_CLICKED(RADIO1, &CDlgServiceTracking::OnBnClickedRadio1) ON_BN_CLICKED(RADIO2, &CDlgServiceTracking::OnBnClickedRadio2) ON_BN_CLICKED(RADIO3, &CDlgServiceTracking::OnBnClickedRadio3) ON_BN_CLICKED(CHECK_DEPT, &CDlgServiceTracking::OnBnClickedDept) ON_BN_CLICKED(CHECK_ORDER_TAKER, &CDlgServiceTracking::OnBnClickedOrderTaker) ON_NOTIFY(DTN_DATETIMECHANGE, DTPICKER_BEGIN, &CDlgServiceTracking::OnDtnDatetimechangeBegin) ON_NOTIFY(DTN_DATETIMECHANGE, DTPICKER_END, &CDlgServiceTracking::OnDtnDatetimechangeEnd) ON_CBN_SELCHANGE(CBOX_ORDER_TAKER_DEPT, &CDlgServiceTracking::OnCbnSelchangeOrderTakerDept) ON_BN_CLICKED(IDOK, &CDlgServiceTracking::OnBnClickedOk) ON_CBN_CLOSEUP(CBOX_ORDER_TAKER, &CDlgServiceTracking::OnCbnCloseupOrderTaker) ON_NOTIFY(NM_DBLCLK, IDC_LIST1, &CDlgServiceTracking::OnNMDblclkList1) ON_BN_CLICKED(RADIO4, &CDlgServiceTracking::OnBnClickedRadio4) ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST1, &CDlgServiceTracking::OnNMCustomdrawList1) ON_BN_CLICKED(BTN_BALANCING_ACCOUNT, &CDlgServiceTracking::OnBnClickedBalancingAccount) ON_BN_CLICKED(BTN_DEPT_REFRESH, &CDlgServiceTracking::OnBnClickedDeptRefresh) END_MESSAGE_MAP() // CDlgServiceTracking 消息处理程序 BOOL CDlgServiceTracking::OnInitDialog() { CDialog::OnInitDialog(); // TODO: 在此添加额外的初始化 MoveWindow(&g_rc); CRect rcWnd; GetWindowRect(rcWnd); CRect rcList; m_list.GetWindowRect(rcList); rcList.right = rcWnd.right - 15; rcList.bottom = rcWnd.bottom - 15; ScreenToClient(rcList); m_list.MoveWindow(rcList); // 设置默认radio; CButton* radio=(CButton*)GetDlgItem(RADIO4); radio->SetCheck(1); // 设置查询的开始时间; CTimeSpan tSpan(61, 0, 0, 0); CTime tBegin = CTime::GetCurrentTime() - tSpan; m_dt_begin.SetTime(&tBegin); UpdateData(); // 初始化list列头; m_list.SetHeadings( _T("id, 60"), _T("订单号, 120"), _T("老板, 120"), _T("影楼, 120"), _T("老板电话, 60"), _T("服务项目, 120"), _T("应收款,60"), _T("实收款,60"), _T("欠款,60"), _T("接单人,60"), _T("接单部门,60"), _T("对接人,60"), _T("对接部门,60"), _T("服务状态,60"), _T("录单人,60"), _T("录入时间,60"), NULL); // 禁用部门和员工下拉框; m_cbox_dept.EnableWindow(FALSE); m_cbox_staff.EnableWindow(FALSE); // 数据获取; GetDepartment(); GetServiceTrackingInfo(); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } void CDlgServiceTracking::OnSysCommand(UINT nID, LPARAM lParam) { // 禁止移动窗口; if (nID == SC_MOVE || nID == 0xF012) return; CDialog::OnSysCommand(nID, lParam); } HBRUSH CDlgServiceTracking::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 在此更改 DC 的任何属性 switch(nCtlColor) { case CTLCOLOR_DLG: { return CreateSolidBrush(g_clr_dlg); } break; case CTLCOLOR_BTN: break; case CTLCOLOR_STATIC: { pDC->SetBkMode(TRANSPARENT); return CreateSolidBrush(g_clr_dlg); } break; } // TODO: 如果默认的不是所需画笔,则返回另一个画笔 return hbr; } void CDlgServiceTracking::OnOK() { // TODO: 在此添加专用代码和/或调用基类 //CDialog::OnOK(); } void CDlgServiceTracking::GetDepartment() { // 从服务器获取部门信息; g_sendhead.bsql = 0; g_sendhead.code[0] = 237; g_sendhead.tabcount = 1; g_pMainWnd->ProcessChatMessageRequest2(3); if (g_bSendOK == 0)return; DataToArray(&m_AryDepartment); // 初始化CBOX_DEPT控件; for (int i = 0; i < m_AryDepartment.GetSize(); i++ ) { m_cbox_dept.AddString(DAL::Case_3_GetDepartment(m_AryDepartment,i)); } m_cbox_dept.AddString(_T("无部门")); } BOOL CDlgServiceTracking::IsOtherDept(CString strDept) { // 排除无接单部门的; if ( strDept.IsEmpty() ) return FALSE; for ( int i = 0; i < m_AryDepartment.GetSize() - 1; i++ ) { if ( strDept == m_AryDepartment.ElementAt(i).ElementAt(0) ) return FALSE; } return TRUE; } void CDlgServiceTracking::GetServiceTrackingInfo() { // 查询时间; CTime tBegin; CTime tEnd; m_dt_begin.GetTime(tBegin); m_dt_end.GetTime(tEnd); CString strSQL; strSQL.Format(_T("[date] >= '%s' and [date] <= '%s'"), tBegin.Format(_T("%Y-%m-%d")), tEnd.Format(_T("%Y-%m-%d"))); g_sendhead.bsql = 0; g_sendhead.code[0] = 235; g_sendhead.tabcount = 1; g_pMainWnd->ProcessChatMessageRequest2(strSQL); if (g_bSendOK == 0) return; CArray AryServiceTracking; DataToArray(&AryServiceTracking); CString strArrears = _T(""); // 欠款; m_AryServiceTracking.RemoveAll(); m_AryServiceTracking.SetSize(AryServiceTracking.GetSize(), 1); for ( int i = 0; i < AryServiceTracking.GetSize(); i++ ) { m_AryServiceTracking.ElementAt(i).RemoveAll(); m_AryServiceTracking.ElementAt(i).Add(DAL::Case_235_GetServiceTracking_Id(AryServiceTracking,i)); m_AryServiceTracking.ElementAt(i).Add(DAL::Case_235_GetServiceTracking_Order(AryServiceTracking,i)); m_AryServiceTracking.ElementAt(i).Add(DAL::Case_235_GetServiceTracking_Customer(AryServiceTracking,i)); m_AryServiceTracking.ElementAt(i).Add(DAL::Case_235_GetServiceTracking_CustomerStudio(AryServiceTracking,i)); m_AryServiceTracking.ElementAt(i).Add(DAL::Case_235_GetServiceTracking_CustomerPhone(AryServiceTracking,i)); m_AryServiceTracking.ElementAt(i).Add(DAL::Case_235_GetServiceTracking_ReceiptItem(AryServiceTracking,i)); m_AryServiceTracking.ElementAt(i).Add(DAL::Case_235_GetServiceTracking_Receivables(AryServiceTracking,i)); m_AryServiceTracking.ElementAt(i).Add(DAL::Case_235_GetServiceTracking_AmountReceived(AryServiceTracking,i)); // 计算欠款; strArrears.Format(_T("%ld"), _tstoi(DAL::Case_235_GetServiceTracking_Receivables(AryServiceTracking,i)) - _tstoi(DAL::Case_235_GetServiceTracking_AmountReceived(AryServiceTracking,i))); m_AryServiceTracking.ElementAt(i).Add(strArrears); m_AryServiceTracking.ElementAt(i).Add(DAL::Case_235_GetServiceTracking_OrderTaker(AryServiceTracking,i)); m_AryServiceTracking.ElementAt(i).Add(DAL::Case_235_GetServiceTracking_OrderTakerDept(AryServiceTracking,i)); m_AryServiceTracking.ElementAt(i).Add(DAL::Case_235_GetServiceTracking_PickupMan(AryServiceTracking,i)); m_AryServiceTracking.ElementAt(i).Add(DAL::Case_235_GetServiceTracking_PickupDept(AryServiceTracking,i)); m_AryServiceTracking.ElementAt(i).Add(DAL::Case_235_GetServiceTracking_ServiceState(AryServiceTracking,i)); m_AryServiceTracking.ElementAt(i).Add(DAL::Case_235_GetServiceTracking_RecordClerk(AryServiceTracking,i)); m_AryServiceTracking.ElementAt(i).Add(DAL::Case_235_GetServiceTracking_RecordDate(AryServiceTracking,i)); } FillList(); } void CDlgServiceTracking::FillList() { // 服务状态 ; CString strServiceState; if ( m_radio == 0 ) strServiceState = _T("未服务"); else if ( m_radio == 1 ) strServiceState = _T("服务中"); else if ( m_radio == 2 ) strServiceState = _T("服务完成"); else if ( m_radio == 3 ) strServiceState = _T("全部"); // 接单部门; CString strOrderDept = _T(""); BOOL bCheck = ((CButton*)(GetDlgItem(CHECK_DEPT)))->GetCheck(); if ( bCheck ) { if ( m_cbox_dept.GetCurSel() != CB_ERR ) m_cbox_dept.GetLBText(m_cbox_dept.GetCurSel(), strOrderDept); } // 接单人员; CString strOrderTaker = _T(""); bCheck = ((CButton*)(GetDlgItem(CHECK_ORDER_TAKER)))->GetCheck(); if ( bCheck ) { if ( m_cbox_staff.GetCurSel() != CB_ERR ) m_cbox_staff.GetLBText(m_cbox_staff.GetCurSel(), strOrderTaker); } // 查询关键字; CString strQueryKey = _T(""); GetDlgItemText(TX_QUERY, strQueryKey); int nIndex = 0; // 相当于订单数; DWORD dwReceivables = 0; // 应收款; DWORD dwReceipts = 0; // 实收款; DWORD dwArrears = 0; // 欠款总数; m_list.m_AryList.RemoveAll(); m_list.DeleteAllItems(); m_list.m_AryList.SetSize(m_AryServiceTracking.GetSize(), 1); for ( int i = 0; i < m_AryServiceTracking.GetSize(); i++ ) { // 服务状态首层划分; if ( strServiceState == _T("全部") ) { if ( m_AryServiceTracking.ElementAt(i).ElementAt(13) == _T("服务完成") ) { continue; } } else if ( m_AryServiceTracking.ElementAt(i).ElementAt(13) != strServiceState ) { continue; } if ( strOrderDept.IsEmpty() && !strOrderTaker.IsEmpty() ) {// 选择接单人; if ( m_AryServiceTracking.ElementAt(i).ElementAt(9) == strOrderTaker ) { if ( strQueryKey.IsEmpty() ) { m_list.m_AryList.ElementAt(nIndex).RemoveAll(); m_list.m_AryList.ElementAt(nIndex).Copy(m_AryServiceTracking.ElementAt(i)); // 应收款累计; dwReceivables += _tstoi(m_AryServiceTracking.ElementAt(i).ElementAt(6)); // 实收款累计; dwReceipts += _tstoi(m_AryServiceTracking.ElementAt(i).ElementAt(7)); nIndex++; } else { if ( m_AryServiceTracking.ElementAt(i).ElementAt(1).Find(strQueryKey) != -1 || // 订单号; m_AryServiceTracking.ElementAt(i).ElementAt(2).Find(strQueryKey) != -1 || // 老板; m_AryServiceTracking.ElementAt(i).ElementAt(3).Find(strQueryKey) != -1 || // 影楼; m_AryServiceTracking.ElementAt(i).ElementAt(4).Find(strQueryKey) != -1 || // 老板电号; m_AryServiceTracking.ElementAt(i).ElementAt(5).Find(strQueryKey) != -1 || // 服务项目; m_AryServiceTracking.ElementAt(i).ElementAt(11).Find(strQueryKey) != -1 || // 对接人; m_AryServiceTracking.ElementAt(i).ElementAt(12).Find(strQueryKey) != -1 || // 对接部门; m_AryServiceTracking.ElementAt(i).ElementAt(13).Find(strQueryKey) != -1 // 服务状态; ) { m_list.m_AryList.ElementAt(nIndex).RemoveAll(); m_list.m_AryList.ElementAt(nIndex).Copy(m_AryServiceTracking.ElementAt(i)); // 应收款累计; dwReceivables += _tstoi(m_AryServiceTracking.ElementAt(i).ElementAt(6)); // 实收款累计; dwReceipts += _tstoi(m_AryServiceTracking.ElementAt(i).ElementAt(7)); nIndex++; } } } } else if ( !strOrderDept.IsEmpty() && strOrderTaker.IsEmpty() ) {// 选择部门; if ( strOrderDept == _T("其他部门")) { if ( !IsOtherDept(m_AryServiceTracking.ElementAt(i).ElementAt(10)) ) continue; } else if ( strOrderDept == _T("无部门") ) { // 接单部门为空的; if (!m_AryServiceTracking.ElementAt(i).ElementAt(10).IsEmpty()) continue; } else if ( m_AryServiceTracking.ElementAt(i).ElementAt(10) != strOrderDept ) { continue; } if ( strQueryKey.IsEmpty() ) { m_list.m_AryList.ElementAt(nIndex).RemoveAll(); m_list.m_AryList.ElementAt(nIndex).Copy(m_AryServiceTracking.ElementAt(i)); // 应收款累计; dwReceivables += _tstoi(m_AryServiceTracking.ElementAt(i).ElementAt(6)); // 实收款累计; dwReceipts += _tstoi(m_AryServiceTracking.ElementAt(i).ElementAt(7)); nIndex++; } else { if ( m_AryServiceTracking.ElementAt(i).ElementAt(1).Find(strQueryKey) != -1 || // 订单号; m_AryServiceTracking.ElementAt(i).ElementAt(2).Find(strQueryKey) != -1 || // 老板; m_AryServiceTracking.ElementAt(i).ElementAt(3).Find(strQueryKey) != -1 || // 影楼; m_AryServiceTracking.ElementAt(i).ElementAt(4).Find(strQueryKey) != -1 || // 老板电号; m_AryServiceTracking.ElementAt(i).ElementAt(5).Find(strQueryKey) != -1 || // 服务项目; m_AryServiceTracking.ElementAt(i).ElementAt(9).Find(strQueryKey) != -1 || // 接单人; m_AryServiceTracking.ElementAt(i).ElementAt(11).Find(strQueryKey) != -1 || // 对接人; m_AryServiceTracking.ElementAt(i).ElementAt(12).Find(strQueryKey) != -1 || // 对接部门; m_AryServiceTracking.ElementAt(i).ElementAt(13).Find(strQueryKey) != -1 // 服务状态; ) { m_list.m_AryList.ElementAt(nIndex).RemoveAll(); m_list.m_AryList.ElementAt(nIndex).Copy(m_AryServiceTracking.ElementAt(i)); // 应收款累计; dwReceivables += _tstoi(m_AryServiceTracking.ElementAt(i).ElementAt(6)); // 实收款累计; dwReceipts += _tstoi(m_AryServiceTracking.ElementAt(i).ElementAt(7)); nIndex++; } } } else {// 部门和员工均未选; if ( strQueryKey.IsEmpty() ) { m_list.m_AryList.ElementAt(nIndex).RemoveAll(); m_list.m_AryList.ElementAt(nIndex).Copy(m_AryServiceTracking.ElementAt(i)); // 应收款累计; dwReceivables += _tstoi(m_AryServiceTracking.ElementAt(i).ElementAt(6)); // 实收款累计; dwReceipts += _tstoi(m_AryServiceTracking.ElementAt(i).ElementAt(7)); nIndex++; } else { if ( m_AryServiceTracking.ElementAt(i).ElementAt(1).Find(strQueryKey) != -1 || // 订单号; m_AryServiceTracking.ElementAt(i).ElementAt(2).Find(strQueryKey) != -1 || // 老板; m_AryServiceTracking.ElementAt(i).ElementAt(3).Find(strQueryKey) != -1 || // 影楼; m_AryServiceTracking.ElementAt(i).ElementAt(4).Find(strQueryKey) != -1 || // 老板电号; m_AryServiceTracking.ElementAt(i).ElementAt(5).Find(strQueryKey) != -1 || // 服务项目; m_AryServiceTracking.ElementAt(i).ElementAt(9).Find(strQueryKey) != -1 || // 接单人; m_AryServiceTracking.ElementAt(i).ElementAt(11).Find(strQueryKey) != -1 || // 对接人; m_AryServiceTracking.ElementAt(i).ElementAt(12).Find(strQueryKey) != -1 || // 对接部门; m_AryServiceTracking.ElementAt(i).ElementAt(13).Find(strQueryKey) != -1 // 服务状态; ) { m_list.m_AryList.ElementAt(nIndex).RemoveAll(); m_list.m_AryList.ElementAt(nIndex).Copy(m_AryServiceTracking.ElementAt(i)); // 应收款累计; dwReceivables += _tstoi(m_AryServiceTracking.ElementAt(i).ElementAt(6)); // 实收款累计; dwReceipts += _tstoi(m_AryServiceTracking.ElementAt(i).ElementAt(7)); nIndex++; } } } } CString str; str.Format(_T("%d"), nIndex); SetDlgItemText(TX_ORDER_COUNT, str); str.Format(_T("%ld"), dwReceivables - dwReceipts); SetDlgItemText(TX_ARREARS, str); m_list.m_AryList.SetSize(nIndex,1); m_list.m_AryList.FreeExtra(); m_list.SetItemCountEx(nIndex); } void CDlgServiceTracking::OnBnClickedRadio1() { m_radio = 0; FillList(); } void CDlgServiceTracking::OnBnClickedRadio2() { m_radio = 1; FillList(); } void CDlgServiceTracking::OnBnClickedRadio3() { m_radio = 2; FillList(); } void CDlgServiceTracking::OnBnClickedRadio4() { m_radio = 3; FillList(); } void CDlgServiceTracking::OnBnClickedDept() { BOOL bCheck =((CButton*)GetDlgItem(CHECK_DEPT))->GetCheck(); if ( bCheck ) { ((CButton*)GetDlgItem(CHECK_ORDER_TAKER))->SetCheck(FALSE); m_cbox_staff.SetCurSel(-1); m_cbox_staff.EnableWindow(FALSE); m_cbox_dept.EnableWindow(); } else { m_cbox_dept.SetCurSel(-1); FillList(); } } void CDlgServiceTracking::OnBnClickedOrderTaker() { BOOL bCheck =((CButton*)GetDlgItem(CHECK_ORDER_TAKER))->GetCheck(); if ( bCheck ) { ((CButton*)GetDlgItem(CHECK_DEPT))->SetCheck(FALSE); m_cbox_dept.SetCurSel(-1); m_cbox_dept.EnableWindow(FALSE); m_cbox_staff.EnableWindow(); } else { m_cbox_staff.SetCurSel(-1); FillList(); } } void CDlgServiceTracking::OnDtnDatetimechangeBegin(NMHDR *pNMHDR, LRESULT *pResult) { LPNMDATETIMECHANGE pDTChange = reinterpret_cast(pNMHDR); GetServiceTrackingInfo(); *pResult = 0; } void CDlgServiceTracking::OnDtnDatetimechangeEnd(NMHDR *pNMHDR, LRESULT *pResult) { LPNMDATETIMECHANGE pDTChange = reinterpret_cast(pNMHDR); GetServiceTrackingInfo(); *pResult = 0; } void CDlgServiceTracking::OnCbnSelchangeOrderTakerDept() { FillList(); } void CDlgServiceTracking::OnBnClickedOk() { FillList(); } void CDlgServiceTracking::OnCbnCloseupOrderTaker() { FillList(); } void CDlgServiceTracking::OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); if ( pNMItemActivate->iItem != -1) { // id; CString strId = m_list.GetItemText(pNMItemActivate->iItem, 0); // 订单号; CString strOrder = m_list.GetItemText(pNMItemActivate->iItem, 1); // 收款项目(服务项目); CString strReceiptsItem = m_list.GetItemText(pNMItemActivate->iItem, 5); // 应收款; CString strReceivables = m_list.GetItemText(pNMItemActivate->iItem, 6); // 实收款; CString strAmountReceived = m_list.GetItemText(pNMItemActivate->iItem, 7); // 接单人; CString strOrderTaker = m_list.GetItemText(pNMItemActivate->iItem, 9); // 对接人; CString strPickupMan = m_list.GetItemText(pNMItemActivate->iItem, 11); // 服务状态; CString strServiceState = m_list.GetItemText(pNMItemActivate->iItem, 13); CDlgServiceTrackingInfo dlg; dlg.m_pAryString = &m_list.m_AryList.ElementAt(pNMItemActivate->iItem); dlg.DoModal(); if ( dlg.m_bModify ) { #if 0 GetServiceTrackingInfo(); FillList(); #else // 只更新本条记录; INT nSize = m_AryServiceTracking.GetSize(); for ( int i = 0; i < nSize; i++ ) { if ( m_AryServiceTracking.ElementAt(i).ElementAt(0) == strId && m_AryServiceTracking.ElementAt(i).ElementAt(1) == strOrder ) { // 对接人; m_AryServiceTracking.ElementAt(i).SetAt(11, dlg.m_strPickupMan); // 对接部门; m_AryServiceTracking.ElementAt(i).SetAt(12, dlg.m_strPickupDept); // 服务状态 ; m_AryServiceTracking.ElementAt(i).SetAt(13, dlg.m_strServiceState); // 实收款; m_AryServiceTracking.ElementAt(i).SetAt(7, dlg.m_strReceived); break; } } // 对接人; m_list.m_AryList.ElementAt(pNMItemActivate->iItem).SetAt(11, dlg.m_strPickupMan); // 对接部门; m_list.m_AryList.ElementAt(pNMItemActivate->iItem).SetAt(12, dlg.m_strPickupDept); // 服务状态 ; m_list.m_AryList.ElementAt(pNMItemActivate->iItem).SetAt(13, dlg.m_strServiceState); // 实收款; m_list.m_AryList.ElementAt(pNMItemActivate->iItem).SetAt(7, dlg.m_strReceived); m_list.SetItemText(pNMItemActivate->iItem, 11, dlg.m_strPickupMan); m_list.SetItemText(pNMItemActivate->iItem, 12, dlg.m_strPickupDept); m_list.SetItemText(pNMItemActivate->iItem, 13, dlg.m_strServiceState); m_list.SetItemText(pNMItemActivate->iItem, 7, dlg.m_strReceived); #endif } } *pResult = 0; } void CDlgServiceTracking::OnNMCustomdrawList1(NMHDR *pNMHDR, LRESULT *pResult) { NMLVCUSTOMDRAW* pLVCD = reinterpret_cast(pNMHDR); // TODO: 在此添加控件通知处理程序代码 if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage ) { *pResult = CDRF_NOTIFYITEMDRAW; } else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage ) { if ( m_list.m_AryList.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(13) == _T("未服务") ) pLVCD->clrText = g_grid_red; else if ( m_list.m_AryList.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(13) == _T("服务中") ) pLVCD->clrText = g_grid_blue; else pLVCD->clrText = g_grid_green; if ( pLVCD->nmcd.dwItemSpec % 2 ) pLVCD->clrTextBk = g_gridcol1; else pLVCD->clrTextBk = g_gridcol2; *pResult = CDRF_DODEFAULT; } else { *pResult = 0; } } void CDlgServiceTracking::OnBnClickedBalancingAccount() // 平账日志; { ShowLOg dlg; dlg.m_strLogType = _T("平账日志"); dlg.DoModal(); } void CDlgServiceTracking::OnBnClickedDeptRefresh() // 刷新部门; { POSITION pos = m_list.GetFirstSelectedItemPosition(); if ( pos == NULL ) { AfxMessageBox(_T("请选择要刷新部门的记录")); return; } INT nSelectedItem = m_list.GetNextSelectedItem(pos); // id; CString strId = m_list.GetItemText(nSelectedItem, 0); // 订单号; CString strOrder = m_list.GetItemText(nSelectedItem, 1); // 收款项目(服务项目); CString strReceiptsItem = m_list.GetItemText(nSelectedItem, 5); // 应收款; CString strReceivables = m_list.GetItemText(nSelectedItem, 6); // 实收款; CString strAmountReceived = m_list.GetItemText(nSelectedItem, 7); // 接单人; CString strOrderTaker = m_list.GetItemText(nSelectedItem, 9); // 对接人; CString strPickupMan = m_list.GetItemText(nSelectedItem, 11); // 服务状态; CString strServiceState = m_list.GetItemText(nSelectedItem, 13); CString strSQL = _T(""); CString strOrderTakerDept = DAL::GetStaffDepartment(strOrderTaker); if ( strId == strOrder ) {// 订单接单; strSQL.Format(_T("update [dindan] set bm = '%s' where id = '%s'"), strOrderTakerDept, strId); } else {// 加挑接单; strSQL.Format(_T("update [dindanbukuan2] set [order_taker_dept] = '%s' where [autoid] = %s"), strOrderTakerDept, strId); } g_sendhead.bsql = true; g_pMainWnd->ProcessChatMessageRequest2(strSQL); if (g_bSendOK == 0) return; AfxMessageBox(_T("刷新部门成功")); #if 0 GetServiceTrackingInfo(); #else // 只更新本条记录; INT nSize = m_AryServiceTracking.GetSize(); for ( int i = 0; i < nSize; i++ ) { if ( m_AryServiceTracking.ElementAt(i).ElementAt(0) == strId && m_AryServiceTracking.ElementAt(i).ElementAt(1) == strOrder ) { // 开单部门; m_AryServiceTracking.ElementAt(i).SetAt(10, strOrderTakerDept); break; } } // 开单部门; m_list.m_AryList.ElementAt(nSelectedItem).SetAt(10, strOrderTakerDept); m_list.SetItemText(nSelectedItem, 10, strOrderTakerDept); #endif }