HospitalClient.cpp 28 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034
  1. // HospitalClient.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ylgl.h"
  5. #include "HospitalClient.h"
  6. #include "MyMdi.H"
  7. #include "ModifyDinDan.h"
  8. #include "NeroDlg.h"
  9. #include "ClientRequirement.h"
  10. #include "ChooseDesignSkin.h"
  11. #include "./helper/ffsco.h"
  12. #include "AddHospitalClient.h"
  13. #include "SendMsgDlg.h"
  14. #ifdef _DEBUG
  15. #define new DEBUG_NEW
  16. #undef THIS_FILE
  17. static char THIS_FILE[] = __FILE__;
  18. #endif
  19. #pragma comment(lib, "Shlwapi.lib")
  20. /////////////////////////////////////////////////////////////////////////////
  21. // HospitalClient
  22. IMPLEMENT_DYNCREATE(HospitalClient, MyFormView)
  23. HospitalClient::HospitalClient()
  24. : MyFormView(HospitalClient::IDD)
  25. {
  26. m_datetype = 0;
  27. m_date2 = GetTmFromStr(g_date);
  28. m_date1 = m_date2 - CTimeSpan(30, 0, 0, 0);
  29. m_addr = _T("");
  30. m_phone = _T("");
  31. m_bSearchAll = 0;
  32. m_id = _T("");
  33. m_name = _T("");
  34. //}}AFX_DATA_INIT
  35. }
  36. HospitalClient::~HospitalClient()
  37. {
  38. }
  39. void HospitalClient::DoDataExchange(CDataExchange* pDX)
  40. {
  41. MyFormView::DoDataExchange(pDX);
  42. //{{AFX_DATA_MAP(HospitalClient)
  43. DDX_Control(pDX, IDC_COMBOclerk, clerkCombo);
  44. DDX_Control(pDX, IDC_COMBOtype, typeCombo);
  45. DDX_Control(pDX, IDC_COMBOfrom, fromCombo);
  46. DDX_Control(pDX, IDC_COMBOhospital, hospitalCombo);
  47. DDX_Control(pDX, IDC_COMBObusinessintention, businessintentionCombo);
  48. DDX_Control(pDX, IDC_COMBObusinesstype, businesstypeCombo);
  49. DDX_Control(pDX, IDC_LIST2, m_List1);
  50. DDX_Control(pDX, IDC_STATIC1, m_static1);
  51. DDX_Radio(pDX, IDC_RADIO1, m_datetype);
  52. DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKERdate1, m_date1);
  53. DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKERdate2, m_date2);
  54. DDX_Text(pDX, IDC_EDITaddr1, m_addr);
  55. DDX_Text(pDX, IDC_EDITphone1, m_phone);
  56. DDX_Text(pDX, IDC_EDITid, m_id);
  57. DDX_Text(pDX, IDC_EDITname, m_name);
  58. //}}AFX_DATA_MAP
  59. }
  60. BEGIN_MESSAGE_MAP(HospitalClient, MyFormView)
  61. //{{AFX_MSG_MAP(HospitalClient)
  62. ON_BN_CLICKED(IDC_BUTclose, OnBUTclose)
  63. ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
  64. ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
  65. ON_WM_TIMER()
  66. ON_BN_CLICKED(IDC_BUTshowphoto, OnBUTshowphoto)
  67. ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
  68. ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST2, OnItemchangedList2)
  69. ON_BN_CLICKED(IDC_BUTburncd, OnBUTHospitalClient)
  70. ON_NOTIFY(NM_DBLCLK, IDC_LIST2, OnDblclkList2)
  71. ON_BN_CLICKED(IDC_BUTburncd2, OnBUTburncd2)
  72. ON_BN_CLICKED(IDC_BUTburncd3, OnBUTburncd3)
  73. ON_BN_CLICKED(IDC_BUTsendmsg, OnBUTsendmsg)
  74. ON_BN_CLICKED(IDC_BUTprint3, OnBUTprint3)
  75. //}}AFX_MSG_MAP
  76. END_MESSAGE_MAP()
  77. /////////////////////////////////////////////////////////////////////////////
  78. // HospitalClient diagnostics
  79. #ifdef _DEBUG
  80. void HospitalClient::AssertValid() const
  81. {
  82. MyFormView::AssertValid();
  83. }
  84. void HospitalClient::Dump(CDumpContext& dc) const
  85. {
  86. MyFormView::Dump(dc);
  87. }
  88. #endif //_DEBUG
  89. /////////////////////////////////////////////////////////////////////////////
  90. // HospitalClient message handlers
  91. void HospitalClient::OnInitialUpdate()
  92. {
  93. //AfxMessageBox("意向查询");//Jeff
  94. MyFormView::OnInitialUpdate();
  95. // GetDlgItem(IDC_BUTburncd)->EnableWindow(IsHasRights2new(0));
  96. // GetDlgItem(IDC_BUTburncd2)->EnableWindow(IsHasRights2new(0));
  97. GetDlgItem(IDC_BUTburncd3)->EnableWindow(IsHasRights2new(49));
  98. GetDlgItem(IDC_BUTprint3)->EnableWindow(IsHasRights2new(49));
  99. // TODO: Add your specialized code here and/or call the base class
  100. CMyMdi Mdi;
  101. Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this);
  102. // Here we create the outbar control using the splitter as its parent
  103. // and setting its id to the first pane.
  104. CRect rc2;
  105. GetWindowRect(rc2);
  106. ::MoveWindow(m_hWnd, g_rc.left, g_rc.top, g_rc.Width(), g_rc.Height(), TRUE);
  107. EnumChildWindows(m_hWnd, (WNDENUMPROC)EnumChildProc, 0);
  108. int idarray[] = { IDC_BUTburncd, IDC_BUTburncd2, IDC_BUTburncd3, IDC_BUTsendmsg, IDC_BUTprint3, IDC_BUTclose };
  109. int idcount = 6;
  110. int btnwid;
  111. CRect prerc;
  112. for (int a = idcount - 2; a >= 0; a--)
  113. {
  114. GetDlgItem(idarray[a + 1])->GetWindowRect(prerc);
  115. ScreenToClient(prerc);
  116. GetDlgItem(idarray[a])->GetWindowRect(rc2);
  117. ScreenToClient(rc2);
  118. btnwid = rc2.Width();
  119. rc2.right = prerc.left;
  120. rc2.left = rc2.right - btnwid;
  121. GetDlgItem(idarray[a])->MoveWindow(rc2);
  122. }
  123. m_static1.SetFont(&g_titlefont);
  124. #if 0 // Jeff 2014.05.19
  125. m_List1.SetHeadings("来单批号,100;客户姓名,100;宝宝姓名,100;宝宝性别,100;区域,100;类别,100;医院,100;电话1,100;电话2,100;QQ,100;地址1,100;地址2,100;地址3,100;录入日期,100;门市,100;录入员,100;业务种类,100;业务意向,100;预约日期,100;上门地址,100;备注,100" );
  126. #else
  127. m_List1.SetHeadings("来单批号,100;客户姓名,100;宝宝姓名,100;宝宝性别,100;生日类型,100;宝宝生日/预产期,130;区域,100;类别,100;医院,100;电话1,100;电话2,100;QQ,100;地址1,100;地址2,100;地址3,100;录入日期,100;门市,100;录入员,100;业务种类,100;业务意向,100;预约日期,100;上门地址,100;备注,100");
  128. #endif
  129. m_List1.LoadColumnInfo(144);
  130. m_List1.m_bSortSupport = 0;
  131. g_sendhead.bsql = 0;
  132. g_sendhead.code[0] = 200;
  133. g_sendhead.code[1] = 201;
  134. g_sendhead.code[2] = 202;
  135. g_sendhead.code[3] = 203;
  136. g_sendhead.code[4] = 82;
  137. g_sendhead.tabcount = 5;
  138. //LOG4C((LOG_NOTICE,"ProcessChatMessageRequest2=3"));
  139. g_pMainWnd->ProcessChatMessageRequest2(3);
  140. if (g_bSendOK)
  141. {
  142. CArray<CStringArray, CStringArray>List1array;
  143. CArray<CStringArray, CStringArray>List2array;
  144. CArray<CStringArray, CStringArray>List3array;
  145. CArray<CStringArray, CStringArray>List4array;
  146. CArray<CStringArray, CStringArray>List5array;
  147. DataToArray(&List1array, &List2array, &List3array, &List4array, &List5array);
  148. int ii = 0;
  149. for ( ii = 0; ii < List1array.GetSize(); ii++)
  150. businesstypeCombo.AddString(List1array.ElementAt(ii).ElementAt(0));
  151. for (ii = 0; ii < List2array.GetSize(); ii++)
  152. businessintentionCombo.AddString(List2array.ElementAt(ii).ElementAt(0));
  153. for (ii = 0; ii < List3array.GetSize(); ii++)
  154. typeCombo.AddString(List3array.ElementAt(ii).ElementAt(0));
  155. for (ii = 0; ii < List4array.GetSize(); ii++)
  156. hospitalCombo.AddString(List4array.ElementAt(ii).ElementAt(0));
  157. for (ii = 0; ii < List5array.GetSize(); ii++)
  158. fromCombo.AddString(List5array.ElementAt(ii).ElementAt(0));
  159. businesstypeCombo.AddString("");
  160. businessintentionCombo.AddString("");
  161. typeCombo.AddString("");
  162. hospitalCombo.AddString("");
  163. fromCombo.AddString("");
  164. }
  165. GetData();
  166. }
  167. void HospitalClient::OnBUTclose()
  168. {
  169. // TODO: Add your control notification handler code here
  170. GetParent()->SendMessage(WM_CLOSE);
  171. }
  172. void HospitalClient::OnSelchangeCombo1()
  173. {
  174. // TODO: Add your control notification handler code here
  175. SetTimer(1, 100, NULL);
  176. }
  177. void HospitalClient::OnTimer(UINT nIDEvent)
  178. {
  179. // TODO: Add your message handler code here and/or call default
  180. KillTimer(nIDEvent);
  181. OnButton1();
  182. }
  183. BOOL HospitalClient::PreTranslateMessage(MSG* pMsg)
  184. {
  185. // TODO: Add your specialized code here and/or call the base class
  186. try
  187. {
  188. if (pMsg->message == WM_KEYDOWN)
  189. {
  190. switch (pMsg->wParam)
  191. {
  192. case VK_RETURN:
  193. OnButton1();
  194. return 1;
  195. case 0x43: // copy
  196. if ((GetKeyState(VK_CONTROL) & 0x80))
  197. {
  198. GetFocus()->SendMessage(WM_COPY);
  199. return TRUE;
  200. }
  201. break;
  202. case 0x56: //Ctrl + V:
  203. if ((GetKeyState(VK_CONTROL) & 0x80))
  204. {
  205. GetFocus()->SendMessage(WM_PASTE);
  206. return TRUE;
  207. }
  208. break;
  209. case 0x58: // cut
  210. if ((GetKeyState(VK_CONTROL) & 0x80))
  211. {
  212. GetFocus()->SendMessage(WM_CUT);
  213. return TRUE;
  214. }
  215. break;
  216. case 0x5A: //undo
  217. case 0x59: //redo
  218. if ((GetKeyState(VK_CONTROL) & 0x80))
  219. {
  220. GetFocus()->SendMessage(WM_UNDO);
  221. return TRUE;
  222. }
  223. break;
  224. }
  225. }
  226. }
  227. catch (...)
  228. {
  229. }
  230. return MyFormView::PreTranslateMessage(pMsg);
  231. }
  232. extern int CALLBACK BrowseProc(HWND hwnd, UINT msg, LPARAM lParam, LPARAM lpData);
  233. /*{
  234. switch(msg)
  235. {
  236. case BFFM_INITIALIZED:
  237. SendMessage(hwnd, BFFM_SETSELECTION, TRUE, NULL);
  238. break;
  239. case BFFM_SELCHANGED:
  240. {
  241. char szFileName[MAX_PATH];
  242. LPITEMIDLIST pidlCurrent = (LPITEMIDLIST)lParam;
  243. SHGetPathFromIDList(pidlCurrent, szFileName);
  244. SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, (LPARAM)szFileName);
  245. }
  246. break;
  247. }
  248. return 0;
  249. }*/
  250. void HospitalClient::GetSavePath(CString &path)
  251. {
  252. char lpszDisplayName[MAX_PATH], szFileName[MAX_PATH];
  253. LPITEMIDLIST pidlDesktop, pidlCurrent;
  254. if (SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pidlDesktop)
  255. == NOERROR)
  256. {
  257. BROWSEINFO bi;
  258. bi.hwndOwner = this->m_hWnd;
  259. bi.pidlRoot = pidlDesktop;
  260. bi.pszDisplayName = lpszDisplayName;
  261. bi.lpszTitle = "\n文档保存的目录:";
  262. bi.ulFlags = BIF_STATUSTEXT&BIF_RETURNONLYFSDIRS;
  263. bi.lpfn = BrowseProc;
  264. bi.lParam = 0;
  265. bi.iImage = 0;
  266. pidlCurrent = SHBrowseForFolder(&bi);
  267. SHGetPathFromIDList(pidlCurrent, szFileName);
  268. path = szFileName;
  269. }
  270. }
  271. int HospitalClient::FindArray(CStringArray *pArray, CString Str)
  272. {
  273. for (int i = 0; i < pArray->GetSize(); i++)
  274. {
  275. if (pArray->ElementAt(i) == Str)
  276. return i;
  277. }
  278. return -1;
  279. }
  280. void HospitalClient::GetNo(CString str, CStringArray &array)
  281. {
  282. if (!str.IsEmpty())
  283. {
  284. #ifdef USE_SEP_VEB
  285. int pos = str.Find(SEPS_VEB);
  286. #else
  287. int pos = str.Find(",");
  288. #endif
  289. while (pos != -1)
  290. {
  291. if (FindArray(&array, str.Left(pos)) == -1)
  292. array.Add(str.Left(pos));
  293. str = str.Right(str.GetLength() - pos - 1);
  294. #ifdef USE_SEP_VEB
  295. pos = str.Find(SEPS_VEB);
  296. #else
  297. pos = str.Find(",");
  298. #endif
  299. }
  300. if (FindArray(&array, str) == -1)
  301. array.Add(str);
  302. }
  303. }
  304. CString HospitalClient::GetSelName(CString name, CArray<CStringArray, CStringArray>&spnamearray)
  305. {
  306. CString ret;
  307. #ifdef USE_SEP_VEB
  308. name = SEPS_VEB + name + SEPS_VEB;
  309. #else
  310. name = "," + name + ",";
  311. #endif
  312. CString str;
  313. for (int i = 0; i < spnamearray.GetSize(); i++)
  314. {
  315. #ifdef USE_SEP_VEB
  316. str = SEPS_VEB + spnamearray.ElementAt(i).ElementAt(6) + SEPS_VEB;
  317. #else
  318. str = "," + spnamearray.ElementAt(i).ElementAt(6) + ",";
  319. #endif
  320. if (str.Find(name) != -1)
  321. {
  322. ret += spnamearray.ElementAt(i).ElementAt(5);
  323. ret += ";";
  324. }
  325. }
  326. ret.TrimRight(";");
  327. ret.Replace("*", "x");
  328. return ret;
  329. }
  330. void HospitalClient::OnBUTshowphoto()
  331. {
  332. // TODO: Add your control notification handler code here
  333. POSITION pos;
  334. pos = m_List1.GetFirstSelectedItemPosition();
  335. if (pos == NULL)
  336. {
  337. AfxMessageBox("请先选中您要查看的定单!", MB_ICONINFORMATION);
  338. return;
  339. }
  340. int iItem = m_List1.GetNextSelectedItem(pos);
  341. CString status = m_List1.GetItemText(iItem, 4);
  342. CString id = m_List1.GetItemText(iItem, 0);
  343. if (status == "未设计")
  344. {
  345. AfxMessageBox("此单未导片!", MB_ICONINFORMATION);
  346. return;
  347. }
  348. /* ShowPic dlg;
  349. dlg.m_path=g_path3+"\\";
  350. dlg.m_path+=id;
  351. dlg.m_path +="\\";
  352. dlg.DoModal ();*/
  353. ChooseDesignSkin dlg;
  354. dlg.SetLiaPath("3.lia");
  355. dlg.m_strOrderNumber = id;
  356. dlg.m_path = g_path3 + "\\";
  357. dlg.m_path += id;
  358. dlg.m_path += "\\";
  359. dlg.DoModal();
  360. for (int i = 0; i < m_List1array.GetSize(); i++)
  361. {
  362. if (id == m_List1array.ElementAt(i).ElementAt(0))
  363. {
  364. m_List1array.ElementAt(i).SetAt(7, dlg.m_bz2);
  365. // FillGrid();
  366. break;
  367. }
  368. }
  369. }
  370. // Jeff 2014.05.20:开始查询按钮;
  371. void HospitalClient::OnButton1() // 开始查询按钮;
  372. {
  373. // TODO: Add your control notification handler code here
  374. m_bSearchAll = 0;
  375. FillGrid();
  376. }
  377. // 全部查询按钮;
  378. void HospitalClient::OnButton2()// 全部查询按钮;
  379. {
  380. // TODO: Add your control notification handler code here
  381. m_bSearchAll = 1;
  382. FillGrid();
  383. }
  384. void HospitalClient::OnItemchangedList2(NMHDR* pNMHDR, LRESULT* pResult)
  385. {
  386. NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
  387. // TODO: Add your control notification handler code here
  388. *pResult = 0;
  389. }
  390. void HospitalClient::OnBUTHospitalClient()
  391. {
  392. // TODO: Add your control notification handler code here
  393. AddHospitalClient dlg;
  394. dlg.DoModal();
  395. GetData();
  396. }
  397. void HospitalClient::OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult)
  398. {
  399. // TODO: Add your control notification handler code here
  400. POSITION pos;
  401. pos = m_List1.GetFirstSelectedItemPosition();
  402. if (pos == NULL)return;
  403. OnBUTburncd2();
  404. *pResult = 0;
  405. }
  406. void HospitalClient::OnBUTburncd2() // 修改按钮;
  407. {
  408. // TODO: Add your control notification handler code here
  409. POSITION pos;
  410. pos = m_List1.GetFirstSelectedItemPosition();
  411. if (pos == NULL)
  412. {
  413. AfxMessageBox("请先选中您要修改的客户!", MB_ICONINFORMATION);
  414. return;
  415. }
  416. int iItem = m_List1.GetNextSelectedItem(pos);
  417. CString id = m_List1.GetItemText(iItem, 0);
  418. while (id == "")
  419. {
  420. iItem--;
  421. id = m_List1.GetItemText(iItem, 0);
  422. }
  423. AddHospitalClient dlg;
  424. dlg.bAdd = 0;
  425. dlg.no = id;
  426. dlg.DoModal();
  427. GetData();
  428. }
  429. void HospitalClient::OnBUTburncd3()
  430. {
  431. // TODO: Add your control notification handler code here
  432. POSITION pos;
  433. pos = m_List1.GetFirstSelectedItemPosition();
  434. if (pos == NULL)
  435. {
  436. AfxMessageBox("请先选中您要删除的客户!", MB_ICONINFORMATION);
  437. return;
  438. }
  439. int iItem = m_List1.GetNextSelectedItem(pos);
  440. CString id = m_List1.GetItemText(iItem, 0);
  441. while (id == "")
  442. {
  443. iItem--;
  444. id = m_List1.GetItemText(iItem, 0);
  445. }
  446. if (AfxMessageBox("确认删除吗?", MB_YESNO | MB_ICONINFORMATION) != IDYES)return;
  447. CString sql;
  448. sql.Format("delete from hospitalclient where id='%s'***delete from hospitalclientcontactreg where id='%s'", id, id);
  449. g_sendhead.bsql = 1;
  450. g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return;
  451. GetData();
  452. }
  453. void HospitalClient::OnBUTsendmsg() // 发短信 按钮;
  454. {
  455. // TODO: Add your control notification handler code here
  456. POSITION pos;
  457. pos = m_List1.GetFirstSelectedItemPosition();
  458. if (pos == NULL)
  459. {
  460. AfxMessageBox("请先选中您要发送短信的客人!", MB_ICONINFORMATION);
  461. return;
  462. }
  463. int iItem;
  464. CStringArray array;
  465. while (pos)
  466. {
  467. iItem = m_List1.GetNextSelectedItem(pos);
  468. // 获取手机号码;
  469. if (!m_List1.GetItemText(iItem, 9).IsEmpty())
  470. array.Add(m_List1.GetItemText(iItem, 9));
  471. if (!m_List1.GetItemText(iItem, 10).IsEmpty())
  472. array.Add(m_List1.GetItemText(iItem, 10));
  473. }
  474. SendMsgDlg dlg;
  475. dlg.m_mode = 2;
  476. dlg.m_pArray = &array;
  477. dlg.DoModal();
  478. }
  479. void HospitalClient::OnBUTprint3() // 导出按钮;
  480. {
  481. ListToXLS(&m_List1, "c:\\意向单列表.xls", 0);
  482. }
  483. // 获取数据
  484. void HospitalClient::GetData()
  485. {
  486. g_sendhead.bsql = 0;
  487. g_sendhead.code[0] = 205;
  488. g_sendhead.tabcount = 1;
  489. g_pMainWnd->ProcessChatMessageRequest2(1);
  490. if (g_bSendOK == 0)
  491. return;
  492. DataToArray(&m_List1array);
  493. if (m_List1array.GetSize())
  494. {
  495. CString id = m_List1array.ElementAt(0).ElementAt(0);
  496. for (int ii = 1; ii < m_List1array.GetSize(); ii++)
  497. {
  498. if (m_List1array.ElementAt(ii).ElementAt(0) == id)
  499. {
  500. m_List1array.ElementAt(ii).SetAt(0, "");
  501. m_List1array.ElementAt(ii).SetAt(1, "");
  502. m_List1array.ElementAt(ii).SetAt(2, "");
  503. m_List1array.ElementAt(ii).SetAt(3, "");
  504. m_List1array.ElementAt(ii).SetAt(4, "");
  505. m_List1array.ElementAt(ii).SetAt(5, "");
  506. m_List1array.ElementAt(ii).SetAt(6, "");
  507. m_List1array.ElementAt(ii).SetAt(7, "");
  508. m_List1array.ElementAt(ii).SetAt(8, "");
  509. m_List1array.ElementAt(ii).SetAt(9, "");
  510. m_List1array.ElementAt(ii).SetAt(10, "");
  511. m_List1array.ElementAt(ii).SetAt(11, "");
  512. m_List1array.ElementAt(ii).SetAt(12, "");
  513. m_List1array.ElementAt(ii).SetAt(13, "");
  514. m_List1array.ElementAt(ii).SetAt(14, "");
  515. m_List1array.ElementAt(ii).SetAt(15, "");
  516. m_List1array.ElementAt(ii).SetAt(21, "");
  517. m_List1array.ElementAt(ii).SetAt(22, "");
  518. m_List1array.ElementAt(ii).SetAt(23, ""); // Jeff Add 20014.05.20
  519. m_List1array.ElementAt(ii).SetAt(24, ""); // Jeff Add 20014.05.20
  520. }
  521. else
  522. id = m_List1array.ElementAt(ii).ElementAt(0);
  523. }
  524. }
  525. FillGrid();
  526. }
  527. void HospitalClient::FillGrid()
  528. {
  529. UpdateData();
  530. m_List1.DeleteAllItems2();
  531. int ii = 0;
  532. int maxsize = m_List1array.GetSize();
  533. m_List1.m_arLabels.SetSize(m_List1array.GetSize(), 1);
  534. CArray<int, int>signarray;
  535. int i = 0;
  536. for ( i = 0; i < maxsize; i++)
  537. signarray.Add(1);
  538. int count = 0;
  539. CArray<int, int>posarray;
  540. if (m_bSearchAll) // 查询全部hostpitalview的记录;
  541. {
  542. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  543. {
  544. #if 0 // Jeff;
  545. // LOG4C((LOG_NOTICE,"生日类型:%s",m_List1array.ElementAt(ii).ElementAt(4)));
  546. if ( m_List1array.ElementAt(ii).ElementAt(4) == "0")
  547. m_List1array.ElementAt(ii).SetAt(4,"宝宝生日");
  548. else
  549. m_List1array.ElementAt(ii).SetAt(4,"预产期");
  550. #endif
  551. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  552. }
  553. }
  554. else
  555. {
  556. CString date1 = m_date1.Format("%Y-%m-%d");
  557. CString date2 = m_date2.Format("%Y-%m-%d");
  558. CString type, hospital, from, clerk, businesstype, businessintention;
  559. // 客户类别;
  560. int pos = typeCombo.GetCurSel();
  561. if (pos != -1)
  562. {
  563. typeCombo.GetLBText(pos, type);
  564. }
  565. // 来单医院;
  566. pos = hospitalCombo.GetCurSel();
  567. if (pos != -1)
  568. {
  569. hospitalCombo.GetLBText(pos, hospital);
  570. }
  571. // 客户区域;
  572. pos = fromCombo.GetCurSel();
  573. if (pos != -1)
  574. {
  575. fromCombo.GetLBText(pos, from);
  576. }
  577. // 门市;
  578. pos = clerkCombo.GetCurSel();
  579. if (pos != -1)
  580. {
  581. clerkCombo.GetLBText(pos, clerk);
  582. }
  583. // 业务种类;
  584. pos = businesstypeCombo.GetCurSel();
  585. if (pos != -1)
  586. {
  587. businesstypeCombo.GetLBText(pos, businesstype);
  588. }
  589. // 业务意向;
  590. pos = businessintentionCombo.GetCurSel();
  591. if (pos != -1)
  592. {
  593. businessintentionCombo.GetLBText(pos, businessintention);
  594. }
  595. // 上门时间;
  596. if (m_datetype)
  597. {
  598. BOOL bFinded = 0;
  599. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  600. {
  601. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0).IsEmpty())
  602. {
  603. continue;
  604. }
  605. //if(m_List1array.ElementAt (ii).ElementAt (13)<date1 || m_List1array.ElementAt (ii).ElementAt (13)>date2)//Jeff:hostpitalview加了两个字段,这里不是13
  606. if (m_List1array.ElementAt(ii).ElementAt(15) < date1 || m_List1array.ElementAt(ii).ElementAt(15) > date2)
  607. {
  608. signarray.SetAt(ii, 0);
  609. bFinded = 0;
  610. continue;
  611. }
  612. bFinded = 1;
  613. }
  614. }
  615. // 客户区域;
  616. if (from != "")
  617. {
  618. BOOL bFinded = 0;
  619. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  620. {
  621. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0).IsEmpty())
  622. {
  623. continue;
  624. }
  625. //if(m_List1array.ElementAt (ii).ElementAt (4)!=from)////Jeff:hostpitalview加了两个字段,这里不为4
  626. if (m_List1array.ElementAt(ii).ElementAt(6) != from)
  627. {
  628. signarray.SetAt(ii, 0);
  629. bFinded = 0;
  630. continue;
  631. }
  632. bFinded = 1;
  633. }
  634. }
  635. // 客户类别;
  636. if (type != "")
  637. {
  638. BOOL bFinded = 0;
  639. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  640. {
  641. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0).IsEmpty())
  642. {
  643. continue;
  644. }
  645. //if(m_List1array.ElementAt (ii).ElementAt (5)!=type)//Jeff:hostpitalview加了两个字段,这里不为5
  646. if (m_List1array.ElementAt(ii).ElementAt(7) != type)
  647. {
  648. signarray.SetAt(ii, 0);
  649. bFinded = 0;
  650. continue;
  651. }
  652. bFinded = 1;
  653. }
  654. }
  655. // 来单医院;
  656. if (hospital != "")
  657. {
  658. BOOL bFinded = 0;
  659. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  660. {
  661. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0).IsEmpty())
  662. {
  663. continue;
  664. }
  665. //if(m_List1array.ElementAt (ii).ElementAt (6)!=hospital)//Jeff:hostpitalview加了两个字段,这里不为6
  666. if (m_List1array.ElementAt(ii).ElementAt(8) != hospital)
  667. {
  668. signarray.SetAt(ii, 0);
  669. bFinded = 0;
  670. continue;
  671. }
  672. bFinded = 1;
  673. }
  674. }
  675. // 门市;
  676. if (clerk != "")
  677. {
  678. BOOL bFinded = 0;
  679. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  680. {
  681. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0).IsEmpty())
  682. {
  683. continue;
  684. }
  685. //if(m_List1array.ElementAt (ii).ElementAt (14)!=clerk)//Jeff:hostpitalview加了两个字段,这里不为14
  686. if (m_List1array.ElementAt(ii).ElementAt(16) != clerk)//
  687. {
  688. signarray.SetAt(ii, 0);
  689. bFinded = 0;
  690. continue;
  691. }
  692. bFinded = 1;
  693. }
  694. }
  695. // 手机;
  696. if (m_phone != "")
  697. {
  698. BOOL bFinded = 0;
  699. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  700. {
  701. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0).IsEmpty())
  702. {
  703. continue;
  704. }
  705. //Jeff:hostpitalview加了两个字段,这里不为7/8
  706. //if(m_List1array.ElementAt (ii).ElementAt (7).Find(m_phone)==-1 && m_List1array.ElementAt (ii).ElementAt (8).Find(m_phone)==-1)
  707. if (m_List1array.ElementAt(ii).ElementAt(9).Find(m_phone) == -1 && m_List1array.ElementAt(ii).ElementAt(10).Find(m_phone) == -1)
  708. {
  709. signarray.SetAt(ii, 0);
  710. bFinded = 0;
  711. continue;
  712. }
  713. bFinded = 1;
  714. }
  715. }
  716. // 地址;
  717. if (m_addr != "")
  718. {
  719. BOOL bFinded = 0;
  720. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  721. {
  722. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0).IsEmpty())
  723. {
  724. continue;
  725. }
  726. //Jeff:hostpitalview加了两个字段,这里不为10/11/12
  727. //if(m_List1array.ElementAt (ii).ElementAt (10).Find(m_addr)==-1 && m_List1array.ElementAt (ii).ElementAt (11).Find(m_addr)==-1 && m_List1array.ElementAt (ii).ElementAt (12).Find(m_addr)==-1)
  728. if (m_List1array.ElementAt(ii).ElementAt(12).Find(m_addr) == -1 && m_List1array.ElementAt(ii).ElementAt(13).Find(m_addr) == -1 && m_List1array.ElementAt(ii).ElementAt(14).Find(m_addr) == -1)
  729. {
  730. signarray.SetAt(ii, 0);
  731. bFinded = 0;
  732. continue;
  733. }
  734. bFinded = 1;
  735. }
  736. }
  737. // 单号;
  738. if (m_id != "")
  739. {
  740. BOOL bFinded = 0;
  741. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  742. {
  743. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0).IsEmpty())
  744. {
  745. continue;
  746. }
  747. if (m_List1array.ElementAt(ii).ElementAt(0).Find(m_id) == -1)
  748. {
  749. signarray.SetAt(ii, 0);
  750. bFinded = 0;
  751. continue;
  752. }
  753. bFinded = 1;
  754. }
  755. }
  756. // 名字;
  757. if (m_name != "")
  758. {
  759. m_name.MakeUpper();
  760. BOOL bFinded = 0;
  761. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  762. {
  763. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0).IsEmpty())
  764. {
  765. continue;
  766. }
  767. //Jeff:hostpitalview加了两个字段,这里不为21/22
  768. //if(m_List1array.ElementAt (ii).ElementAt (1).Find(m_name)==-1 && m_List1array.ElementAt (ii).ElementAt (2).Find(m_name)==-1 && m_List1array.ElementAt (ii).ElementAt (21).Find(m_name)==-1 && m_List1array.ElementAt (ii).ElementAt (22).Find(m_name)==-1)
  769. if (m_List1array.ElementAt(ii).ElementAt(1).Find(m_name) == -1 && m_List1array.ElementAt(ii).ElementAt(2).Find(m_name) == -1 && m_List1array.ElementAt(ii).ElementAt(23).Find(m_name) == -1 && m_List1array.ElementAt(ii).ElementAt(24).Find(m_name) == -1)
  770. {
  771. signarray.SetAt(ii, 0);
  772. bFinded = 0;
  773. continue;
  774. }
  775. bFinded = 1;
  776. }
  777. }
  778. // 日期类型;
  779. if (m_datetype == 0)
  780. {
  781. BOOL bFinded = 0;
  782. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  783. {
  784. if (0)//bFinded && m_List1array.ElementAt (ii).ElementAt (0).IsEmpty ())
  785. {
  786. continue;
  787. }
  788. //Jeff:hostpitalview加了两个字段,这里不为18
  789. //if(m_List1array.ElementAt (ii).ElementAt (18)<date1 || m_List1array.ElementAt (ii).ElementAt (18)>date2)
  790. if (m_List1array.ElementAt(ii).ElementAt(20) < date1 || m_List1array.ElementAt(ii).ElementAt(20) > date2)
  791. {
  792. signarray.SetAt(ii, 0);
  793. bFinded = 0;
  794. continue;
  795. }
  796. bFinded = 1;
  797. }
  798. }
  799. // 业务类型;
  800. if (businesstype != "")
  801. {
  802. BOOL bFinded = 0;
  803. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  804. {
  805. if (0)//bFinded && m_List1array.ElementAt (ii).ElementAt (0).IsEmpty ())
  806. {
  807. continue;
  808. }
  809. //Jeff:hostpitalview加了两个字段,这里不为16
  810. //if(m_List1array.ElementAt (ii).ElementAt (16)!=businesstype)
  811. if (m_List1array.ElementAt(ii).ElementAt(18) != businesstype)
  812. {
  813. signarray.SetAt(ii, 0);
  814. bFinded = 0;
  815. continue;
  816. }
  817. bFinded = 1;
  818. }
  819. }
  820. // 业务意向;
  821. if (businessintention != "")
  822. {
  823. BOOL bFinded = 0;
  824. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  825. {
  826. if (0)//bFinded && m_List1array.ElementAt (ii).ElementAt (0).IsEmpty ())
  827. {
  828. continue;
  829. }
  830. //Jeff:hostpitalview加了两个字段,这里不为17
  831. //if(m_List1array.ElementAt (ii).ElementAt (17)!=businessintention)
  832. if (m_List1array.ElementAt(ii).ElementAt(19) != businessintention)
  833. {
  834. signarray.SetAt(ii, 0);
  835. bFinded = 0;
  836. continue;
  837. }
  838. bFinded = 1;
  839. }
  840. }
  841. for (ii = 0; ii < signarray.GetSize(); ii++)
  842. {
  843. if (signarray.ElementAt(ii))
  844. {
  845. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  846. posarray.Add(ii);
  847. }
  848. }
  849. }
  850. m_List1.m_arLabels.SetSize(count, 1);
  851. // 非全部查询;
  852. if (m_bSearchAll == 0)
  853. {
  854. for ( i = 0; i < posarray.GetSize(); i++)
  855. {
  856. int pos = posarray.ElementAt(i);
  857. CString id = m_List1array.ElementAt(pos).ElementAt(0);
  858. while (id == "")
  859. {
  860. pos--;
  861. id = m_List1array.ElementAt(pos).ElementAt(0);
  862. }
  863. posarray.SetAt(i, pos);
  864. }
  865. for (i = 0; i < count; i++)
  866. {
  867. if (m_List1.m_arLabels.ElementAt(i).ElementAt(0) == "")
  868. {
  869. int pos = posarray.ElementAt(i);
  870. m_List1.m_arLabels.ElementAt(i).SetAt(0, m_List1array.ElementAt(pos).ElementAt(0));
  871. m_List1.m_arLabels.ElementAt(i).SetAt(1, m_List1array.ElementAt(pos).ElementAt(1));
  872. m_List1.m_arLabels.ElementAt(i).SetAt(2, m_List1array.ElementAt(pos).ElementAt(2));
  873. m_List1.m_arLabels.ElementAt(i).SetAt(3, m_List1array.ElementAt(pos).ElementAt(3));
  874. #if 0 // Jeff
  875. // LOG4C((LOG_NOTICE,"生日类型:%s",m_List1array.ElementAt(pos).ElementAt(4)));
  876. // 生日类型:预产期、
  877. CString strBirthdayType = "";
  878. if ( m_List1array.ElementAt(pos).ElementAt(4) == "0")
  879. {
  880. strBirthdayType = "宝宝生日";
  881. }
  882. else
  883. {
  884. strBirthdayType = "预产期";
  885. }
  886. m_List1.m_arLabels.ElementAt (i).SetAt (4, strBirthdayType );
  887. #else
  888. m_List1.m_arLabels.ElementAt(i).SetAt(4, m_List1array.ElementAt(pos).ElementAt(4));
  889. #endif
  890. m_List1.m_arLabels.ElementAt(i).SetAt(5, m_List1array.ElementAt(pos).ElementAt(5));
  891. m_List1.m_arLabels.ElementAt(i).SetAt(6, m_List1array.ElementAt(pos).ElementAt(6));
  892. m_List1.m_arLabels.ElementAt(i).SetAt(7, m_List1array.ElementAt(pos).ElementAt(7));
  893. m_List1.m_arLabels.ElementAt(i).SetAt(8, m_List1array.ElementAt(pos).ElementAt(8));
  894. m_List1.m_arLabels.ElementAt(i).SetAt(9, m_List1array.ElementAt(pos).ElementAt(9));
  895. m_List1.m_arLabels.ElementAt(i).SetAt(10, m_List1array.ElementAt(pos).ElementAt(10));
  896. m_List1.m_arLabels.ElementAt(i).SetAt(11, m_List1array.ElementAt(pos).ElementAt(11));
  897. m_List1.m_arLabels.ElementAt(i).SetAt(12, m_List1array.ElementAt(pos).ElementAt(12));
  898. m_List1.m_arLabels.ElementAt(i).SetAt(13, m_List1array.ElementAt(pos).ElementAt(13));
  899. m_List1.m_arLabels.ElementAt(i).SetAt(14, m_List1array.ElementAt(pos).ElementAt(14));
  900. m_List1.m_arLabels.ElementAt(i).SetAt(15, m_List1array.ElementAt(pos).ElementAt(15));
  901. m_List1.m_arLabels.ElementAt(i).SetAt(21, m_List1array.ElementAt(pos).ElementAt(21));
  902. m_List1.m_arLabels.ElementAt(i).SetAt(22, m_List1array.ElementAt(pos).ElementAt(22));
  903. m_List1.m_arLabels.ElementAt(i).SetAt(23, m_List1array.ElementAt(pos).ElementAt(21));// add Jeff 0214.05.21
  904. m_List1.m_arLabels.ElementAt(i).SetAt(24, m_List1array.ElementAt(pos).ElementAt(22));// add Jeff 0214.05.21
  905. }
  906. }
  907. if (m_List1.m_arLabels.GetSize())
  908. {
  909. CString id = m_List1.m_arLabels.ElementAt(0).ElementAt(0);
  910. for (int ii = 1; ii < m_List1.m_arLabels.GetSize(); ii++)
  911. {
  912. if (m_List1.m_arLabels.ElementAt(ii).ElementAt(0) == id)
  913. {
  914. m_List1.m_arLabels.ElementAt(ii).SetAt(0, "");
  915. m_List1.m_arLabels.ElementAt(ii).SetAt(1, "");
  916. m_List1.m_arLabels.ElementAt(ii).SetAt(2, "");
  917. m_List1.m_arLabels.ElementAt(ii).SetAt(3, "");
  918. m_List1.m_arLabels.ElementAt(ii).SetAt(4, "");
  919. m_List1.m_arLabels.ElementAt(ii).SetAt(5, "");
  920. m_List1.m_arLabels.ElementAt(ii).SetAt(6, "");
  921. m_List1.m_arLabels.ElementAt(ii).SetAt(7, "");
  922. m_List1.m_arLabels.ElementAt(ii).SetAt(8, "");
  923. m_List1.m_arLabels.ElementAt(ii).SetAt(9, "");
  924. m_List1.m_arLabels.ElementAt(ii).SetAt(10, "");
  925. m_List1.m_arLabels.ElementAt(ii).SetAt(11, "");
  926. m_List1.m_arLabels.ElementAt(ii).SetAt(12, "");
  927. m_List1.m_arLabels.ElementAt(ii).SetAt(13, "");
  928. m_List1.m_arLabels.ElementAt(ii).SetAt(14, "");
  929. m_List1.m_arLabels.ElementAt(ii).SetAt(15, "");
  930. m_List1.m_arLabels.ElementAt(ii).SetAt(21, "");
  931. m_List1.m_arLabels.ElementAt(ii).SetAt(22, "");
  932. m_List1.m_arLabels.ElementAt(ii).SetAt(23, "");// add by Jeff 2014.05.21
  933. m_List1.m_arLabels.ElementAt(ii).SetAt(24, "");// add by Jeff 2014.05.21
  934. }
  935. else
  936. id = m_List1.m_arLabels.ElementAt(ii).ElementAt(0);
  937. }
  938. }
  939. }
  940. ii = count;
  941. m_List1.m_LabelCount = ii;
  942. m_List1.SetItemCountEx(ii);
  943. CString str;
  944. str.Format("项目:%d", ii);
  945. SetDlgItemText(IDC_STATIC2, str);
  946. }