// DinDanFromBranch.cpp : implementation file // #include "stdafx.h" #include "ylgl.h" #include "DinDanFromBranch.h" #include "MyMdi.h" #include "ModifyDinDan.h" #include "ClientDlg.h" #include "ClientDlg2.h" #include "./helper/ffsco.h" #include "SelBranch.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #pragma comment(lib, "Shlwapi.lib") ///////////////////////////////////////////////////////////////////////////// // DinDanFromBranch IMPLEMENT_DYNCREATE(DinDanFromBranch, MyFormView) DinDanFromBranch::DinDanFromBranch() : MyFormView(DinDanFromBranch::IDD) { //{{AFX_DATA_INIT(DinDanFromBranch) m_filter = _T(""); //}}AFX_DATA_INIT } DinDanFromBranch::~DinDanFromBranch() { } void DinDanFromBranch::DoDataExchange(CDataExchange* pDX) { MyFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(DinDanFromBranch) 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(DinDanFromBranch, MyFormView) //{{AFX_MSG_MAP(DinDanFromBranch) 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_BUTprint3, OnBUTprint3) ON_BN_CLICKED(IDC_BUTprint4, OnBUTprint4) ON_BN_CLICKED(IDC_BTNSEARCHFILTER, OnBtnsearchfilter) ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST2, OnCustomdrawList1) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DinDanFromBranch diagnostics #ifdef _DEBUG void DinDanFromBranch::AssertValid() const { MyFormView::AssertValid(); } void DinDanFromBranch::Dump(CDumpContext& dc) const { MyFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // DinDanFromBranch message handlers FillLength extern void SetComboHei(CComboBox *pCombo, int hei); void DinDanFromBranch::OnInitialUpdate() { MyFormView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class 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_BUTprint4,IDC_BUTprint3,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); } m_static1.SetFont (&g_titlefont); #ifdef CHILD_VERSION m_List1.SetHeadings("店名,100;订单号,100;家长姓名,100;宝宝姓名,100;类别,100;折扣,100;授权,100;折扣(后),100;授权(后),100;拍照,100;初修,100;选片,100;精修,100;设计,100;看设计,100;取件,100;预约时间,100;拍照时间,100;选片时间,100;看设计时间,100;取件时间,100;接单人,100;套系名称,100;套系价格,100;摄影师,100;化妆师,100;初修,100;选片,100;精修,100;设计师,100;看设计,100;录单,100;手机,100;固定电话,100" ); #else m_List1.SetHeadings("店名,100;订单号,100;男宾姓名,100;女宾姓名,100;类别,100;折扣,100;授权,100;折扣(后),100;授权(后),100;拍照,100;初修,100;选片,100;精修,100;设计,100;看设计,100;取件,100;预约时间,100;拍照时间,100;选片时间,100;看设计时间,100;取件时间,100;接单人,100;套系名称,100;套系价格,100;摄影师,100;化妆师,100;初修,100;选片,100;精修,100;设计师,100;看设计,100;录单,100;男宾电话,100;女宾电话,100" ); #endif m_List1.LoadColumnInfo (182); CStringArray m_iparray; for(int i=0; iGetWindowRect(rc2); SetComboHei(&m_combo1, rc2.Height ()); GetDlgItem(IDC_BUTprint3)->EnableWindow(IsHasRights2new(49)); GetDlgItem(IDC_BUTprint4)->EnableWindow(IsHasRights2new(1)); } void DinDanFromBranch::FillGrid() { int m_nadd=2; if(g_bSearchFilter) { m_List1.DeleteAllItems2 (); int ii=0; m_List1.m_arLabels.SetSize( m_List1array.GetSize (), 1 ); int count=0; { for(ii=0; iig_filterdate2) continue; } if(g_waiter1!="") { if(m_List1array.ElementAt (ii).ElementAt (19+m_nadd)!=g_waiter1) continue; } if(g_waiter2!="") { if(m_List1array.ElementAt (ii).ElementAt (22+m_nadd)!=g_waiter2) continue; } if(g_waiter3!="") { if(m_List1array.ElementAt (ii).ElementAt (23+m_nadd)!=g_waiter3) continue; } if(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); CString str; str.Format ("单数:%d", ii); SetDlgItemText(IDC_STATIC2, str); } else { 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; iiSendMessage(WM_CLOSE); } void DinDanFromBranch::OnButton1() { // TODO: Add your control notification handler code here UpdateData(); m_filter.TrimLeft (); m_filter.TrimRight (); FillGrid(); } void DinDanFromBranch::OnSelchangeCombo1() { // TODO: Add your control notification handler code here SetTimer(1, 100, NULL); } void DinDanFromBranch::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default KillTimer(nIDEvent); OnButton1(); } BOOL DinDanFromBranch::PreTranslateMessage(MSG* pMsg) { // TODO: Add your c code here and/or call the base class try { if(pMsg->message==WM_KEYDOWN) { switch (pMsg->wParam) { case VK_RETURN: OnButton1(); return 1; case VK_F9: GetClientPhone(); 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 DinDanFromBranch::GetClientPhone() { CStdioFile fp; fp.Open ("c:\\clientphone.txt", CFile::modeCreate|CFile::modeWrite); CString str; CString branch,name,m_name1,m_name2; CString phone,m_phone1,m_phone2; CString txname,txprice,mensi; int leng1=26; int leng2=15; int leng3=30; int leng4=25; int leng5=15; int leng6=15; branch="店名"; name="姓名"; mensi="门市"; phone="电话"; txname="套系"; txprice="价格"; FillLength(name, leng1); FillLength(mensi, leng2); FillLength(phone, leng3); FillLength(txname, leng4); FillLength(txprice,leng5); FillLength(branch,leng6); str=name+mensi+phone+txname+txprice+branch+"\n"; fp.WriteString (str); for(int i=0; iOnDisconnect(); } CArrayList1array; g_sendhead.bsql=0; g_sendhead.code[0]=156; g_sendhead.tabcount=1; g_pMainWnd->ProcessChatMessageRequest2(id); if(g_bSendOK==0) { AfxMessageBox("转单失败!");g_bBranchModify=0;g_branchip=g_branchname=""; return; } DataToArray(&List1array); if(List1array.GetSize ()) { for( i=0; iOnDisconnect(); g_bBranchModify=0;g_branchip=g_branchname=""; if(toip!="xxx") { g_bBranchModify=1;g_branchip=toip;g_branchname=dlg.m_sel; } CStringArray m_seldressarray; m_seldressarray.Add (id); for( i=0; iProcessChatMessageRequest2(pData, length); g_nSendCode=0; delete []pData; if(g_bSendOK==0 || g_ncount!=888 ) { g_bBranchModify=0;g_branchip=g_branchname=""; AfxMessageBox("转单失败!"); g_pMainWnd->OnDisconnect(); return; } g_pMainWnd->OnDisconnect();g_bBranchModify=0;g_branchip=g_branchname=""; if(fromip!="xxx") { g_bBranchModify=1;g_branchip=fromip;g_branchname=branch; g_pMainWnd->OnDisconnect(); } g_sendhead.bsql=1; sql= "delete from dindan where id='"+id+"'"; sql+= "***delete from dindansp where id='"+id+"'"; sql+= "***delete from photoprint where id='"+id+"'"; sql+= "***delete from dindanbukuan where id='"+id+"'"; sql+= "***delete from dindanbukuan2 where id='"+id+"'"; sql+= "***delete from client where [id]='"+id+"'"; sql+= "***delete from burncdreg where [id]='"+id+"'"; sql+= "***delete from digitalwork where [id]='"+id+"'"; sql+= "***delete from mywork where [id]='"+id+"'"; sql+= "***delete from dindanjd where [id]='"+id+"'"; g_pMainWnd->ProcessChatMessageRequest2(sql); if(g_bSendOK==0) { g_bBranchModify=0;g_branchip=g_branchname=""; AfxMessageBox("转单成功,删除原订单失败,请手工删除!"); g_pMainWnd->OnDisconnect(); return; } g_pMainWnd->OnDisconnect();g_bBranchModify=0;g_branchip=g_branchname=""; AfxMessageBox("转单成功!", MB_ICONINFORMATION); } } void DinDanFromBranch::OnCustomdrawList1 ( NMHDR* pNMHDR, LRESULT* pResult ) { NMLVCUSTOMDRAW* pLVCD = reinterpret_cast( pNMHDR ); // Take the default processing unless we set this to something else below. *pResult = 0; // First thing - check the draw stage. If it's the control's prepaint // stage, then tell Windows we want messages for every item. if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage ) { *pResult = CDRF_NOTIFYITEMDRAW; } else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage ) { // This is the prepaint stage for an item. Here's where we set the // item's text color. Our return value will tell Windows to draw the // item itself, but it will use the new color we set here. // We'll cycle the colors through red, green, and light blue. if(atof(m_List1.m_arLabels.ElementAt (pLVCD->nmcd.dwItemSpec).ElementAt (5))<5.0 || (atof(m_List1.m_arLabels.ElementAt (pLVCD->nmcd.dwItemSpec).ElementAt (7))<5.0)&&m_List1.m_arLabels.ElementAt (pLVCD->nmcd.dwItemSpec).ElementAt (7)!="" ) { pLVCD->clrText = RGB(220,0,0); } else if(atof(m_List1.m_arLabels.ElementAt (pLVCD->nmcd.dwItemSpec).ElementAt (5))<8.0 || (atof(m_List1.m_arLabels.ElementAt (pLVCD->nmcd.dwItemSpec).ElementAt (7))<8.0)&&m_List1.m_arLabels.ElementAt (pLVCD->nmcd.dwItemSpec).ElementAt (7)!="" ) { pLVCD->clrText = RGB(255,255,0); } else if(atof(m_List1.m_arLabels.ElementAt (pLVCD->nmcd.dwItemSpec).ElementAt (5))==0 && atof(m_List1.m_arLabels.ElementAt (pLVCD->nmcd.dwItemSpec).ElementAt (7))==0) { pLVCD->clrText = RGB(0,0,0); } else { pLVCD->clrText = RGB(20,133,20); } if(pLVCD->nmcd.dwItemSpec%2) pLVCD->clrTextBk = g_gridcol1; else pLVCD->clrTextBk = g_gridcol2; // Store the color back in the NMLVCUSTOMDRAW struct. // Tell Windows to paint the control itself. *pResult = CDRF_DODEFAULT; } } void DinDanFromBranch::HidePrice() { if(IsHasRights2new(31)==0) { for(int i=0; i< m_List1array.GetSize (); i++) { m_List1array.ElementAt (i).SetAt (32, "***"); m_List1array.ElementAt (i).SetAt (33, "***"); } } if(IsHasRights2new(50)==0) { for(int i=0; i< m_List1array.GetSize (); i++) { m_List1array.ElementAt (i).SetAt (8, "***"); m_List1array.ElementAt (i).SetAt (5, "***"); m_List1array.ElementAt (i).SetAt (6, "***"); m_List1array.ElementAt (i).SetAt (7, "***"); } } } void DinDanFromBranch::OnBtnsearchfilter() { // TODO: Add your control notification handler code here SearchFilter dlg; dlg.m_mode =0; if(dlg.DoModal ()==IDOK)FillGrid(); g_bSearchFilter=0; } void DinDanFromBranch::GetData() { m_List1array.RemoveAll (); CStringArray failbrancharray; CString branch; int i = 0; for( i=-1; iOnDisconnect(); g_branchname=branch; g_bBranchModify=1; } else branch=g_brancharray.ElementAt (g_brancharray.GetSize ()-1).ElementAt (0); if(g_bShowOK==0) { CString filter="status3='未取'"; g_sendhead.bsql=0; g_sendhead.code[0]=181; g_sendhead.tabcount=1; g_pMainWnd->ProcessChatMessageRequest2(filter); if(g_bSendOK==0) { failbrancharray.Add (branch); continue; } } else { g_sendhead.bsql=0; g_sendhead.code[0]=181; g_sendhead.tabcount=1; g_pMainWnd->ProcessChatMessageRequest2(21); if(g_bSendOK==0) { failbrancharray.Add (branch); continue; } } CArrayList1array; DataToArray(&List1array); int size=m_List1array.GetSize (); for(int j=0; jOnDisconnect();g_bBranchModify=0;g_branchip=g_branchname=""; }