// ShowMember.cpp : implementation file // #include "stdafx.h" #include "ylgl.h" #include "ShowMember.h" #include "MyMdi.H" #include "AddMember.h" #include "ShowMemberReg.h" #include "InputCard2Dlg.h" #include "ShowCard2Reg.h" #include "InputCard2Point.h" #include "UsePoint.h" #include "InputCard3Dlg.h" #include "MemberCardFunc.h" #include "SendMsgDlg.h" #include "BasicExcelVC6.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #pragma comment(lib, "Shlwapi.lib") ///////////////////////////////////////////////////////////////////////////// // ShowMember IDC_STATIC2 IMPLEMENT_DYNCREATE(ShowMember, MyFormView) ShowMember::ShowMember() : MyFormView(ShowMember::IDD) { //{{AFX_DATA_INIT(ShowMember) m_filter = _T(""); m_bInit=0; m_year = atoi(g_date.Left (4)); m_nAdd=0; //}}AFX_DATA_INIT if(g_bAllBranch) { m_nAdd=1; } } ShowMember::~ShowMember() { } void ShowMember::DoDataExchange(CDataExchange* pDX) { MyFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(ShowMember) DDX_Control(pDX, IDC_SPIN1, m_spinyear); DDX_Control(pDX, IDC_LIST2, m_List1); DDX_Control(pDX, IDC_STATIC1, m_static1); DDX_Text(pDX, IDC_EDIT15, m_filter); DDX_Text(pDX, IDC_EDITyear, m_year); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(ShowMember, MyFormView) //{{AFX_MSG_MAP(ShowMember) ON_BN_CLICKED(IDC_BUTclose, OnBUTclose) ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_WM_TIMER() ON_BN_CLICKED(IDC_BUTTON2, OnButton2) ON_NOTIFY(NM_DBLCLK, IDC_LIST2, OnDblclkList2) ON_BN_CLICKED(IDC_BUTTON3, OnButton3) ON_BN_CLICKED(IDC_BUTTON4, OnButton4) ON_BN_CLICKED(IDC_BUTTON5, OnButton5) ON_BN_CLICKED(IDC_BUTTON6, OnButton6) ON_BN_CLICKED(IDC_BUTTON10, OnButton10) ON_BN_CLICKED(IDC_BUTTON11, OnButton11) ON_BN_CLICKED(IDC_BUTTON8, OnButton8) ON_BN_CLICKED(IDC_BUTTON15, OnButton15) ON_BN_CLICKED(IDC_BUTTON14, OnButton14) ON_BN_CLICKED(IDC_BUTTON19, OnButton19) ON_EN_CHANGE(IDC_EDITyear, OnChangeEDITyear) ON_BN_CLICKED(IDC_BUTTON20, OnButton20) ON_BN_CLICKED(IDC_BUTTON21, OnButton21) ON_BN_CLICKED(IDC_BUTTON24, OnButton24) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // ShowMember diagnostics #ifdef _DEBUG void ShowMember::AssertValid() const { MyFormView::AssertValid(); } void ShowMember::Dump(CDumpContext& dc) const { MyFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // ShowMember message handlers void ShowMember::OnInitialUpdate() { MyFormView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class CMyMdi Mdi; Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this); GetDlgItem(IDC_BUTTON5)->EnableWindow(IsHasRights2new(49)); // 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_BUTTON2,IDC_BUTTON20,IDC_BUTTON21,IDC_BUTTON24,IDC_BUTclose}; int idcount=5; 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); if(g_bAllBranch==0) { m_List1.SetHeadings("主卡号,100;姓名,100;性别,100;电话,100;积分,100;类别,100;发卡日期,100;副卡号,100;发卡日期,100;副卡订单,100;副卡套系,100;积分,100;收回日期,100" ); m_List1.LoadColumnInfo (130); } else { m_List1.SetHeadings("店名,100;主卡号,100;姓名,100;性别,100;电话,100;积分,100;类别,100;发卡日期,100;副卡号,100;发卡日期,100;副卡订单,100;副卡套系,100;积分,100;收回日期,100" ); m_List1.LoadColumnInfo (230); } m_List1.m_bSortSupport =0; m_spinyear.SetRange (1900, 3000); m_bInit=1; GetData(); } void ShowMember::FillGrid() { 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 ShowMember::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default KillTimer(nIDEvent); OnButton1(); } BOOL ShowMember::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: InputOK(); 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; case '0': case VK_NUMPAD0: m_no+="0"; break; case '1': case VK_NUMPAD1: m_no+="1"; break; case '2': case VK_NUMPAD2: m_no+="2"; break; case '3': case VK_NUMPAD3: m_no+="3"; break; case '4': case VK_NUMPAD4: m_no+="4"; break; case '5': case VK_NUMPAD5: m_no+="5"; break; case '6': case VK_NUMPAD6: m_no+="6"; break; case '7': case VK_NUMPAD7: m_no+="7"; break; case '8': case VK_NUMPAD8: m_no+="8"; break; case '9': case VK_NUMPAD9: m_no+="9"; break; case 187: m_no+="="; break; case VK_BACK: if(m_no.GetLength ()) { m_no.Delete (m_no.GetLength ()-1); } break; } } return MyFormView::PreTranslateMessage(pMsg); } catch(...) { } return true; } void ShowMember::OnButton1() // 查询按钮; { // TODO: Add your control notification handler code here UpdateData(); m_filter.TrimLeft (); m_filter.TrimRight (); FillGrid(); } void ShowMember::OnButton2() // 开新卡按钮; { // TODO: Add your control notification handler code here AddMember dlg; if(dlg.DoModal ()==IDOK) { GetData(); } } void ShowMember::OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { return; } int iItem=m_List1.GetNextSelectedItem(pos); CString branch; if(g_bAllBranch) branch=m_List1.GetItemText (iItem, 0); CString memberno=m_List1.GetItemText (iItem, 0+m_nAdd); while(memberno=="") { iItem--; memberno=m_List1.GetItemText (iItem, 0+m_nAdd); } MemberCardFunc dlg; dlg.m_branch=branch; dlg.m_memberno=memberno; dlg.DoModal(); GetData(); *pResult = 0; } void ShowMember::OnButton3() { // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中要查看的会员!"); return; } int iItem=m_List1.GetNextSelectedItem(pos); CString memberno=m_List1.GetItemText (iItem, 1); ShowMemberReg dlg; dlg.m_memberno=memberno; dlg.DoModal (); } void ShowMember::OnButton4() { // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中要查看的会员!"); return; } int iItem=m_List1.GetNextSelectedItem(pos); CString memberno=m_List1.GetItemText (iItem, 1); ShowMemberReg dlg; dlg.m_mode=1; dlg.m_memberno=memberno; dlg.DoModal (); if(dlg.m_bNeedRefsh==0)return; GetData(); } void ShowMember::OnButton5() { if(IsHasRights2new(49)==0)return; // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中您要删除的会员!"); return; } if(AfxMessageBox("删除后将不可恢复, 确认吗?", MB_YESNO|MB_ICONINFORMATION)!=IDYES)return; int iItem=m_List1.GetNextSelectedItem(pos); CString m_memberno=m_List1.GetItemText (iItem, 1); CString sql; sql="delete from membermanage where [memberno]='"+m_memberno+"'"; sql+="***delete from memberreg where [memberno]='"+m_memberno+"'"; sql+="***delete from memberreg2 where [memberno]='"+m_memberno+"'"; sql+="***delete from memberreg3 where [memberno]='"+m_memberno+"'"; sql+="***delete from memberreg4 where [memberno]='"+m_memberno+"'"; sql+="***delete from membercard3usereg where [memberno]='"+m_memberno+"'"; sql+="***delete from membercard2 where [memberno]='"+m_memberno+"'"; sql+="***delete from membercard3 where [memberno]='"+m_memberno+"'"; g_sendhead.bsql=1; g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return; GetData(); } void ShowMember::OnButton6() { // TODO: Add your control notification handler code handler if(IsHasRights2new(18)==0)return; // TODO: Add your control notification code POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中您要积分的会员!"); return; } int iItem=m_List1.GetNextSelectedItem(pos); CString m_memberno=m_List1.GetItemText (iItem, 1); CString m_name=m_List1.GetItemText (iItem, 2); CString m_sex=m_List1.GetItemText (iItem, 3); CString m_phone=m_List1.GetItemText (iItem, 4); InputCard2Point dlg; dlg.m_memberno=m_memberno; dlg.m_name=m_name; dlg.m_sex=m_sex; dlg.m_phone=m_phone; if(dlg.DoModal ()!=IDOK)return; GetData(); } void ShowMember::OnButton10() { // TODO: Add your control notification handler code here if(IsHasRights2new(18)==0)return; // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中主卡!"); return; } int iItem=m_List1.GetNextSelectedItem(pos); CString name=m_List1.GetItemText (iItem, 2); CString no=m_List1.GetItemText (iItem, 1); InputCard2Dlg dlg; dlg.m_name =name; dlg.m_no =no; dlg.DoModal (); } void ShowMember::OnButton11() { // TODO: Add your control notification handler code here if(IsHasRights2new(18)==0)return; // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中主卡!"); return; } int iItem=m_List1.GetNextSelectedItem(pos); CString no=m_List1.GetItemText (iItem, 1); CString filter="[memberno]='"+no+"'"; g_sendhead.bsql=0; g_sendhead.code[0]=127; g_sendhead.tabcount=1; g_pMainWnd->ProcessChatMessageRequest2(filter);if(g_bSendOK==0)return; DataToArray(&g_List1array); if(g_List1array.GetSize ()==0) { AfxMessageBox("此主卡未发放副卡!"); } else { ShowCard2Reg dlg; dlg.DoModal (); } } void ShowMember::OnButton8() { // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中您要兑换积分的会员!"); return; } int iItem=m_List1.GetNextSelectedItem(pos); CString m_memberno=m_List1.GetItemText (iItem, 1); CString m_name=m_List1.GetItemText (iItem, 2); CString m_sex=m_List1.GetItemText (iItem, 3); CString m_phone=m_List1.GetItemText (iItem, 4); UsePoint dlg; dlg.m_memberno=m_memberno; dlg.m_name=m_name; dlg.m_sex=m_sex; dlg.m_phone=m_phone; dlg.m_point =m_List1.GetItemText (iItem,9); if(dlg.DoModal ()!=IDOK)return; GetData(); } void ShowMember::OnButton15() { // TODO: Add your control notification handler code here if(IsHasRights2new(18)==0)return; // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中主卡!"); return; } int iItem=m_List1.GetNextSelectedItem(pos); CString name=m_List1.GetItemText (iItem, 2); CString no=m_List1.GetItemText (iItem, 1); InputCard3Dlg dlg; dlg.m_name =name; dlg.m_no =no; dlg.DoModal (); } void ShowMember::OnButton14() { // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中您要赠送积分的会员!"); return; } int iItem=m_List1.GetNextSelectedItem(pos); CString m_memberno=m_List1.GetItemText (iItem, 1); CString m_name=m_List1.GetItemText (iItem, 2); CString m_sex=m_List1.GetItemText (iItem, 3); CString m_phone=m_List1.GetItemText (iItem, 4); UsePoint dlg; dlg.m_mode=1; dlg.m_memberno=m_memberno; dlg.m_name=m_name; dlg.m_sex=m_sex; dlg.m_phone=m_phone; dlg.m_point =m_List1.GetItemText (iItem,9); if(dlg.DoModal ()!=IDOK)return; GetData(); } void ShowMember::OnButton19() { // TODO: Add your control notification handler code here // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中您要赠送积分的会员!"); return; } int iItem=m_List1.GetNextSelectedItem(pos); CString m_memberno=m_List1.GetItemText (iItem, 1); CString m_name=m_List1.GetItemText (iItem, 2); CString m_sex=m_List1.GetItemText (iItem, 3); CString m_phone=m_List1.GetItemText (iItem, 4); UsePoint dlg; dlg.m_mode=2; dlg.m_memberno=m_memberno; dlg.m_name=m_name; dlg.m_sex=m_sex; dlg.m_phone=m_phone; dlg.m_point =m_List1.GetItemText (iItem,9); if(dlg.DoModal ()!=IDOK)return; GetData(); } void ShowMember::InputOK() { if(m_no.IsEmpty ())return; m_filter=m_no; m_no.Empty (); UpdateData(0); for(int ii=0; iiProcessChatMessageRequest2(1); if(g_bSendOK==0) { m_spinyear.EnableWindow(1); return; } m_spinyear.EnableWindow(1); DataToArray(&m_List1array); } else { m_spinyear.EnableWindow(0); //////////////数据汇总 m_List1array.RemoveAll (); CString branch; for(int i=-1; iOnDisconnect(); g_branchname=branch; g_bBranchModify=1; } else branch=g_brancharray.ElementAt (g_brancharray.GetSize ()-1).ElementAt (0); g_sendhead.bsql=0; g_sendhead.code[0]=167; g_sendhead.tabcount=1; g_pMainWnd->ProcessChatMessageRequest2(1);if(g_bSendOK==0)continue; CArrayList1array; DataToArray(&List1array); int size=m_List1array.GetSize (); for(int j=0; jOnDisconnect(); g_bBranchModify=0;g_branchip=g_branchname=""; m_spinyear.EnableWindow(1); } HidePrice(); FillGrid(); } void ShowMember::OnChangeEDITyear() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the MyFormView::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. GetData(); // TODO: Add your control notification handler code here } void ShowMember::OnButton20() // 发送短信按钮; { // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中您要发送短信的会员!", MB_ICONINFORMATION); return; } int iItem; CStringArray array; while (pos) { iItem = m_List1.GetNextSelectedItem(pos); if(!m_List1.GetItemText (iItem, 3+m_nAdd).IsEmpty ()) array.Add (m_List1.GetItemText (iItem, 3+m_nAdd)); } SendMsgDlg dlg; dlg.m_mode=1; dlg.m_pArray=&array; dlg.DoModal (); } BOOL ShowMember::CheckExist(CString no) { for(int i=0; iGetTotalRows(); size_t maxCols = sheet1->GetTotalCols(); if(maxCols>7)maxCols=7; if(maxCols<7) { AfxMessageBox("格式不对:缺少项目!");return; } if(maxRows<2) { AfxMessageBox("没有资料!");return; } CStringArray array; for (size_t r=0; rCell(r,c); switch (cell->Type()) { case BasicExcelCell::STRING: array.Add(cell->GetString()); break; case BasicExcelCell::WSTRING: { int leng = wcslen(cell->GetWString()); char* ppszA=new char[2*leng+1]; memset(ppszA, 0, 2*leng+1); WideCharToMultiByte(CP_ACP,0,cell->GetWString(),-1,ppszA,leng*2,NULL,NULL); CString str=ppszA; str.TrimLeft();str.TrimRight(); array.Add (str); delete []ppszA; } break; default: array.Add (""); } } if(r==0) { if(array.GetSize ()!=maxCols) { AfxMessageBox("资料读取错误");return; } if(array.ElementAt (0)!="会员卡号") { AfxMessageBox("格式错误2");return; } array.RemoveAll (); } } /////////////////////// CString sql,temp; CString m_name,strRes1; CString m_memberno,m_sex,m_date,m_phone,m_qq,m_birthday,m_point; int count=0; CStringArray noarray; for(int i=0; iProcessChatMessageRequest2(sql); if(g_bSendOK==0) { AfxMessageBox("保存过程中出现错误!"); return; } sql.Empty ();count=0;GetData(); } ::Sleep(1000); } ///////////////////////////////////// if(!sql.IsEmpty ()) { sql.TrimRight ("***"); g_sendhead.bsql=1; g_pMainWnd->ProcessChatMessageRequest2(sql); if(g_bSendOK==0) { AfxMessageBox("保存过程中出现错误!"); return; } sql.Empty ();count=0;GetData(); } AfxMessageBox("保存成功!"); /////////////////////// } else AfxMessageBox("格式错误,或文件未关闭!!"); } void ShowMember::OnButton24() // 导出按钮; { // TODO: Add your control notification handler code here if(IsHasRights2new(18)==0)return; ListToXLS(&m_List1, "c:\\会员资料.xls", 0); } void ShowMember::HidePrice() { #ifdef LKAY_VERSION if(IsHasRights2new(31))return; for(int i=0; i< m_List1array.GetSize (); i++) { m_List1array.ElementAt (i).SetAt (3, "***"); } #endif }