ShowMember.cpp 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952
  1. // ShowMember.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ylgl.h"
  5. #include "ShowMember.h"
  6. #include "MyMdi.H"
  7. #include "AddMember.h"
  8. #include "ShowMemberReg.h"
  9. #include "InputCard2Dlg.h"
  10. #include "ShowCard2Reg.h"
  11. #include "InputCard2Point.h"
  12. #include "UsePoint.h"
  13. #include "InputCard3Dlg.h"
  14. #include "MemberCardFunc.h"
  15. #include "SendMsgDlg.h"
  16. #include "BasicExcelVC6.h"
  17. #ifdef _DEBUG
  18. #define new DEBUG_NEW
  19. #undef THIS_FILE
  20. static char THIS_FILE[] = __FILE__;
  21. #endif
  22. #pragma comment(lib, "Shlwapi.lib")
  23. /////////////////////////////////////////////////////////////////////////////
  24. // ShowMember IDC_STATIC2
  25. IMPLEMENT_DYNCREATE(ShowMember, MyFormView)
  26. ShowMember::ShowMember()
  27. : MyFormView(ShowMember::IDD)
  28. {
  29. //{{AFX_DATA_INIT(ShowMember)
  30. m_filter = _T("");
  31. m_bInit=0;
  32. m_year = atoi(g_date.Left (4));
  33. m_nAdd=0;
  34. //}}AFX_DATA_INIT
  35. if(g_bAllBranch)
  36. {
  37. m_nAdd=1;
  38. }
  39. }
  40. ShowMember::~ShowMember()
  41. {
  42. }
  43. void ShowMember::DoDataExchange(CDataExchange* pDX)
  44. {
  45. MyFormView::DoDataExchange(pDX);
  46. //{{AFX_DATA_MAP(ShowMember)
  47. DDX_Control(pDX, IDC_SPIN1, m_spinyear);
  48. DDX_Control(pDX, IDC_LIST2, m_List1);
  49. DDX_Control(pDX, IDC_STATIC1, m_static1);
  50. DDX_Text(pDX, IDC_EDIT15, m_filter);
  51. DDX_Text(pDX, IDC_EDITyear, m_year);
  52. //}}AFX_DATA_MAP
  53. }
  54. BEGIN_MESSAGE_MAP(ShowMember, MyFormView)
  55. //{{AFX_MSG_MAP(ShowMember)
  56. ON_BN_CLICKED(IDC_BUTclose, OnBUTclose)
  57. ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
  58. ON_WM_TIMER()
  59. ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
  60. ON_NOTIFY(NM_DBLCLK, IDC_LIST2, OnDblclkList2)
  61. ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
  62. ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
  63. ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
  64. ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
  65. ON_BN_CLICKED(IDC_BUTTON10, OnButton10)
  66. ON_BN_CLICKED(IDC_BUTTON11, OnButton11)
  67. ON_BN_CLICKED(IDC_BUTTON8, OnButton8)
  68. ON_BN_CLICKED(IDC_BUTTON15, OnButton15)
  69. ON_BN_CLICKED(IDC_BUTTON14, OnButton14)
  70. ON_BN_CLICKED(IDC_BUTTON19, OnButton19)
  71. ON_EN_CHANGE(IDC_EDITyear, OnChangeEDITyear)
  72. ON_BN_CLICKED(IDC_BUTTON20, OnButton20)
  73. ON_BN_CLICKED(IDC_BUTTON21, OnButton21)
  74. ON_BN_CLICKED(IDC_BUTTON24, OnButton24)
  75. //}}AFX_MSG_MAP
  76. END_MESSAGE_MAP()
  77. /////////////////////////////////////////////////////////////////////////////
  78. // ShowMember diagnostics
  79. #ifdef _DEBUG
  80. void ShowMember::AssertValid() const
  81. {
  82. MyFormView::AssertValid();
  83. }
  84. void ShowMember::Dump(CDumpContext& dc) const
  85. {
  86. MyFormView::Dump(dc);
  87. }
  88. #endif //_DEBUG
  89. /////////////////////////////////////////////////////////////////////////////
  90. // ShowMember message handlers
  91. void ShowMember::OnInitialUpdate()
  92. {
  93. MyFormView::OnInitialUpdate();
  94. // TODO: Add your specialized code here and/or call the base class
  95. CMyMdi Mdi;
  96. Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this);
  97. GetDlgItem(IDC_BUTTON5)->EnableWindow(IsHasRights2new(49));
  98. // Here we create the outbar control using the splitter as its parent
  99. // and setting its id to the first pane.
  100. CRect rc2;
  101. GetWindowRect(rc2);
  102. ::MoveWindow(m_hWnd,g_rc.left,g_rc.top,g_rc.Width(),g_rc.Height(),TRUE);
  103. EnumChildWindows(m_hWnd,(WNDENUMPROC)EnumChildProc,0);
  104. int idarray[]={IDC_BUTTON2,IDC_BUTTON20,IDC_BUTTON21,IDC_BUTTON24,IDC_BUTclose};
  105. int idcount=5;
  106. int btnwid;
  107. CRect prerc;
  108. for(int a=idcount-2; a>=0; a--)
  109. {
  110. GetDlgItem(idarray[a+1])->GetWindowRect (prerc);
  111. ScreenToClient(prerc);
  112. GetDlgItem(idarray[a])->GetWindowRect (rc2);
  113. ScreenToClient(rc2);
  114. btnwid=rc2.Width ();
  115. rc2.right =prerc.left ;
  116. rc2.left =rc2.right -btnwid;
  117. GetDlgItem(idarray[a])->MoveWindow (rc2);
  118. }
  119. m_static1.SetFont (&g_titlefont);
  120. if(g_bAllBranch==0)
  121. {
  122. m_List1.SetHeadings("主卡号,100;姓名,100;性别,100;电话,100;积分,100;类别,100;发卡日期,100;副卡号,100;发卡日期,100;副卡订单,100;副卡套系,100;积分,100;收回日期,100" );
  123. m_List1.LoadColumnInfo (130);
  124. }
  125. else
  126. {
  127. m_List1.SetHeadings("店名,100;主卡号,100;姓名,100;性别,100;电话,100;积分,100;类别,100;发卡日期,100;副卡号,100;发卡日期,100;副卡订单,100;副卡套系,100;积分,100;收回日期,100" );
  128. m_List1.LoadColumnInfo (230);
  129. }
  130. m_List1.m_bSortSupport =0;
  131. m_spinyear.SetRange (1900, 3000);
  132. m_bInit=1;
  133. GetData();
  134. }
  135. void ShowMember::FillGrid()
  136. {
  137. m_List1.DeleteAllItems2 ();
  138. int ii=0;
  139. m_List1.m_arLabels.SetSize( m_List1array.GetSize (), 1 );
  140. int count=0;
  141. if(m_filter.IsEmpty ())
  142. {
  143. for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  144. {
  145. m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
  146. }
  147. }
  148. else
  149. {
  150. int type=GetType(m_filter);
  151. if(type==2)//拼音
  152. {
  153. m_filter.MakeUpper (); BOOL bFinded=0;
  154. for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  155. {
  156. if(bFinded && m_List1array.ElementAt (ii).ElementAt (0+m_nAdd).IsEmpty ())
  157. {
  158. m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
  159. continue;
  160. }
  161. if(m_List1array.ElementAt (ii).ElementAt (13+m_nAdd).Find (m_filter)!=-1 )
  162. {
  163. bFinded=1;
  164. m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
  165. }
  166. else
  167. {
  168. bFinded=0;
  169. }
  170. }
  171. }
  172. else
  173. {
  174. BOOL bFinded=0;
  175. for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  176. {
  177. if(bFinded && m_List1array.ElementAt (ii).ElementAt (0+m_nAdd).IsEmpty ())
  178. {
  179. m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
  180. continue;
  181. }
  182. if(m_List1array.ElementAt (ii).ElementAt (0).Find (m_filter)!=-1 ||\
  183. m_List1array.ElementAt (ii).ElementAt (1).Find (m_filter)!=-1 || \
  184. m_List1array.ElementAt (ii).ElementAt (2).Find (m_filter)!=-1 || \
  185. m_List1array.ElementAt (ii).ElementAt (3).Find (m_filter)!=-1 || \
  186. m_List1array.ElementAt (ii).ElementAt (4).Find (m_filter)!=-1|| \
  187. m_List1array.ElementAt (ii).ElementAt (5).Find (m_filter)!=-1 || \
  188. m_List1array.ElementAt (ii).ElementAt (6).Find (m_filter)!=-1 || \
  189. m_List1array.ElementAt (ii).ElementAt (7).Find (m_filter)!=-1 || \
  190. m_List1array.ElementAt (ii).ElementAt (8).Find (m_filter)!=-1 || \
  191. m_List1array.ElementAt (ii).ElementAt (8+m_nAdd).Find (m_filter)!=-1 )
  192. {
  193. bFinded=1;
  194. while(m_List1array.ElementAt (ii).ElementAt (0)=="")
  195. {
  196. ii--;
  197. }
  198. m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
  199. }
  200. else
  201. {
  202. bFinded=0;
  203. }
  204. }
  205. }
  206. }
  207. m_List1.m_arLabels.SetSize(count, 1);
  208. ii=count;
  209. m_List1.m_LabelCount=ii;
  210. m_List1.SetItemCountEx (ii);
  211. CString str;
  212. str.Format ("项目:%d", ii);
  213. SetDlgItemText(IDC_STATIC2, str);
  214. }
  215. void ShowMember::OnBUTclose()
  216. {
  217. // TODO: Add your control notification handler code here
  218. GetParent()->SendMessage(WM_CLOSE);
  219. }
  220. void ShowMember::OnTimer(UINT nIDEvent)
  221. {
  222. // TODO: Add your message handler code here and/or call default
  223. KillTimer(nIDEvent);
  224. OnButton1();
  225. }
  226. BOOL ShowMember::PreTranslateMessage(MSG* pMsg)
  227. {
  228. // TODO: Add your specialized code here and/or call the base class
  229. try
  230. {
  231. if(pMsg->message==WM_KEYDOWN)
  232. {
  233. switch (pMsg->wParam)
  234. {
  235. case VK_RETURN:
  236. InputOK();
  237. OnButton1();
  238. return 1;
  239. case 0x43: // copy
  240. if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) )
  241. {
  242. GetFocus()->SendMessage(WM_COPY);
  243. return TRUE;
  244. }
  245. break;
  246. case 0x56: //Ctrl + V:
  247. if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) )
  248. {
  249. GetFocus()->SendMessage(WM_PASTE);
  250. return TRUE;
  251. }
  252. break;
  253. case 0x58: // cut
  254. if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) )
  255. {
  256. GetFocus()->SendMessage(WM_CUT);
  257. return TRUE;
  258. }
  259. break;
  260. case 0x5A: //undo
  261. case 0x59: //redo
  262. if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) )
  263. {
  264. GetFocus()->SendMessage(WM_UNDO);
  265. return TRUE;
  266. }
  267. break;
  268. case '0':
  269. case VK_NUMPAD0:
  270. m_no+="0";
  271. break;
  272. case '1':
  273. case VK_NUMPAD1:
  274. m_no+="1";
  275. break;
  276. case '2':
  277. case VK_NUMPAD2:
  278. m_no+="2";
  279. break;
  280. case '3':
  281. case VK_NUMPAD3:
  282. m_no+="3";
  283. break;
  284. case '4':
  285. case VK_NUMPAD4:
  286. m_no+="4";
  287. break;
  288. case '5':
  289. case VK_NUMPAD5:
  290. m_no+="5";
  291. break;
  292. case '6':
  293. case VK_NUMPAD6:
  294. m_no+="6";
  295. break;
  296. case '7':
  297. case VK_NUMPAD7:
  298. m_no+="7";
  299. break;
  300. case '8':
  301. case VK_NUMPAD8:
  302. m_no+="8";
  303. break;
  304. case '9':
  305. case VK_NUMPAD9:
  306. m_no+="9";
  307. break;
  308. case 187:
  309. m_no+="=";
  310. break;
  311. case VK_BACK:
  312. if(m_no.GetLength ())
  313. {
  314. m_no.Delete (m_no.GetLength ()-1);
  315. }
  316. break;
  317. }
  318. }
  319. return MyFormView::PreTranslateMessage(pMsg);
  320. }
  321. catch(...)
  322. {
  323. }
  324. return true;
  325. }
  326. void ShowMember::OnButton1() // 查询按钮;
  327. {
  328. // TODO: Add your control notification handler code here
  329. UpdateData();
  330. m_filter.TrimLeft ();
  331. m_filter.TrimRight ();
  332. FillGrid();
  333. }
  334. void ShowMember::OnButton2() // 开新卡按钮;
  335. {
  336. // TODO: Add your control notification handler code here
  337. AddMember dlg;
  338. if(dlg.DoModal ()==IDOK)
  339. {
  340. GetData();
  341. }
  342. }
  343. void ShowMember::OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult)
  344. {
  345. // TODO: Add your control notification handler code here
  346. POSITION pos;
  347. pos=m_List1.GetFirstSelectedItemPosition();
  348. if(pos==NULL)
  349. {
  350. return;
  351. }
  352. int iItem=m_List1.GetNextSelectedItem(pos);
  353. CString branch;
  354. if(g_bAllBranch)
  355. branch=m_List1.GetItemText (iItem, 0);
  356. CString memberno=m_List1.GetItemText (iItem, 0+m_nAdd);
  357. while(memberno=="")
  358. {
  359. iItem--;
  360. memberno=m_List1.GetItemText (iItem, 0+m_nAdd);
  361. }
  362. MemberCardFunc dlg;
  363. dlg.m_branch=branch;
  364. dlg.m_memberno=memberno;
  365. dlg.DoModal(); GetData();
  366. *pResult = 0;
  367. }
  368. void ShowMember::OnButton3()
  369. {
  370. // TODO: Add your control notification handler code here
  371. POSITION pos;
  372. pos=m_List1.GetFirstSelectedItemPosition();
  373. if(pos==NULL)
  374. {
  375. AfxMessageBox("请先选中要查看的会员!");
  376. return;
  377. }
  378. int iItem=m_List1.GetNextSelectedItem(pos);
  379. CString memberno=m_List1.GetItemText (iItem, 1);
  380. ShowMemberReg dlg;
  381. dlg.m_memberno=memberno;
  382. dlg.DoModal ();
  383. }
  384. void ShowMember::OnButton4()
  385. {
  386. // TODO: Add your control notification handler code here
  387. POSITION pos;
  388. pos=m_List1.GetFirstSelectedItemPosition();
  389. if(pos==NULL)
  390. {
  391. AfxMessageBox("请先选中要查看的会员!");
  392. return;
  393. }
  394. int iItem=m_List1.GetNextSelectedItem(pos);
  395. CString memberno=m_List1.GetItemText (iItem, 1);
  396. ShowMemberReg dlg;
  397. dlg.m_mode=1;
  398. dlg.m_memberno=memberno;
  399. dlg.DoModal ();
  400. if(dlg.m_bNeedRefsh==0)return;
  401. GetData();
  402. }
  403. void ShowMember::OnButton5()
  404. {
  405. if(IsHasRights2new(49)==0)return;
  406. // TODO: Add your control notification handler code here
  407. POSITION pos;
  408. pos=m_List1.GetFirstSelectedItemPosition();
  409. if(pos==NULL)
  410. {
  411. AfxMessageBox("请先选中您要删除的会员!");
  412. return;
  413. }
  414. if(AfxMessageBox("删除后将不可恢复, 确认吗?", MB_YESNO|MB_ICONINFORMATION)!=IDYES)return;
  415. int iItem=m_List1.GetNextSelectedItem(pos);
  416. CString m_memberno=m_List1.GetItemText (iItem, 1);
  417. CString sql;
  418. sql="delete from membermanage where [memberno]='"+m_memberno+"'";
  419. sql+="***delete from memberreg where [memberno]='"+m_memberno+"'";
  420. sql+="***delete from memberreg2 where [memberno]='"+m_memberno+"'";
  421. sql+="***delete from memberreg3 where [memberno]='"+m_memberno+"'";
  422. sql+="***delete from memberreg4 where [memberno]='"+m_memberno+"'";
  423. sql+="***delete from membercard3usereg where [memberno]='"+m_memberno+"'";
  424. sql+="***delete from membercard2 where [memberno]='"+m_memberno+"'";
  425. sql+="***delete from membercard3 where [memberno]='"+m_memberno+"'";
  426. g_sendhead.bsql=1;
  427. g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return;
  428. GetData();
  429. }
  430. void ShowMember::OnButton6()
  431. {
  432. // TODO: Add your control notification handler code handler
  433. if(IsHasRights2new(18)==0)return;
  434. // TODO: Add your control notification code
  435. POSITION pos;
  436. pos=m_List1.GetFirstSelectedItemPosition();
  437. if(pos==NULL)
  438. {
  439. AfxMessageBox("请先选中您要积分的会员!");
  440. return;
  441. }
  442. int iItem=m_List1.GetNextSelectedItem(pos);
  443. CString m_memberno=m_List1.GetItemText (iItem, 1);
  444. CString m_name=m_List1.GetItemText (iItem, 2);
  445. CString m_sex=m_List1.GetItemText (iItem, 3);
  446. CString m_phone=m_List1.GetItemText (iItem, 4);
  447. InputCard2Point dlg;
  448. dlg.m_memberno=m_memberno;
  449. dlg.m_name=m_name;
  450. dlg.m_sex=m_sex;
  451. dlg.m_phone=m_phone;
  452. if(dlg.DoModal ()!=IDOK)return;
  453. GetData();
  454. }
  455. void ShowMember::OnButton10()
  456. {
  457. // TODO: Add your control notification handler code here
  458. if(IsHasRights2new(18)==0)return;
  459. // TODO: Add your control notification handler code here
  460. POSITION pos;
  461. pos=m_List1.GetFirstSelectedItemPosition();
  462. if(pos==NULL)
  463. {
  464. AfxMessageBox("请先选中主卡!");
  465. return;
  466. }
  467. int iItem=m_List1.GetNextSelectedItem(pos);
  468. CString name=m_List1.GetItemText (iItem, 2);
  469. CString no=m_List1.GetItemText (iItem, 1);
  470. InputCard2Dlg dlg;
  471. dlg.m_name =name;
  472. dlg.m_no =no;
  473. dlg.DoModal ();
  474. }
  475. void ShowMember::OnButton11()
  476. {
  477. // TODO: Add your control notification handler code here
  478. if(IsHasRights2new(18)==0)return;
  479. // TODO: Add your control notification handler code here
  480. POSITION pos;
  481. pos=m_List1.GetFirstSelectedItemPosition();
  482. if(pos==NULL)
  483. {
  484. AfxMessageBox("请先选中主卡!");
  485. return;
  486. }
  487. int iItem=m_List1.GetNextSelectedItem(pos);
  488. CString no=m_List1.GetItemText (iItem, 1);
  489. CString filter="[memberno]='"+no+"'";
  490. g_sendhead.bsql=0;
  491. g_sendhead.code[0]=127;
  492. g_sendhead.tabcount=1;
  493. g_pMainWnd->ProcessChatMessageRequest2(filter);if(g_bSendOK==0)return;
  494. DataToArray(&g_List1array);
  495. if(g_List1array.GetSize ()==0)
  496. {
  497. AfxMessageBox("此主卡未发放副卡!");
  498. }
  499. else
  500. {
  501. ShowCard2Reg dlg;
  502. dlg.DoModal ();
  503. }
  504. }
  505. void ShowMember::OnButton8()
  506. {
  507. // TODO: Add your control notification handler code here
  508. POSITION pos;
  509. pos=m_List1.GetFirstSelectedItemPosition();
  510. if(pos==NULL)
  511. {
  512. AfxMessageBox("请先选中您要兑换积分的会员!");
  513. return;
  514. }
  515. int iItem=m_List1.GetNextSelectedItem(pos);
  516. CString m_memberno=m_List1.GetItemText (iItem, 1);
  517. CString m_name=m_List1.GetItemText (iItem, 2);
  518. CString m_sex=m_List1.GetItemText (iItem, 3);
  519. CString m_phone=m_List1.GetItemText (iItem, 4);
  520. UsePoint dlg;
  521. dlg.m_memberno=m_memberno;
  522. dlg.m_name=m_name;
  523. dlg.m_sex=m_sex;
  524. dlg.m_phone=m_phone;
  525. dlg.m_point =m_List1.GetItemText (iItem,9);
  526. if(dlg.DoModal ()!=IDOK)return;
  527. GetData();
  528. }
  529. void ShowMember::OnButton15()
  530. {
  531. // TODO: Add your control notification handler code here
  532. if(IsHasRights2new(18)==0)return;
  533. // TODO: Add your control notification handler code here
  534. POSITION pos;
  535. pos=m_List1.GetFirstSelectedItemPosition();
  536. if(pos==NULL)
  537. {
  538. AfxMessageBox("请先选中主卡!");
  539. return;
  540. }
  541. int iItem=m_List1.GetNextSelectedItem(pos);
  542. CString name=m_List1.GetItemText (iItem, 2);
  543. CString no=m_List1.GetItemText (iItem, 1);
  544. InputCard3Dlg dlg;
  545. dlg.m_name =name;
  546. dlg.m_no =no;
  547. dlg.DoModal ();
  548. }
  549. void ShowMember::OnButton14()
  550. {
  551. // TODO: Add your control notification handler code here
  552. POSITION pos;
  553. pos=m_List1.GetFirstSelectedItemPosition();
  554. if(pos==NULL)
  555. {
  556. AfxMessageBox("请先选中您要赠送积分的会员!");
  557. return;
  558. }
  559. int iItem=m_List1.GetNextSelectedItem(pos);
  560. CString m_memberno=m_List1.GetItemText (iItem, 1);
  561. CString m_name=m_List1.GetItemText (iItem, 2);
  562. CString m_sex=m_List1.GetItemText (iItem, 3);
  563. CString m_phone=m_List1.GetItemText (iItem, 4);
  564. UsePoint dlg;
  565. dlg.m_mode=1;
  566. dlg.m_memberno=m_memberno;
  567. dlg.m_name=m_name;
  568. dlg.m_sex=m_sex;
  569. dlg.m_phone=m_phone;
  570. dlg.m_point =m_List1.GetItemText (iItem,9);
  571. if(dlg.DoModal ()!=IDOK)return;
  572. GetData();
  573. }
  574. void ShowMember::OnButton19()
  575. {
  576. // TODO: Add your control notification handler code here
  577. // TODO: Add your control notification handler code here
  578. POSITION pos;
  579. pos=m_List1.GetFirstSelectedItemPosition();
  580. if(pos==NULL)
  581. {
  582. AfxMessageBox("请先选中您要赠送积分的会员!");
  583. return;
  584. }
  585. int iItem=m_List1.GetNextSelectedItem(pos);
  586. CString m_memberno=m_List1.GetItemText (iItem, 1);
  587. CString m_name=m_List1.GetItemText (iItem, 2);
  588. CString m_sex=m_List1.GetItemText (iItem, 3);
  589. CString m_phone=m_List1.GetItemText (iItem, 4);
  590. UsePoint dlg;
  591. dlg.m_mode=2;
  592. dlg.m_memberno=m_memberno;
  593. dlg.m_name=m_name;
  594. dlg.m_sex=m_sex;
  595. dlg.m_phone=m_phone;
  596. dlg.m_point =m_List1.GetItemText (iItem,9);
  597. if(dlg.DoModal ()!=IDOK)return;
  598. GetData();
  599. }
  600. void ShowMember::InputOK()
  601. {
  602. if(m_no.IsEmpty ())return;
  603. m_filter=m_no;
  604. m_no.Empty ();
  605. UpdateData(0);
  606. for(int ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  607. {
  608. if(m_List1.m_arLabels.ElementAt (ii).ElementAt (0)==m_filter)
  609. break;
  610. if(m_List1.m_arLabels.ElementAt (ii).ElementAt (4)==m_filter)
  611. {
  612. m_List1.SetItemState(ii,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);
  613. m_List1.EnsureVisible(ii,FALSE);
  614. return;
  615. }
  616. }
  617. MemberCardFunc dlg;
  618. dlg.m_memberno=m_filter;
  619. dlg.DoModal();
  620. GetData();
  621. }
  622. void ShowMember::GetData()
  623. {
  624. if(!m_bInit)return;
  625. UpdateData();
  626. if(g_bAllBranch==0)
  627. {
  628. g_sendhead.bsql=0;
  629. g_sendhead.code[0]=167;
  630. g_sendhead.tabcount=1;
  631. m_spinyear.EnableWindow(0);
  632. g_pMainWnd->ProcessChatMessageRequest2(1);
  633. if(g_bSendOK==0)
  634. {
  635. m_spinyear.EnableWindow(1);
  636. return;
  637. }
  638. m_spinyear.EnableWindow(1);
  639. DataToArray(&m_List1array);
  640. }
  641. else
  642. {
  643. m_spinyear.EnableWindow(0);
  644. //////////////数据汇总
  645. m_List1array.RemoveAll ();
  646. CString branch;
  647. for(int i=-1; i<g_brancharray.GetSize ()-1; i++)
  648. {
  649. if(i!=-1)
  650. {
  651. branch=g_brancharray.ElementAt (i).ElementAt (0);
  652. g_branchip=g_brancharray.ElementAt (i).ElementAt (1);
  653. g_pMainWnd->OnDisconnect();
  654. g_branchname=branch;
  655. g_bBranchModify=1;
  656. }
  657. else
  658. branch=g_brancharray.ElementAt (g_brancharray.GetSize ()-1).ElementAt (0);
  659. g_sendhead.bsql=0;
  660. g_sendhead.code[0]=167;
  661. g_sendhead.tabcount=1;
  662. g_pMainWnd->ProcessChatMessageRequest2(1);if(g_bSendOK==0)continue;
  663. CArray<CStringArray, CStringArray>List1array;
  664. DataToArray(&List1array);
  665. int size=m_List1array.GetSize ();
  666. for(int j=0; j<List1array.GetSize (); j++)
  667. {
  668. size++;
  669. m_List1array.SetSize(size , 1 );
  670. size--;
  671. m_List1array.ElementAt (size).Copy (List1array.ElementAt (j));
  672. m_List1array.ElementAt (size).InsertAt (0, branch);
  673. size++;
  674. }
  675. }
  676. g_pMainWnd->OnDisconnect();
  677. g_bBranchModify=0;g_branchip=g_branchname="";
  678. m_spinyear.EnableWindow(1);
  679. }
  680. HidePrice();
  681. FillGrid();
  682. }
  683. void ShowMember::OnChangeEDITyear()
  684. {
  685. // TODO: If this is a RICHEDIT control, the control will not
  686. // send this notification unless you override the MyFormView::OnInitDialog()
  687. // function and call CRichEditCtrl().SetEventMask()
  688. // with the ENM_CHANGE flag ORed into the mask.
  689. GetData();
  690. // TODO: Add your control notification handler code here
  691. }
  692. void ShowMember::OnButton20() // 发送短信按钮;
  693. {
  694. // TODO: Add your control notification handler code here
  695. POSITION pos;
  696. pos=m_List1.GetFirstSelectedItemPosition();
  697. if(pos==NULL)
  698. {
  699. AfxMessageBox("请先选中您要发送短信的会员!", MB_ICONINFORMATION);
  700. return;
  701. }
  702. int iItem;
  703. CStringArray array;
  704. while (pos)
  705. {
  706. iItem = m_List1.GetNextSelectedItem(pos);
  707. if(!m_List1.GetItemText (iItem, 3+m_nAdd).IsEmpty ())
  708. array.Add (m_List1.GetItemText (iItem, 3+m_nAdd));
  709. }
  710. SendMsgDlg dlg;
  711. dlg.m_mode=1;
  712. dlg.m_pArray=&array;
  713. dlg.DoModal ();
  714. }
  715. BOOL ShowMember::CheckExist(CString no)
  716. {
  717. for(int i=0; i<m_List1array.GetSize (); i++)
  718. {
  719. if(m_List1array.ElementAt (i).ElementAt (0)==no)return 1;
  720. }
  721. return 0;
  722. }
  723. void ConvertDate(CString &date)
  724. {
  725. date.Replace (".", "-");
  726. date.Replace ("/", "-");
  727. CString str=date;
  728. int pos=str.Find ("-");
  729. if(pos==-1)return;
  730. int year=atoi(str.Left (pos));
  731. str=str.Right (str.GetLength ()-pos-1);
  732. pos=str.Find ("-");
  733. if(pos==-1)return;
  734. int month=atoi(str.Left (pos));
  735. str=str.Right (str.GetLength ()-pos-1);
  736. int day=atoi(str);
  737. date.Format ("%d-%02d-%02d", year, month, day);
  738. }
  739. extern void CheckDate(CString &date);
  740. void ShowMember::OnButton21() // 导入按钮;
  741. {
  742. if(IsHasRights2new(18)==0)return;
  743. using namespace YExcel;
  744. BasicExcel e;
  745. CFileDialog fdlg(true, NULL,"", OFN_HIDEREADONLY, "Excel files(*.xls)|*.xls||");
  746. if(fdlg.DoModal ()!=IDOK)return;
  747. CString path=fdlg.GetPathName();
  748. e.Load(path);
  749. BasicExcelWorksheet* sheet1 = e.GetWorksheet("Sheet1");
  750. if (sheet1)
  751. {
  752. size_t maxRows = sheet1->GetTotalRows();
  753. size_t maxCols = sheet1->GetTotalCols();
  754. if(maxCols>7)maxCols=7;
  755. if(maxCols<7)
  756. {
  757. AfxMessageBox("格式不对:缺少项目!");return;
  758. }
  759. if(maxRows<2)
  760. {
  761. AfxMessageBox("没有资料!");return;
  762. }
  763. CStringArray array;
  764. for (size_t r=0; r<maxRows; ++r)
  765. {
  766. for (size_t c=0; c<maxCols; ++c)
  767. {
  768. BasicExcelCell* cell = sheet1->Cell(r,c);
  769. switch (cell->Type())
  770. {
  771. case BasicExcelCell::STRING:
  772. array.Add(cell->GetString());
  773. break;
  774. case BasicExcelCell::WSTRING:
  775. {
  776. int leng = wcslen(cell->GetWString());
  777. char* ppszA=new char[2*leng+1];
  778. memset(ppszA, 0, 2*leng+1);
  779. WideCharToMultiByte(CP_ACP,0,cell->GetWString(),-1,ppszA,leng*2,NULL,NULL);
  780. CString str=ppszA;
  781. str.TrimLeft();str.TrimRight();
  782. array.Add (str);
  783. delete []ppszA;
  784. }
  785. break;
  786. default:
  787. array.Add ("");
  788. }
  789. }
  790. if(r==0)
  791. {
  792. if(array.GetSize ()!=maxCols)
  793. {
  794. AfxMessageBox("资料读取错误");return;
  795. }
  796. if(array.ElementAt (0)!="会员卡号")
  797. {
  798. AfxMessageBox("格式错误2");return;
  799. }
  800. array.RemoveAll ();
  801. }
  802. }
  803. ///////////////////////
  804. CString sql,temp;
  805. CString m_name,strRes1;
  806. CString m_memberno,m_sex,m_date,m_phone,m_qq,m_birthday,m_point;
  807. int count=0;
  808. CStringArray noarray;
  809. for(int i=0; i<array.GetSize (); i+=7)
  810. {
  811. m_memberno=array.ElementAt (i+0);
  812. m_name=array.ElementAt (i+1);
  813. m_sex=array.ElementAt (i+2);
  814. m_phone=array.ElementAt (i+3);
  815. m_qq=array.ElementAt (i+4);
  816. m_birthday=array.ElementAt (i+5);
  817. m_point=array.ElementAt (i+6);
  818. ConvertDate(m_birthday);
  819. CheckDate(m_birthday);
  820. ChinesePinYin::GetFirstLetter(m_name, strRes1);
  821. if(m_name.IsEmpty () || m_memberno=="")continue;
  822. if(CheckExist(m_memberno))continue;
  823. if(::FindArray(&noarray, m_memberno)!=-1)continue;
  824. noarray.Add(m_memberno);
  825. temp.Format ("insert into [membermanage]([memberno],[name],[sex],[phone],[qq],[birthday],[date],[pinyin],[money])values('%s','%s','%s','%s','%s','%s','%s','%s','%s')",m_memberno,m_name,m_sex,m_phone,m_qq,m_birthday,g_date,strRes1,m_point);
  826. sql+=temp;
  827. sql+="***";
  828. temp="insert into memberreg([memberno],[dindanid],[money],[date],[type])values('"+m_memberno+"','导入初始积分','"+m_point+"','"+g_date+"','消费积分')";
  829. sql+=temp;
  830. sql+="***";
  831. count++;
  832. if(count==5)
  833. {
  834. sql.TrimRight ("***");
  835. g_sendhead.bsql=1;
  836. g_pMainWnd->ProcessChatMessageRequest2(sql);
  837. if(g_bSendOK==0)
  838. {
  839. AfxMessageBox("保存过程中出现错误!");
  840. return;
  841. }
  842. sql.Empty ();count=0;GetData();
  843. }
  844. ::Sleep(1000);
  845. }
  846. /////////////////////////////////////
  847. if(!sql.IsEmpty ())
  848. {
  849. sql.TrimRight ("***");
  850. g_sendhead.bsql=1;
  851. g_pMainWnd->ProcessChatMessageRequest2(sql);
  852. if(g_bSendOK==0)
  853. {
  854. AfxMessageBox("保存过程中出现错误!");
  855. return;
  856. }
  857. sql.Empty ();count=0;GetData();
  858. }
  859. AfxMessageBox("保存成功!");
  860. ///////////////////////
  861. }
  862. else
  863. AfxMessageBox("格式错误,或文件未关闭!!");
  864. }
  865. void ShowMember::OnButton24() // 导出按钮;
  866. {
  867. // TODO: Add your control notification handler code here
  868. if(IsHasRights2new(18)==0)return;
  869. ListToXLS(&m_List1, "c:\\会员资料.xls", 0);
  870. }
  871. void ShowMember::HidePrice()
  872. {
  873. #ifdef LKAY_VERSION
  874. if(IsHasRights2new(31))return;
  875. for(int i=0; i< m_List1array.GetSize (); i++)
  876. {
  877. m_List1array.ElementAt (i).SetAt (3, "***");
  878. }
  879. #endif
  880. }