ShowMember.cpp 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948
  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. }
  325. void ShowMember::OnButton1() // 查询按钮;
  326. {
  327. // TODO: Add your control notification handler code here
  328. UpdateData();
  329. m_filter.TrimLeft ();
  330. m_filter.TrimRight ();
  331. FillGrid();
  332. }
  333. void ShowMember::OnButton2() // 开新卡按钮;
  334. {
  335. // TODO: Add your control notification handler code here
  336. AddMember dlg;
  337. if(dlg.DoModal ()==IDOK)
  338. {
  339. GetData();
  340. }
  341. }
  342. void ShowMember::OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult)
  343. {
  344. // TODO: Add your control notification handler code here
  345. POSITION pos;
  346. pos=m_List1.GetFirstSelectedItemPosition();
  347. if(pos==NULL)
  348. {
  349. return;
  350. }
  351. int iItem=m_List1.GetNextSelectedItem(pos);
  352. CString branch;
  353. if(g_bAllBranch)
  354. branch=m_List1.GetItemText (iItem, 0);
  355. CString memberno=m_List1.GetItemText (iItem, 0+m_nAdd);
  356. while(memberno=="")
  357. {
  358. iItem--;
  359. memberno=m_List1.GetItemText (iItem, 0+m_nAdd);
  360. }
  361. MemberCardFunc dlg;
  362. dlg.m_branch=branch;
  363. dlg.m_memberno=memberno;
  364. dlg.DoModal(); GetData();
  365. *pResult = 0;
  366. }
  367. void ShowMember::OnButton3()
  368. {
  369. // TODO: Add your control notification handler code here
  370. POSITION pos;
  371. pos=m_List1.GetFirstSelectedItemPosition();
  372. if(pos==NULL)
  373. {
  374. AfxMessageBox("请先选中要查看的会员!");
  375. return;
  376. }
  377. int iItem=m_List1.GetNextSelectedItem(pos);
  378. CString memberno=m_List1.GetItemText (iItem, 1);
  379. ShowMemberReg dlg;
  380. dlg.m_memberno=memberno;
  381. dlg.DoModal ();
  382. }
  383. void ShowMember::OnButton4()
  384. {
  385. // TODO: Add your control notification handler code here
  386. POSITION pos;
  387. pos=m_List1.GetFirstSelectedItemPosition();
  388. if(pos==NULL)
  389. {
  390. AfxMessageBox("请先选中要查看的会员!");
  391. return;
  392. }
  393. int iItem=m_List1.GetNextSelectedItem(pos);
  394. CString memberno=m_List1.GetItemText (iItem, 1);
  395. ShowMemberReg dlg;
  396. dlg.m_mode=1;
  397. dlg.m_memberno=memberno;
  398. dlg.DoModal ();
  399. if(dlg.m_bNeedRefsh==0)return;
  400. GetData();
  401. }
  402. void ShowMember::OnButton5()
  403. {
  404. if(IsHasRights2new(49)==0)return;
  405. // TODO: Add your control notification handler code here
  406. POSITION pos;
  407. pos=m_List1.GetFirstSelectedItemPosition();
  408. if(pos==NULL)
  409. {
  410. AfxMessageBox("请先选中您要删除的会员!");
  411. return;
  412. }
  413. if(AfxMessageBox("删除后将不可恢复, 确认吗?", MB_YESNO|MB_ICONINFORMATION)!=IDYES)return;
  414. int iItem=m_List1.GetNextSelectedItem(pos);
  415. CString m_memberno=m_List1.GetItemText (iItem, 1);
  416. CString sql;
  417. sql="delete from membermanage where [memberno]='"+m_memberno+"'";
  418. sql+="***delete from memberreg where [memberno]='"+m_memberno+"'";
  419. sql+="***delete from memberreg2 where [memberno]='"+m_memberno+"'";
  420. sql+="***delete from memberreg3 where [memberno]='"+m_memberno+"'";
  421. sql+="***delete from memberreg4 where [memberno]='"+m_memberno+"'";
  422. sql+="***delete from membercard3usereg where [memberno]='"+m_memberno+"'";
  423. sql+="***delete from membercard2 where [memberno]='"+m_memberno+"'";
  424. sql+="***delete from membercard3 where [memberno]='"+m_memberno+"'";
  425. g_sendhead.bsql=1;
  426. g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return;
  427. GetData();
  428. }
  429. void ShowMember::OnButton6()
  430. {
  431. // TODO: Add your control notification handler code handler
  432. if(IsHasRights2new(18)==0)return;
  433. // TODO: Add your control notification code
  434. POSITION pos;
  435. pos=m_List1.GetFirstSelectedItemPosition();
  436. if(pos==NULL)
  437. {
  438. AfxMessageBox("请先选中您要积分的会员!");
  439. return;
  440. }
  441. int iItem=m_List1.GetNextSelectedItem(pos);
  442. CString m_memberno=m_List1.GetItemText (iItem, 1);
  443. CString m_name=m_List1.GetItemText (iItem, 2);
  444. CString m_sex=m_List1.GetItemText (iItem, 3);
  445. CString m_phone=m_List1.GetItemText (iItem, 4);
  446. InputCard2Point dlg;
  447. dlg.m_memberno=m_memberno;
  448. dlg.m_name=m_name;
  449. dlg.m_sex=m_sex;
  450. dlg.m_phone=m_phone;
  451. if(dlg.DoModal ()!=IDOK)return;
  452. GetData();
  453. }
  454. void ShowMember::OnButton10()
  455. {
  456. // TODO: Add your control notification handler code here
  457. if(IsHasRights2new(18)==0)return;
  458. // TODO: Add your control notification handler code here
  459. POSITION pos;
  460. pos=m_List1.GetFirstSelectedItemPosition();
  461. if(pos==NULL)
  462. {
  463. AfxMessageBox("请先选中主卡!");
  464. return;
  465. }
  466. int iItem=m_List1.GetNextSelectedItem(pos);
  467. CString name=m_List1.GetItemText (iItem, 2);
  468. CString no=m_List1.GetItemText (iItem, 1);
  469. InputCard2Dlg dlg;
  470. dlg.m_name =name;
  471. dlg.m_no =no;
  472. dlg.DoModal ();
  473. }
  474. void ShowMember::OnButton11()
  475. {
  476. // TODO: Add your control notification handler code here
  477. if(IsHasRights2new(18)==0)return;
  478. // TODO: Add your control notification handler code here
  479. POSITION pos;
  480. pos=m_List1.GetFirstSelectedItemPosition();
  481. if(pos==NULL)
  482. {
  483. AfxMessageBox("请先选中主卡!");
  484. return;
  485. }
  486. int iItem=m_List1.GetNextSelectedItem(pos);
  487. CString no=m_List1.GetItemText (iItem, 1);
  488. CString filter="[memberno]='"+no+"'";
  489. g_sendhead.bsql=0;
  490. g_sendhead.code[0]=127;
  491. g_sendhead.tabcount=1;
  492. g_pMainWnd->ProcessChatMessageRequest2(filter);if(g_bSendOK==0)return;
  493. DataToArray(&g_List1array);
  494. if(g_List1array.GetSize ()==0)
  495. {
  496. AfxMessageBox("此主卡未发放副卡!");
  497. }
  498. else
  499. {
  500. ShowCard2Reg dlg;
  501. dlg.DoModal ();
  502. }
  503. }
  504. void ShowMember::OnButton8()
  505. {
  506. // TODO: Add your control notification handler code here
  507. POSITION pos;
  508. pos=m_List1.GetFirstSelectedItemPosition();
  509. if(pos==NULL)
  510. {
  511. AfxMessageBox("请先选中您要兑换积分的会员!");
  512. return;
  513. }
  514. int iItem=m_List1.GetNextSelectedItem(pos);
  515. CString m_memberno=m_List1.GetItemText (iItem, 1);
  516. CString m_name=m_List1.GetItemText (iItem, 2);
  517. CString m_sex=m_List1.GetItemText (iItem, 3);
  518. CString m_phone=m_List1.GetItemText (iItem, 4);
  519. UsePoint dlg;
  520. dlg.m_memberno=m_memberno;
  521. dlg.m_name=m_name;
  522. dlg.m_sex=m_sex;
  523. dlg.m_phone=m_phone;
  524. dlg.m_point =m_List1.GetItemText (iItem,9);
  525. if(dlg.DoModal ()!=IDOK)return;
  526. GetData();
  527. }
  528. void ShowMember::OnButton15()
  529. {
  530. // TODO: Add your control notification handler code here
  531. if(IsHasRights2new(18)==0)return;
  532. // TODO: Add your control notification handler code here
  533. POSITION pos;
  534. pos=m_List1.GetFirstSelectedItemPosition();
  535. if(pos==NULL)
  536. {
  537. AfxMessageBox("请先选中主卡!");
  538. return;
  539. }
  540. int iItem=m_List1.GetNextSelectedItem(pos);
  541. CString name=m_List1.GetItemText (iItem, 2);
  542. CString no=m_List1.GetItemText (iItem, 1);
  543. InputCard3Dlg dlg;
  544. dlg.m_name =name;
  545. dlg.m_no =no;
  546. dlg.DoModal ();
  547. }
  548. void ShowMember::OnButton14()
  549. {
  550. // TODO: Add your control notification handler code here
  551. POSITION pos;
  552. pos=m_List1.GetFirstSelectedItemPosition();
  553. if(pos==NULL)
  554. {
  555. AfxMessageBox("请先选中您要赠送积分的会员!");
  556. return;
  557. }
  558. int iItem=m_List1.GetNextSelectedItem(pos);
  559. CString m_memberno=m_List1.GetItemText (iItem, 1);
  560. CString m_name=m_List1.GetItemText (iItem, 2);
  561. CString m_sex=m_List1.GetItemText (iItem, 3);
  562. CString m_phone=m_List1.GetItemText (iItem, 4);
  563. UsePoint dlg;
  564. dlg.m_mode=1;
  565. dlg.m_memberno=m_memberno;
  566. dlg.m_name=m_name;
  567. dlg.m_sex=m_sex;
  568. dlg.m_phone=m_phone;
  569. dlg.m_point =m_List1.GetItemText (iItem,9);
  570. if(dlg.DoModal ()!=IDOK)return;
  571. GetData();
  572. }
  573. void ShowMember::OnButton19()
  574. {
  575. // TODO: Add your control notification handler code here
  576. // TODO: Add your control notification handler code here
  577. POSITION pos;
  578. pos=m_List1.GetFirstSelectedItemPosition();
  579. if(pos==NULL)
  580. {
  581. AfxMessageBox("请先选中您要赠送积分的会员!");
  582. return;
  583. }
  584. int iItem=m_List1.GetNextSelectedItem(pos);
  585. CString m_memberno=m_List1.GetItemText (iItem, 1);
  586. CString m_name=m_List1.GetItemText (iItem, 2);
  587. CString m_sex=m_List1.GetItemText (iItem, 3);
  588. CString m_phone=m_List1.GetItemText (iItem, 4);
  589. UsePoint dlg;
  590. dlg.m_mode=2;
  591. dlg.m_memberno=m_memberno;
  592. dlg.m_name=m_name;
  593. dlg.m_sex=m_sex;
  594. dlg.m_phone=m_phone;
  595. dlg.m_point =m_List1.GetItemText (iItem,9);
  596. if(dlg.DoModal ()!=IDOK)return;
  597. GetData();
  598. }
  599. void ShowMember::InputOK()
  600. {
  601. if(m_no.IsEmpty ())return;
  602. m_filter=m_no;
  603. m_no.Empty ();
  604. UpdateData(0);
  605. for(int ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  606. {
  607. if(m_List1.m_arLabels.ElementAt (ii).ElementAt (0)==m_filter)
  608. break;
  609. if(m_List1.m_arLabels.ElementAt (ii).ElementAt (4)==m_filter)
  610. {
  611. m_List1.SetItemState(ii,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);
  612. m_List1.EnsureVisible(ii,FALSE);
  613. return;
  614. }
  615. }
  616. MemberCardFunc dlg;
  617. dlg.m_memberno=m_filter;
  618. dlg.DoModal();
  619. GetData();
  620. }
  621. void ShowMember::GetData()
  622. {
  623. if(!m_bInit)return;
  624. UpdateData();
  625. if(g_bAllBranch==0)
  626. {
  627. g_sendhead.bsql=0;
  628. g_sendhead.code[0]=167;
  629. g_sendhead.tabcount=1;
  630. m_spinyear.EnableWindow(0);
  631. g_pMainWnd->ProcessChatMessageRequest2(1);
  632. if(g_bSendOK==0)
  633. {
  634. m_spinyear.EnableWindow(1);
  635. return;
  636. }
  637. m_spinyear.EnableWindow(1);
  638. DataToArray(&m_List1array);
  639. }
  640. else
  641. {
  642. m_spinyear.EnableWindow(0);
  643. //////////////数据汇总
  644. m_List1array.RemoveAll ();
  645. CString branch;
  646. for(int i=-1; i<g_brancharray.GetSize ()-1; i++)
  647. {
  648. if(i!=-1)
  649. {
  650. branch=g_brancharray.ElementAt (i).ElementAt (0);
  651. g_branchip=g_brancharray.ElementAt (i).ElementAt (1);
  652. g_pMainWnd->OnDisconnect();
  653. g_branchname=branch;
  654. g_bBranchModify=1;
  655. }
  656. else
  657. branch=g_brancharray.ElementAt (g_brancharray.GetSize ()-1).ElementAt (0);
  658. g_sendhead.bsql=0;
  659. g_sendhead.code[0]=167;
  660. g_sendhead.tabcount=1;
  661. g_pMainWnd->ProcessChatMessageRequest2(1);if(g_bSendOK==0)continue;
  662. CArray<CStringArray, CStringArray>List1array;
  663. DataToArray(&List1array);
  664. int size=m_List1array.GetSize ();
  665. for(int j=0; j<List1array.GetSize (); j++)
  666. {
  667. size++;
  668. m_List1array.SetSize(size , 1 );
  669. size--;
  670. m_List1array.ElementAt (size).Copy (List1array.ElementAt (j));
  671. m_List1array.ElementAt (size).InsertAt (0, branch);
  672. size++;
  673. }
  674. }
  675. g_pMainWnd->OnDisconnect();
  676. g_bBranchModify=0;g_branchip=g_branchname="";
  677. m_spinyear.EnableWindow(1);
  678. }
  679. HidePrice();
  680. FillGrid();
  681. }
  682. void ShowMember::OnChangeEDITyear()
  683. {
  684. // TODO: If this is a RICHEDIT control, the control will not
  685. // send this notification unless you override the MyFormView::OnInitDialog()
  686. // function and call CRichEditCtrl().SetEventMask()
  687. // with the ENM_CHANGE flag ORed into the mask.
  688. GetData();
  689. // TODO: Add your control notification handler code here
  690. }
  691. void ShowMember::OnButton20() // 发送短信按钮;
  692. {
  693. // TODO: Add your control notification handler code here
  694. POSITION pos;
  695. pos=m_List1.GetFirstSelectedItemPosition();
  696. if(pos==NULL)
  697. {
  698. AfxMessageBox("请先选中您要发送短信的会员!", MB_ICONINFORMATION);
  699. return;
  700. }
  701. int iItem;
  702. CStringArray array;
  703. while (pos)
  704. {
  705. iItem = m_List1.GetNextSelectedItem(pos);
  706. if(!m_List1.GetItemText (iItem, 3+m_nAdd).IsEmpty ())
  707. array.Add (m_List1.GetItemText (iItem, 3+m_nAdd));
  708. }
  709. SendMsgDlg dlg;
  710. dlg.m_mode=1;
  711. dlg.m_pArray=&array;
  712. dlg.DoModal ();
  713. }
  714. BOOL ShowMember::CheckExist(CString no)
  715. {
  716. for(int i=0; i<m_List1array.GetSize (); i++)
  717. {
  718. if(m_List1array.ElementAt (i).ElementAt (0)==no)return 1;
  719. }
  720. return 0;
  721. }
  722. void ConvertDate(CString &date)
  723. { date.Replace (".", "-");
  724. date.Replace ("/", "-");
  725. CString str=date;
  726. int pos=str.Find ("-");
  727. if(pos==-1)return;
  728. int year=atoi(str.Left (pos));
  729. str=str.Right (str.GetLength ()-pos-1);
  730. pos=str.Find ("-");
  731. if(pos==-1)return;
  732. int month=atoi(str.Left (pos));
  733. str=str.Right (str.GetLength ()-pos-1);
  734. int day=atoi(str);
  735. date.Format ("%d-%02d-%02d", year, month, day);
  736. }
  737. extern void CheckDate(CString &date);
  738. void ShowMember::OnButton21() // 导入按钮;
  739. {
  740. if(IsHasRights2new(18)==0)return;
  741. using namespace YExcel;
  742. BasicExcel e;
  743. CFileDialog fdlg(true, NULL,"", OFN_HIDEREADONLY, "Excel files(*.xls)|*.xls||");
  744. if(fdlg.DoModal ()!=IDOK)return;
  745. CString path=fdlg.GetPathName();
  746. e.Load(path);
  747. BasicExcelWorksheet* sheet1 = e.GetWorksheet("Sheet1");
  748. if (sheet1)
  749. {
  750. size_t maxRows = sheet1->GetTotalRows();
  751. size_t maxCols = sheet1->GetTotalCols();
  752. if(maxCols>7)maxCols=7;
  753. if(maxCols<7)
  754. {
  755. AfxMessageBox("格式不对:缺少项目!");return;
  756. }
  757. if(maxRows<2)
  758. {
  759. AfxMessageBox("没有资料!");return;
  760. }
  761. CStringArray array;
  762. for (size_t r=0; r<maxRows; ++r)
  763. {
  764. for (size_t c=0; c<maxCols; ++c)
  765. {
  766. BasicExcelCell* cell = sheet1->Cell(r,c);
  767. switch (cell->Type())
  768. {
  769. case BasicExcelCell::STRING:
  770. array.Add(cell->GetString());
  771. break;
  772. case BasicExcelCell::WSTRING:
  773. {
  774. int leng = wcslen(cell->GetWString());
  775. char* ppszA=new char[2*leng+1];
  776. memset(ppszA, 0, 2*leng+1);
  777. WideCharToMultiByte(CP_ACP,0,cell->GetWString(),-1,ppszA,leng*2,NULL,NULL);
  778. CString str=ppszA;
  779. str.TrimLeft();str.TrimRight();
  780. array.Add (str);
  781. delete []ppszA;
  782. }
  783. break;
  784. default:
  785. array.Add ("");
  786. }
  787. }
  788. if(r==0)
  789. {
  790. if(array.GetSize ()!=maxCols)
  791. {
  792. AfxMessageBox("资料读取错误");return;
  793. }
  794. if(array.ElementAt (0)!="会员卡号")
  795. {
  796. AfxMessageBox("格式错误2");return;
  797. }
  798. array.RemoveAll ();
  799. }
  800. }
  801. ///////////////////////
  802. CString sql,temp;
  803. CString m_name,strRes1;
  804. CString m_memberno,m_sex,m_date,m_phone,m_qq,m_birthday,m_point;
  805. int count=0;
  806. CStringArray noarray;
  807. for(int i=0; i<array.GetSize (); i+=7)
  808. {
  809. m_memberno=array.ElementAt (i+0);
  810. m_name=array.ElementAt (i+1);
  811. m_sex=array.ElementAt (i+2);
  812. m_phone=array.ElementAt (i+3);
  813. m_qq=array.ElementAt (i+4);
  814. m_birthday=array.ElementAt (i+5);
  815. m_point=array.ElementAt (i+6);
  816. ConvertDate(m_birthday);
  817. CheckDate(m_birthday);
  818. GetFirstLetter(m_name, strRes1);
  819. if(m_name.IsEmpty () || m_memberno=="")continue;
  820. if(CheckExist(m_memberno))continue;
  821. if(::FindArray(&noarray, m_memberno)!=-1)continue;
  822. noarray.Add(m_memberno);
  823. 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);
  824. sql+=temp;
  825. sql+="***";
  826. temp="insert into memberreg([memberno],[dindanid],[money],[date],[type])values('"+m_memberno+"','导入初始积分','"+m_point+"','"+g_date+"','消费积分')";
  827. sql+=temp;
  828. sql+="***";
  829. count++;
  830. if(count==5)
  831. {
  832. sql.TrimRight ("***");
  833. g_sendhead.bsql=1;
  834. g_pMainWnd->ProcessChatMessageRequest2(sql);
  835. if(g_bSendOK==0)
  836. {
  837. AfxMessageBox("保存过程中出现错误!");
  838. return;
  839. }
  840. sql.Empty ();count=0;GetData();
  841. }
  842. ::Sleep(1000);
  843. }
  844. /////////////////////////////////////
  845. if(!sql.IsEmpty ())
  846. {
  847. sql.TrimRight ("***");
  848. g_sendhead.bsql=1;
  849. g_pMainWnd->ProcessChatMessageRequest2(sql);
  850. if(g_bSendOK==0)
  851. {
  852. AfxMessageBox("保存过程中出现错误!");
  853. return;
  854. }
  855. sql.Empty ();count=0;GetData();
  856. }
  857. AfxMessageBox("保存成功!");
  858. ///////////////////////
  859. }
  860. else
  861. AfxMessageBox("格式错误,或文件未关闭!!");
  862. }
  863. void ShowMember::OnButton24() // 导出按钮;
  864. {
  865. // TODO: Add your control notification handler code here
  866. if(IsHasRights2new(18)==0)return;
  867. ListToXLS(&m_List1, "c:\\会员资料.xls", 1);
  868. }
  869. void ShowMember::HidePrice()
  870. {
  871. #ifdef LKAY_VERSION
  872. if(IsHasRights2new(31))return;
  873. for(int i=0; i< m_List1array.GetSize (); i++)
  874. {
  875. m_List1array.ElementAt (i).SetAt (3, "***");
  876. }
  877. #endif
  878. }