N8Process.h 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. /************************************************************************/
  2. /* Copyright (C), 2016-2020, [IT], 保留所有权利;
  3. /* 模 块 名:;
  4. /* 描 述:;
  5. /*
  6. /* 版 本:[V];
  7. /* 作 者:[IT];
  8. /* 日 期:[5/15/2016];
  9. /*
  10. /*
  11. /* 注 意:;
  12. /*
  13. /* 修改记录:[IT];
  14. /* 修改日期:;
  15. /* 修改版本:;
  16. /* 修改内容:;
  17. /************************************************************************/
  18. #ifndef __N8_PROCESS__
  19. #define __N8_PROCESS__
  20. #include "Markup.h"
  21. #include <vector>
  22. using namespace std;
  23. #pragma once
  24. namespace N8Process
  25. {
  26. //////////////////////////////////////////////////////////////////////////
  27. // 基类;
  28. class CN8XML
  29. {
  30. public:
  31. CN8XML(){
  32. m_bLoad = FALSE;
  33. m_strXMLPath.Empty();
  34. };
  35. ~CN8XML(){};
  36. BOOL m_bLoad;
  37. void SetXMLPath(IN LPCTSTR lpXMLPath){
  38. if ( lpXMLPath == NULL || !PathFileExists(lpXMLPath) )
  39. return;
  40. m_strXMLPath = lpXMLPath;
  41. };
  42. BOOL IsPathExists() {
  43. if ( m_strXMLPath.IsEmpty() || !PathFileExists(m_strXMLPath) )
  44. return FALSE;
  45. return TRUE;
  46. };
  47. CString& GetPath(){return m_strXMLPath;};
  48. private:
  49. CString m_strXMLPath;
  50. };
  51. //////////////////////////////////////////////////////////////////////////
  52. // N8产品列表product.xml;
  53. class CProductList:public CN8XML
  54. {
  55. public:
  56. CProductList(){};
  57. ~CProductList(){};
  58. class CItem
  59. {
  60. public:
  61. CItem(){
  62. m_strProductID = _T("");
  63. m_strProductName = _T("");
  64. m_strProductWidth = _T("");
  65. m_strProductHeight = _T("");
  66. };
  67. ~CItem(){};
  68. CString m_strProductID; // 产品ID;
  69. CString m_strProductName; // 产品名;
  70. CString m_strProductWidth; // 产品宽;
  71. CString m_strProductHeight; // 产品高;
  72. };
  73. CArray<CItem, CItem> m_AryItems;
  74. public:
  75. BOOL CreateXML(IN LPCTSTR lpXMLPath)
  76. {
  77. CMarkup xml;
  78. if ( xml.Load(lpXMLPath) )
  79. return TRUE;
  80. xml.SetDoc(_T("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"));
  81. xml.AddElem(_T("nemovg"));
  82. return xml.Save(lpXMLPath);
  83. };
  84. BOOL LoadXML(IN LPCTSTR lpXMLPath = NULL);
  85. BOOL IsItemExists(IN LPCTSTR lpProductName);
  86. BOOL IsItemExists(IN LPCTSTR lpProductID, IN LPCTSTR lpProductName);
  87. // 插入productList.xml产品项;
  88. BOOL InsertItem(IN LPCTSTR lpProductID, IN LPCTSTR lpProductName, IN LPCTSTR lpProductWidth, IN LPCTSTR lpProductHeiht);
  89. // 删除指定ID或名称的产品;
  90. BOOL RemoveItemByID(IN LPCTSTR lpProductID);
  91. BOOL RemoveItemByName(IN LPCTSTR lpProductName);
  92. };
  93. //////////////////////////////////////////////////////////////////////////
  94. // 员工类;
  95. class CStaff:public CN8XML
  96. {
  97. public:
  98. CStaff(){};
  99. ~CStaff(){};
  100. class CItem
  101. {
  102. public:
  103. CItem(){
  104. m_strStaffID = _T("");
  105. m_strStaffName = _T("");
  106. };
  107. ~CItem(){};
  108. CString m_strStaffID; // 员工ID;
  109. CString m_strStaffName; // 员工名称;
  110. };
  111. CArray<CItem, CItem> m_AryItems;
  112. public:
  113. BOOL CreateXML(IN LPCTSTR lpXMLPath)
  114. {
  115. CMarkup xml;
  116. if ( xml.Load(lpXMLPath) )
  117. return TRUE;
  118. xml.SetDoc(_T("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"));
  119. xml.AddElem(_T("nemovg"));
  120. return xml.Save(lpXMLPath);
  121. };
  122. BOOL LoadXML(IN LPCTSTR lpXMLPath = NULL);
  123. BOOL IsItemExists(IN LPCTSTR lpStaffID);
  124. BOOL InsertItem(IN LPCTSTR lpStaffID, IN LPCTSTR lpStaffName);
  125. BOOL RemoveItemByID(IN LPCTSTR lpStaffID);
  126. };
  127. //////////////////////////////////////////////////////////////////////////
  128. // 选版结果产品类;
  129. class CResultProduct:public CN8XML
  130. {
  131. public:
  132. CResultProduct(){};
  133. ~CResultProduct(){};
  134. public:
  135. typedef struct _SubItem_
  136. {
  137. _SubItem_(){
  138. m_strID = _T("");
  139. m_strComment = _T("");
  140. m_strReplease = _T("");
  141. };
  142. CString m_strID; // 版面;
  143. CString m_strComment; // 备注;
  144. CString m_strReplease; // 要替换的相片;
  145. }SubItem;
  146. class CItem
  147. {
  148. public:
  149. CItem(){
  150. m_strProductID = _T("");
  151. m_strProductComment = _T("");
  152. m_strProductName = _T("");
  153. m_strProductWidth = _T("");
  154. m_strProductHeight = _T("");
  155. };
  156. ~CItem(){};
  157. CString m_strProductID;
  158. CString m_strProductComment;
  159. CString m_strProductName;
  160. CString m_strProductWidth;
  161. CString m_strProductHeight;
  162. vector<SubItem> m_ArySubItems;
  163. protected:
  164. private:
  165. };
  166. CArray<CItem,CItem> m_AryItems;
  167. public:
  168. BOOL CreateXML(IN LPCTSTR lpXMLPath)
  169. {
  170. CMarkup xml;
  171. if ( xml.Load(lpXMLPath) )
  172. return TRUE;
  173. xml.SetDoc(_T("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"));
  174. xml.AddElem(_T("prdlist"));
  175. xml.AddAttrib(_T("version"), _T("1.0"));
  176. return xml.Save(lpXMLPath);
  177. };
  178. BOOL LoadXML(IN LPCTSTR lpXMLPath = NULL);
  179. BOOL IsItemExists(IN LPCTSTR lpID, IN LPCTSTR lpName);
  180. BOOL InsertItem(IN LPCTSTR lpID, IN LPCTSTR lpComment, IN LPCTSTR lpName, IN LPCTSTR lpWidth, IN LPCTSTR lpHeight);
  181. BOOL InsertSubItem(IN LPCTSTR lpID, IN LPCTSTR lpName, IN LPCTSTR lpSubID, IN LPCTSTR lpSubComment, IN LPCTSTR lpSubReplease);
  182. };
  183. //////////////////////////////////////////////////////////////////////////
  184. // 选版结果产品类;
  185. class CResultVgProduct:public CN8XML
  186. {
  187. public:
  188. CResultVgProduct(){};
  189. ~CResultVgProduct(){};
  190. class CItem
  191. {
  192. public:
  193. CItem(){
  194. m_strProductID = _T("");
  195. m_strProductComment = _T("");
  196. m_strProductName = _T("");
  197. m_strProductWidth = _T("");
  198. m_strProductHeight = _T("");
  199. };
  200. ~CItem(){};
  201. CString m_strProductID;
  202. CString m_strProductComment;
  203. CString m_strProductName;
  204. CString m_strProductWidth;
  205. CString m_strProductHeight;
  206. vector<CString> m_ArySubItems;
  207. protected:
  208. private:
  209. };
  210. CArray<CItem,CItem> m_AryItems;
  211. public:
  212. BOOL CreateXML(IN LPCTSTR lpXMLPath)
  213. {
  214. CMarkup xml;
  215. if ( xml.Load(lpXMLPath) )
  216. return TRUE;
  217. xml.SetDoc(_T("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"));
  218. xml.AddElem(_T("n8vg_prdlist"));
  219. xml.AddAttrib(_T("version"), _T("1.0"));
  220. return xml.Save(lpXMLPath);
  221. };
  222. BOOL LoadXML(IN LPCTSTR lpXMLPath = NULL);
  223. BOOL IsItemExists(IN LPCTSTR lpID, IN LPCTSTR lpName);
  224. BOOL InsertItem(IN LPCTSTR lpID, IN LPCTSTR lpComment, IN LPCTSTR lpName, IN LPCTSTR lpWidth, IN LPCTSTR lpHeight);
  225. BOOL InsertSubItem(IN LPCTSTR lpID, IN LPCTSTR lpName, IN LPCTSTR lpSubID);
  226. protected:
  227. private:
  228. };
  229. //////////////////////////////////////////////////////////////////////////
  230. // ResultItem类;
  231. class CResultItem:public CN8XML
  232. {
  233. public:
  234. CResultItem(){};
  235. ~CResultItem(){};
  236. class CItem
  237. {
  238. public:
  239. CItem(){};
  240. ~CItem(){};
  241. public:
  242. CString m_strPath;
  243. CString m_strComment;
  244. CString m_strDel;
  245. CString m_strPage;
  246. CString m_strDeleted; // 版面中,被删除的相片,多个相片以"|"分隔;
  247. private:
  248. };
  249. CArray<CItem, CItem> m_AryItems;
  250. BOOL LoadXML(IN LPCTSTR lpXMLPath = NULL );
  251. BOOL InsertItem(IN LPCTSTR lpPath, IN LPCTSTR lpComment, IN LPCTSTR lpDel, IN LPCTSTR lpPage);
  252. BOOL IsItemExists(IN LPCTSTR lpPath);
  253. };
  254. //////////////////////////////////////////////////////////////////////////
  255. // Ablum类;
  256. class CAlbum:public CN8XML
  257. {
  258. public:
  259. CAlbum(){};
  260. ~CAlbum(){};
  261. class CPageItem
  262. {
  263. public:
  264. CPageItem(){
  265. m_strtplid = _T("");
  266. m_strFileName = _T("");
  267. m_strtplname = _T("");
  268. };
  269. ~CPageItem(){};
  270. CString m_strtplid; // 模板id;
  271. CString m_strtplname; // 模板名;
  272. CString m_strFileName; // 版面名称;
  273. vector<CString> m_vtImgs; // 组成版本的相片;
  274. protected:
  275. private:
  276. };
  277. CArray<CPageItem, CPageItem> m_AryPages;
  278. public:
  279. BOOL LoadXML(IN LPCTSTR lpXMLPath = NULL );
  280. BOOL IsItemExists(IN LPCTSTR lpID, IN LPCTSTR lpName);
  281. BOOL InsertItem(IN LPCTSTR lpID, IN LPCTSTR lpComment, IN LPCTSTR lpName, IN LPCTSTR lpWidth, IN LPCTSTR lpHeight);
  282. BOOL InsertSubItem(IN LPCTSTR lpID, IN LPCTSTR lpName, IN LPCTSTR lpSubID);
  283. private:
  284. };
  285. };
  286. #endif // __N8_PROCESS__;