HeaderFooterView.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:10k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // HeaderFooterView.h : header file
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. #if !defined(AFX_HEADERFOOTERVIEW_H__5E52F174_9488_44B0_B8E7_48BC345422A2__INCLUDED_)
  21. #define AFX_HEADERFOOTERVIEW_H__5E52F174_9488_44B0_B8E7_48BC345422A2__INCLUDED_
  22. #if _MSC_VER > 1000
  23. #pragma once
  24. #endif // _MSC_VER > 1000
  25. #include "MainFrm.h"
  26. //enum TaskImportance
  27. //{
  28. // taskImportanceNormal,
  29. // taskImportanceHigh,
  30. // taskImportanceLow
  31. //};
  32. //
  33. //enum TaskStatus
  34. //{
  35. // taskStatusNotStarted,
  36. // taskStatusInProgress,
  37. // taskStatusCompleted,
  38. // taskStatusWaiting,
  39. // taskStatusDeferred,
  40. //};
  41. //class CTaskRecord : public CXTPReportRecord
  42. //{
  43. //protected:
  44. //
  45. // class CTaskItemType : public CXTPReportRecordItem
  46. //{
  47. // public:
  48. // CTaskItemType(BOOL /*bSharedTask*/)
  49. // {
  50. // SetFocusable(FALSE);
  51. // }
  52. // };
  53. //
  54. // class CTaskItemImportance : public CXTPReportRecordItem
  55. // {
  56. // public:
  57. // CTaskItemImportance(TaskImportance taskImportance)
  58. // {
  59. // SetImportance(taskImportance);
  60. // }
  61. // void OnConstraintChanged(XTP_REPORTRECORDITEM_ARGS* /*pItemArgs*/, CXTPReportRecordItemConstraint* pConstraint)
  62. // {
  63. // SetImportance((TaskImportance)pConstraint->m_dwData);
  64. // }
  65. // DWORD GetSelectedConstraintData(XTP_REPORTRECORDITEM_ARGS* /*pItemArgs*/)
  66. // {
  67. // return m_taskImportance;
  68. // }
  69. //
  70. // void SetImportance(TaskImportance taskImportance )
  71. // {
  72. // m_taskImportance = taskImportance;
  73. //
  74. // SetIconIndex(taskImportance == taskImportanceHigh ? 6 :
  75. // taskImportance == taskImportanceLow ? 9: -1);
  76. //
  77. // SetGroupPriority(
  78. // taskImportance == taskImportanceHigh? IDS_GROUP_IMPOPRTANCE_HIGH:
  79. // taskImportance == taskImportanceLow?    IDS_GROUP_IMPOPRTANCE_LOW: IDS_GROUP_IMPOPRTANCE_NORMAL);
  80. //
  81. // SetSortPriority(GetGroupPriority());
  82. // }
  83. //
  84. // public:
  85. // TaskImportance m_taskImportance;
  86. // };
  87. //
  88. // class CTaskItemAttachment : public  CXTPReportRecordItem
  89. // {
  90. // public:
  91. // CTaskItemAttachment::CTaskItemAttachment(BOOL bHasAttachment)
  92. // {
  93. // SetIconIndex(bHasAttachment ? 8 : -1);
  94. // SetGroupPriority(bHasAttachment? IDS_GROUP_ATTACHMENTS_TRUE: IDS_GROUP_ATTACHMENTS_FALSE);
  95. // SetSortPriority(GetGroupPriority());
  96. // SetFocusable(FALSE);
  97. // }
  98. // };
  99. // class CTaskItemDueDate : public CXTPReportRecordItemDateTime
  100. // {
  101. // public:
  102. // CTaskItemDueDate(COleDateTime dtDateTime)
  103. // : CXTPReportRecordItemDateTime(dtDateTime)
  104. // {
  105. // m_strFormatString = _T("%a %m/%d/%Y");
  106. // }
  107. // CString GetCaption(CXTPReportColumn* /*pColumn*/)
  108. // {
  109. // if ((DATE)m_odtValue == 0)
  110. // return _T("None");
  111. //
  112. // return m_odtValue.Format(m_strFormatString);
  113. // }
  114. // };
  115. //
  116. // class CTaskItemStatus : public CXTPReportRecordItem
  117. // {
  118. // public:
  119. // CTaskItemStatus(TaskStatus taskStatus)
  120. // {
  121. // m_taskStatus = taskStatus;
  122. // }
  123. //
  124. // CString GetCaption(CXTPReportColumn* pColumn)
  125. // {
  126. // CXTPReportRecordItemConstraint* pConstraint = pColumn->GetEditOptions()->FindConstraint(m_taskStatus);
  127. // ASSERT(pConstraint);
  128. // return pConstraint->m_strConstraint;
  129. // }
  130. //
  131. // void OnEditChanged(XTP_REPORTRECORDITEM_ARGS* pItemArgs, LPCTSTR szText)
  132. // {
  133. // CXTPReportRecordItemConstraint* pConstraint = pItemArgs->pColumn->GetEditOptions()->FindConstraint(szText);
  134. // if (pConstraint)
  135. // {
  136. // m_taskStatus = (TaskStatus)pConstraint->m_dwData;
  137. //
  138. // CXTPReportRecordItem* pItemComplete = ((CTaskRecord*)GetRecord())->GetItem(6);
  139. //
  140. // if (m_taskStatus == taskStatusCompleted &&
  141. // ((CTaskItemComplete*)pItemComplete)->GetValue() != 100)
  142. // {
  143. // ((CTaskItemComplete*)pItemComplete)->SetValue(100);
  144. // }
  145. // if (m_taskStatus != taskStatusCompleted &&
  146. // ((CTaskItemComplete*)pItemComplete)->GetValue() == 100)
  147. // {
  148. // ((CTaskItemComplete*)pItemComplete)->SetValue(0);
  149. // }
  150. // }
  151. // }
  152. // TaskStatus m_taskStatus;
  153. // };
  154. //
  155. // class CTaskItemComplete : public CXTPReportRecordItemNumber
  156. // {
  157. // public:
  158. // CTaskItemComplete(int nComplete)
  159. // : CXTPReportRecordItemNumber(nComplete, _T("%2.0f%%"))
  160. // {
  161. //
  162. // }
  163. // void OnEditChanged(XTP_REPORTRECORDITEM_ARGS* pItemArgs, LPCTSTR szText)
  164. // {
  165. // CXTPReportRecordItemNumber::OnEditChanged(pItemArgs, szText);
  166. // if (m_dValue > 100)
  167. // m_dValue = 100;
  168. //
  169. // int nStatus = (int)GetValue();
  170. //
  171. // CXTPReportRecordItem* pItemStatus = ((CTaskRecord*)GetRecord())->GetItem(3);
  172. //
  173. // if (nStatus == 100 &&
  174. // ((CTaskItemStatus*)pItemStatus)->m_taskStatus !=taskStatusCompleted)
  175. // {
  176. // ((CTaskItemStatus*)pItemStatus)->m_taskStatus = taskStatusCompleted;
  177. // }
  178. // if (nStatus != 100 &&
  179. // ((CTaskItemStatus*)pItemStatus)->m_taskStatus ==taskStatusCompleted)
  180. // {
  181. // ((CTaskItemStatus*)pItemStatus)->m_taskStatus = taskStatusInProgress;
  182. // }
  183. // }
  184. //
  185. // };
  186. //
  187. //
  188. //public:
  189. // CTaskRecord(
  190. // BOOL bSharedTask, TaskImportance taskImportance, BOOL bHasAttachment,
  191. // TaskStatus taskStatus, CString strSubject,
  192. // COleDateTime odtDueDate, int nComplete, CString strCategories);
  193. //
  194. // virtual void GetItemMetrics(XTP_REPORTRECORDITEM_DRAWARGS* pDrawArgs, XTP_REPORTRECORDITEM_METRICS* pItemMetrics);
  195. //};
  196. class CHeaderFooterFrame : public CXTPFrameWnd
  197. {
  198. public:
  199. CHeaderFooterFrame(CView* pView)
  200. {
  201. m_pOwnerView = pView;
  202. }
  203. protected:  // control bar embedded members
  204. CStatusBar  m_wndStatusBar;
  205. CToolBar    m_wndToolBar;
  206. CView* m_pOwnerView;
  207. // Generated message map functions
  208. protected:
  209. //{{AFX_MSG(CHeaderFooterFrame)
  210. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  211. afx_msg void OnDestroy();
  212. //}}AFX_MSG
  213. DECLARE_MESSAGE_MAP()
  214. };
  215. /////////////////////////////////////////////////////////////////////////////
  216. // CHeaderFooterView view
  217. class CHeaderFooterView : public CXTPReportView
  218. {
  219. protected:
  220. CHeaderFooterView();           // protected constructor used by dynamic creation
  221. DECLARE_DYNCREATE(CHeaderFooterView)
  222. // Attributes
  223. // Operations
  224. public:
  225. // Overrides
  226. // ClassWizard generated virtual function overrides
  227. //{{AFX_VIRTUAL(CHeaderFooterView)
  228. protected:
  229. //}}AFX_VIRTUAL
  230. // Implementation
  231. protected:
  232. virtual ~CHeaderFooterView();
  233. #ifdef _DEBUG
  234. virtual void AssertValid() const;
  235. virtual void Dump(CDumpContext& dc) const;
  236. #endif
  237. // Generated message map functions
  238. protected:
  239. //{{AFX_MSG(CHeaderFooterView)
  240. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  241. afx_msg void OnShowHeaderRecords();
  242. afx_msg void OnUpdateShowHeaderRecords(CCmdUI* pCmdUI);
  243. afx_msg void OnHeaderRecordsAllowEdit();
  244. afx_msg void OnUpdateHeaderRecordsAllowEdit(CCmdUI* pCmdUI);
  245. afx_msg void OnShowFooterRecords();
  246. afx_msg void OnUpdateShowFooterRecords(CCmdUI* pCmdUI);
  247. afx_msg void OnFooterRecordsAllowEdit();
  248. afx_msg void OnUpdateFooterRecordsAllowEdit(CCmdUI* pCmdUI);
  249. afx_msg void OnPinFooterRows();
  250. afx_msg void OnUpdatePinFooterRows(CCmdUI* pCmdUI);
  251. afx_msg void OnDrawGridForEmpty();
  252. afx_msg void OnUpdateDrawGridForEmpty(CCmdUI* pCmdUI);
  253. afx_msg void OnMoveInHeader();
  254. afx_msg void OnUpdateMoveInHeader(CCmdUI* pCmdUI);
  255. afx_msg void OnMoveInFooter();
  256. afx_msg void OnUpdateMoveInFooter(CCmdUI* pCmdUI);
  257. afx_msg void OnHeaderDividerStyleThin();
  258. afx_msg void OnUpdateHeaderDividerStyleThin(CCmdUI* pCmdUI);
  259. afx_msg void OnHeaderDividerStyleBold();
  260. afx_msg void OnUpdateHeaderDividerStyleBold(CCmdUI* pCmdUI);
  261. afx_msg void OnHeaderDividerStyleNone();
  262. afx_msg void OnUpdateHeaderDividerStyleNone(CCmdUI* pCmdUI);
  263. afx_msg void OnHeaderDividerStyleShade();
  264. afx_msg void OnUpdateHeaderDividerStyleShade(CCmdUI* pCmdUI);
  265. afx_msg void OnHeaderDividerStyleOutlook();
  266. afx_msg void OnUpdateHeaderDividerStyleOutlook(CCmdUI* pCmdUI);
  267. afx_msg void OnFooterDividerStyleThin();
  268. afx_msg void OnUpdateFooterDividerStyleThin(CCmdUI* pCmdUI);
  269. afx_msg void OnFooterDividerStyleBold();
  270. afx_msg void OnUpdateFooterDividerStyleBold(CCmdUI* pCmdUI);
  271. afx_msg void OnFooterDividerStyleNone();
  272. afx_msg void OnUpdateFooterDividerStyleNone(CCmdUI* pCmdUI);
  273. afx_msg void OnFooterDividerStyleShade();
  274. afx_msg void OnUpdateFooterDividerStyleShade(CCmdUI* pCmdUI);
  275. afx_msg void OnFooterDividerStyleOutlook();
  276. afx_msg void OnUpdateFooterDividerStyleOutlook(CCmdUI* pCmdUI);
  277. afx_msg void OnColumnsStyleFlat();
  278. afx_msg void OnUpdateColumnsStyleFlat(CCmdUI* pCmdUI);
  279. afx_msg void OnColumnsStyleExplorer();
  280. afx_msg void OnUpdateColumnsStyleExplorer(CCmdUI* pCmdUI);
  281. afx_msg void OnColumnsStyleShaded();
  282. afx_msg void OnUpdateColumnsStyleShaded(CCmdUI* pCmdUI);
  283. afx_msg void OnColumnsStyleOffice2003();
  284. afx_msg void OnUpdateColumnsStyleOffice2003(CCmdUI* pCmdUI);
  285. afx_msg void OnAddTask();
  286. afx_msg void OnReportButtonClick(NMHDR * pNotifyStruct, LRESULT *result);
  287. //}}AFX_MSG
  288. BOOL Show_XTPDatePicker(CXTPReportControl* pControl, const CRect& rcItem, COleDateTime& rdtDate);
  289. BOOL Show_MFCDatePicker(CXTPReportControl* pControl, const CRect& rcItem, COleDateTime& rdtDate);
  290. DECLARE_MESSAGE_MAP()
  291. };
  292. /////////////////////////////////////////////////////////////////////////////
  293. //{{AFX_INSERT_LOCATION}}
  294. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  295. #endif // !defined(AFX_HEADERFOOTERVIEW_H__5E52F174_9488_44B0_B8E7_48BC345422A2__INCLUDED_)