TakeFrom.h 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. #if !defined(AFX_TakeFrom_H__ACD9E9EA_B724_4711_9C6F_DE3ADA090E2E__INCLUDED_)
  2. #define AFX_TakeFrom_H__ACD9E9EA_B724_4711_9C6F_DE3ADA090E2E__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. // TakeFrom.h : header file
  7. //
  8. /////////////////////////////////////////////////////////////////////////////
  9. // TakeFrom form view
  10. #ifndef __AFXEXT_H__
  11. #include <afxext.h>
  12. #endif
  13. // 门市流程 - 拍照视窗;
  14. class TakeFrom : public MyFormView
  15. {
  16. int m_nAdd;
  17. CArray<CStringArray, CStringArray>m_List1array; // case 25,视图takeview的数据;
  18. CArray<CStringArray, CStringArray>m_List1arrayBak;
  19. protected:
  20. TakeFrom(); // protected constructor used by dynamic creation
  21. DECLARE_DYNCREATE(TakeFrom)
  22. // Form Data
  23. public:
  24. //{{AFX_DATA(TakeFrom)
  25. enum { IDD = IDD_DLGTakeFrom };
  26. CComboBox m_combo1;
  27. CSortListCtrl2 m_List1;
  28. CStatic m_static1;
  29. CString m_filter;
  30. //}}AFX_DATA
  31. // Attributes
  32. public:
  33. // Operations
  34. public:
  35. void GetData();
  36. void HidePrice();
  37. void FillGrid(BOOL bStatus=0);
  38. // Overrides
  39. // ClassWizard generated virtual function overrides
  40. //{{AFX_VIRTUAL(TakeFrom)
  41. public:
  42. virtual void OnInitialUpdate();
  43. virtual BOOL PreTranslateMessage(MSG* pMsg);
  44. protected:
  45. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  46. //}}AFX_VIRTUAL
  47. // Implementation
  48. protected:
  49. virtual ~TakeFrom();
  50. #ifdef _DEBUG
  51. virtual void AssertValid() const;
  52. virtual void Dump(CDumpContext& dc) const;
  53. #endif
  54. // Generated message map functions
  55. //{{AFX_MSG(TakeFrom)
  56. afx_msg void OnBUTclose();
  57. afx_msg void OnButton1(); // 查询按钮;
  58. afx_msg void OnSelchangeCombo1();
  59. afx_msg void OnTimer(UINT nIDEvent);
  60. afx_msg void OnBUTimportphoto(); // 导入原片按钮;
  61. afx_msg void OnBUTshowphoto(); // 查看原片按钮;
  62. afx_msg void OnBUTmoney(); // 今拍按钮;
  63. afx_msg void OnBTNaddsp();
  64. afx_msg void OnItemchangedList2(NMHDR* pNMHDR, LRESULT* pResult);
  65. afx_msg void OnButton2(); // 客人头像按钮;
  66. afx_msg void OnClickList2(NMHDR* pNMHDR, LRESULT* pResult);
  67. afx_msg void OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult);
  68. afx_msg void OnBtnsearchfilter();
  69. afx_msg void OnBUTprint3();
  70. //}}AFX_MSG
  71. DECLARE_MESSAGE_MAP()
  72. #if JEFF_TEST_OFF
  73. typedef struct _STSceneryInfo_
  74. {
  75. BOOL bSelected; // 被选中;
  76. CString strScenery; // 景点;
  77. CString strStatus; // 拍照状态;
  78. CString strTime; // 拍照时间;
  79. CString strLensman; // 摄影师;
  80. CString strLensmanAssistant; // 摄影师助理;
  81. CString strBootDivision; // 引导师;
  82. CString strBootDivisionAssistant; // 引导师;
  83. _STSceneryInfo_()
  84. {
  85. bSelected = FALSE;
  86. }
  87. }STSceneryInfo;
  88. typedef struct _STOrederInfo_
  89. {
  90. CString strOrderNumber; // 订单号;
  91. CString strImageNumber; // 相片编号;
  92. CString strName1; // 姓名1;
  93. CString strName2; // 姓名2;
  94. CString strClerk; // 接单人;
  95. CString strPhone; // 手机;
  96. CString strTelPhone; // 座机;
  97. std::vector<STSceneryInfo> vtOrderScenery; // 订单景点;
  98. }STOrederInfo;
  99. // 选择行,获取订单的完整信息;
  100. int GetOrderInfo(STOrederInfo &OrederInfo,STSceneryInfo &tSceneryInfo)
  101. {
  102. // 可以从数据库中获得订单完整信息,只需要知道选中的是哪个景点就ok了。
  103. // 目前没这么做,直接从列表里获取。
  104. //ASSERT(m_List1 != NULL);
  105. POSITION pos = m_List1.GetFirstSelectedItemPosition();
  106. if (pos == NULL)
  107. {
  108. AfxMessageBox("请先选中您要导片的定单!", MB_ICONINFORMATION);
  109. return 0;
  110. }
  111. else
  112. {
  113. int nSelectedItem = m_List1.GetNextSelectedItem(pos);
  114. int nOrderNumberItem = nSelectedItem;
  115. // 判断选中行是否是头景点行(订单号不为空的行);
  116. while (m_List1.GetItemText(nOrderNumberItem, 0 + m_nAdd) == "")
  117. {
  118. // 将选中行以上的景点行添加到容器中;
  119. STSceneryInfo tagSceneryInfo;
  120. tagSceneryInfo.bSelected = (nOrderNumberItem == nSelectedItem) ? TRUE : FALSE;
  121. tagSceneryInfo.strScenery = m_List1.GetItemText(nOrderNumberItem, 4 + m_nAdd);
  122. tagSceneryInfo.strStatus = m_List1.GetItemText(nOrderNumberItem, 5 + m_nAdd);
  123. tagSceneryInfo.strTime = m_List1.GetItemText(nOrderNumberItem, 6 + m_nAdd);
  124. tagSceneryInfo.strLensman = m_List1.GetItemText(nOrderNumberItem, 7 + m_nAdd);
  125. tagSceneryInfo.strLensmanAssistant = m_List1.GetItemText(nOrderNumberItem, 8 + m_nAdd);
  126. tagSceneryInfo.strBootDivision = m_List1.GetItemText(nOrderNumberItem, 9 + m_nAdd);
  127. tagSceneryInfo.strBootDivisionAssistant = m_List1.GetItemText(nOrderNumberItem, 10 + m_nAdd);
  128. if ( nOrderNumberItem == nSelectedItem )
  129. {
  130. memcpy(&tSceneryInfo,&tagSceneryInfo,sizeof(STSceneryInfo));
  131. }
  132. OrederInfo.vtOrderScenery.push_back(tagSceneryInfo);
  133. --nOrderNumberItem;
  134. }
  135. // 用头景点行初始化订单信息;
  136. OrederInfo.strOrderNumber = m_List1.GetItemText(nOrderNumberItem, 0 + m_nAdd);
  137. OrederInfo.strName1 = m_List1.GetItemText(nOrderNumberItem, 1 + m_nAdd);
  138. OrederInfo.strName2 = m_List1.GetItemText(nOrderNumberItem, 2 + m_nAdd);
  139. OrederInfo.strImageNumber = m_List1.GetItemText(nOrderNumberItem, 3 + m_nAdd);
  140. OrederInfo.strClerk = m_List1.GetItemText(nOrderNumberItem, 11 + m_nAdd);
  141. OrederInfo.strPhone = m_List1.GetItemText(nOrderNumberItem, 14 + m_nAdd);
  142. OrederInfo.strTelPhone = m_List1.GetItemText(nOrderNumberItem, 15 + m_nAdd);
  143. // 将选中行以下的景点行添加到容器中;
  144. int nTheRestItem = nSelectedItem + 1;
  145. while (m_List1.GetItemText(nTheRestItem, 0 + m_nAdd) == "")
  146. {
  147. // 将选中行以下的非头景点行添加到容器中;
  148. STSceneryInfo tagSceneryInfo;
  149. //SceneryInfo.bSelected = (nOrderNumberItem == nSelectedItem) ? TRUE : FALSE;
  150. tagSceneryInfo.strScenery = m_List1.GetItemText(nTheRestItem, 4 + m_nAdd);
  151. tagSceneryInfo.strStatus = m_List1.GetItemText(nTheRestItem, 5 + m_nAdd);
  152. tagSceneryInfo.strTime = m_List1.GetItemText(nTheRestItem, 6 + m_nAdd);
  153. tagSceneryInfo.strLensman = m_List1.GetItemText(nTheRestItem, 7 + m_nAdd);
  154. tagSceneryInfo.strLensmanAssistant = m_List1.GetItemText(nTheRestItem, 8 + m_nAdd);
  155. tagSceneryInfo.strBootDivision = m_List1.GetItemText(nTheRestItem, 9 + m_nAdd);
  156. tagSceneryInfo.strBootDivisionAssistant = m_List1.GetItemText(nTheRestItem, 10 + m_nAdd);
  157. OrederInfo.vtOrderScenery.push_back(tagSceneryInfo);
  158. ++nTheRestItem;
  159. }
  160. // 止此,订单景点信息获取完毕;
  161. return nTheRestItem - nOrderNumberItem;
  162. }
  163. return 0;
  164. }
  165. STSceneryInfo& GetSelectedSceneryInfo(STOrederInfo &OrederInfo)
  166. {
  167. //STSceneryInfo *pSceneryInfo = NULL;
  168. std::vector<STSceneryInfo>::iterator it;
  169. for (it = OrederInfo.vtOrderScenery.begin(); it != OrederInfo.vtOrderScenery.end(); it++)
  170. {
  171. if ( it->bSelected )
  172. {
  173. return *it;
  174. }
  175. }
  176. //return *pSceneryInfo;
  177. }
  178. #endif
  179. public:
  180. afx_msg void OnBnClickedMicroshare();
  181. };
  182. /////////////////////////////////////////////////////////////////////////////
  183. //{{AFX_INSERT_LOCATION}}
  184. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  185. #endif // !defined(AFX_TakeFrom_H__ACD9E9EA_B724_4711_9C6F_DE3ADA090E2E__INCLUDED_)