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

对话框与窗口

开发平台:

Visual C++

  1. // XTPReportNavigator.h: interface for the CXTPReportNavigator class.
  2. //
  3. // This file is a part of the XTREME REPORTCONTROL 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. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(__XTPREPORTNAVIGATOR_H__)
  22. #define __XTPREPORTNAVIGATOR_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #include "XTPReportDefines.h"
  28. #include "XTPReportRow.h"
  29. class CXTPReportControl;
  30. class CXTPReportRow;
  31. class CXTPReportHeader;
  32. class CXTPReportColumn;
  33. //===========================================================================
  34. // Summary:
  35. //     Utility class, handling Report Control items' navigation activities.
  36. // Remarks:
  37. //
  38. // See Also: CXTPReportControl overview
  39. //===========================================================================
  40. class _XTP_EXT_CLASS CXTPReportNavigator : public CXTPCmdTarget
  41. {
  42. friend class CXTPReportControl;
  43. public:
  44. //-----------------------------------------------------------------------
  45. // Summary:
  46. //     Default navigator constructor, handles properties initialization.
  47. // See Also: RefreshMetrics
  48. //-----------------------------------------------------------------------
  49. CXTPReportNavigator(CXTPReportControl* pReportControl);
  50. //-----------------------------------------------------------------------
  51. // Summary:
  52. //     Default navigator destructor, handles member items deallocation.
  53. //-----------------------------------------------------------------------
  54. virtual ~CXTPReportNavigator();
  55. public:
  56. //-----------------------------------------------------------------------
  57. // Summary:
  58. //     Call this method to start edit currently focused item.
  59. // Remarks:
  60. //     Call this method to start edit currently focused item.
  61. //-----------------------------------------------------------------------
  62. void BeginEdit();
  63. //-----------------------------------------------------------------------
  64. // Summary:
  65. //     Moves the focused row down.
  66. // Parameters:
  67. //     bSelectBlock - TRUE when selecting a new focused row, FALSE otherwise.
  68. //     bIgnoreSelection - TRUE if ignore current rows selection.
  69. // Remarks:
  70. //     Call this member function if you want to move the currently
  71. //     focused row down by 1.
  72. // See Also: MoveUp, MovePageDown, MovePageUp, MoveFirst, MoveLast
  73. //-----------------------------------------------------------------------
  74. void MoveDown(BOOL bSelectBlock = FALSE, BOOL bIgnoreSelection = FALSE);
  75. //-----------------------------------------------------------------------
  76. // Summary:
  77. //     Moves the focused row up.
  78. // Parameters:
  79. //     bSelectBlock     - TRUE when selecting a new focused row, FALSE otherwise.
  80. //     bIgnoreSelection - TRUE if ignore current rows selection.
  81. // Remarks:
  82. //     Call this member function if you want to move the currently
  83. //     focused row up by 1.
  84. // See Also: MoveDown, MovePageDown, MovePageUp, MoveFirst, MoveLast
  85. //-----------------------------------------------------------------------
  86. void MoveUp(BOOL bSelectBlock = FALSE, BOOL bIgnoreSelection = FALSE);
  87. //-----------------------------------------------------------------------
  88. // Summary:
  89. //     Moves the focused row down at one page.
  90. // Parameters:
  91. //     bSelectBlock     - TRUE when selecting rows up to new focused row,
  92. //                        FALSE otherwise.
  93. //     bIgnoreSelection - TRUE if ignore current rows selection.
  94. // Remarks:
  95. //     Call this member function if you want to move currently
  96. //     focused row down by 1 page (an count of rows visible in a view).
  97. // See Also: MoveDown, MoveUp, MovePageUp, MoveFirst, MoveLast
  98. //-----------------------------------------------------------------------
  99. void MovePageDown(BOOL bSelectBlock = FALSE, BOOL bIgnoreSelection = FALSE);
  100. //-----------------------------------------------------------------------
  101. // Summary:
  102. //     Moves the focused row up at one page.
  103. // Parameters:
  104. //     bSelectBlock - TRUE when selecting rows up to new focused row,
  105. //                    FALSE otherwise.
  106. //     bIgnoreSelection - TRUE to ignore the current rows selection.
  107. // Remarks:
  108. //     Call this member function if you want to move currently
  109. //     row up by 1 page (and count of rows visible in a view).
  110. // See Also: MoveDown, MoveUp, MovePageDown, MoveFirst, MoveLast
  111. //-----------------------------------------------------------------------
  112. void MovePageUp(BOOL bSelectBlock = FALSE, BOOL bIgnoreSelection = FALSE);
  113. //-----------------------------------------------------------------------
  114. // Summary:
  115. //     Moves the focused row to the beginning of the report view.
  116. // Parameters:
  117. //     bSelectBlock     - TRUE when selecting rows up to new focused row,
  118. //                        FALSE otherwise.
  119. //     bIgnoreSelection - TRUE if ignore current rows selection.
  120. // Remarks:
  121. //     Call this member function if you want to move the currently
  122. //     focused row to the top of the rows list.
  123. // See Also: MoveDown, MoveUp, MovePageDown, MovePageUp, MoveLast
  124. //-----------------------------------------------------------------------
  125. void MoveFirstRow(BOOL bSelectBlock = FALSE, BOOL bIgnoreSelection = FALSE);
  126. //-----------------------------------------------------------------------
  127. // Summary:
  128. //     Moves the focused row to the end of the report view.
  129. // Parameters:
  130. //     bSelectBlock     - TRUE when selecting rows up to new focused row,
  131. //                        FALSE otherwise.
  132. //     bIgnoreSelection - TRUE if ignore current rows selection.
  133. // Remarks:
  134. //     Call this member function if you want to move the currently
  135. //     focused row to the bottom of the rows list.
  136. // See Also: MoveDown, MoveUp, MovePageDown, MovePageUp, MoveFirst
  137. //-----------------------------------------------------------------------
  138. void MoveLastRow(BOOL bSelectBlock = FALSE, BOOL bIgnoreSelection = FALSE);
  139. //-----------------------------------------------------------------------
  140. // Summary:
  141. //     Moves the focused row to the specified row index.
  142. // Parameters:
  143. //     nRowIndex        - Index of the row to move focus.
  144. //     bSelectBlock     - TRUE when selecting rows up to new focused row,
  145. //                        FALSE otherwise.
  146. //     bIgnoreSelection - TRUE if ignore current rows selection.
  147. // Remarks:
  148. //     Call this member function if you want to move the currently
  149. //     focused row to the the specified row index.
  150. // See Also: MoveDown, MoveUp, MovePageDown, MovePageUp, MoveFirst
  151. //-----------------------------------------------------------------------
  152. void MoveToRow(int nRowIndex, BOOL bSelectBlock = FALSE, BOOL bIgnoreSelection = FALSE);
  153. //-----------------------------------------------------------------------
  154. // Summary:
  155. //     Moves the focused column to the beginning of the row.
  156. // Remarks:
  157. //     Call this member function if you want to move the currently
  158. //     focused column to the beginning of the currently selected row.
  159. // See Also: MoveLastColumn
  160. //-----------------------------------------------------------------------
  161. void MoveFirstColumn();
  162. //-----------------------------------------------------------------------
  163. // Summary:
  164. //     Moves the focused column to the end of the row.
  165. // Remarks:
  166. //     Call this member function if you want to move the currently
  167. //     focused column to the end of the currently selected row.
  168. // See Also: MoveFirstColumn
  169. //-----------------------------------------------------------------------
  170. void MoveLastColumn();
  171. //-----------------------------------------------------------------------
  172. // Summary:
  173. //     Moves the focused column left.
  174. // Parameters:
  175. //     bSelectBlock - TRUE when selecting a new focused row, FALSE otherwise.
  176. //     bIgnoreSelection - TRUE if ignore current rows selection.
  177. // Remarks:
  178. //     Call this member function if you want to move the currently
  179. //     focused column left by 1.
  180. // See Also: MoveUp, MovePageDown, MovePageUp, MoveFirst, MoveLast
  181. //-----------------------------------------------------------------------
  182. void MoveLeft(BOOL bSelectBlock = FALSE, BOOL bIgnoreSelection = FALSE);
  183. //-----------------------------------------------------------------------
  184. // Summary:
  185. //     Moves the focused column left.
  186. // Parameters:
  187. //     bSelectBlock     - TRUE when selecting a new focused row, FALSE otherwise.
  188. //     bIgnoreSelection - TRUE if ignore current rows selection.
  189. // Remarks:
  190. //     Call this member function if you want to move the currently
  191. //     focused column right by 1.
  192. // See Also: MoveDown, MovePageDown, MovePageUp, MoveFirst, MoveLast
  193. //-----------------------------------------------------------------------
  194. void MoveRight(BOOL bSelectBlock = FALSE, BOOL bIgnoreSelection = FALSE);
  195. //-----------------------------------------------------------------------
  196. // Summary:
  197. //     Moves the focused column to the specified index.
  198. // Parameters:
  199. //     nColumnIndex         - Index of the column to focus.
  200. //     bClearIfNonFocusable - Used when column the focused row specified
  201. //                            by nColumnIndex is not focusable:
  202. //                            if TRUE column focus will be cleared (no
  203. //                            column focused), otherwise focused column will
  204. //                            not be changed.
  205. // Remarks:
  206. //     Call this member function if you want to move the currently
  207. //     focused column to the specified index.
  208. // See Also: MoveDown, MovePageDown, MovePageUp, MoveFirst, MoveLast
  209. //-----------------------------------------------------------------------
  210. void MoveToColumn(int nColumnIndex, BOOL bClearIfNonFocusable = FALSE);
  211. //-----------------------------------------------------------------------
  212. // Summary:
  213. //     Setting this property to TRUE moves focus (selected row) to header rows.
  214. //
  215. // See Also: GetCurrentFocusInHeadersRows
  216. //-----------------------------------------------------------------------
  217. void SetCurrentFocusInHeadersRows(BOOL bCurrentFocusInHeadersRows);
  218. //-----------------------------------------------------------------------
  219. // Summary:
  220. //     Setting this property to TRUE moves focus (selected row) to footer rows.
  221. //
  222. // See Also: GetCurrentFocusInFootersRows
  223. //-----------------------------------------------------------------------
  224. void SetCurrentFocusInFootersRows(BOOL bCurrentFocusInFootersRows);
  225. //-----------------------------------------------------------------------
  226. // Summary:
  227. //     Returns TRUE, if a focused row belongs to header rows, FALSE otherwise.
  228. //
  229. // See Also: SetCurrentFocusInHeadersRows
  230. //-----------------------------------------------------------------------
  231. BOOL GetCurrentFocusInHeadersRows();
  232. //-----------------------------------------------------------------------
  233. // Summary:
  234. //     Returns TRUE, if a focused row belongs to footer rows, FALSE otherwise.
  235. //
  236. // See Also: SetCurrentFocusInFootersRows
  237. //-----------------------------------------------------------------------
  238. BOOL GetCurrentFocusInFootersRows();
  239. protected:
  240. //-----------------------------------------------------------------------
  241. // Summary:
  242. //     Moves the focused column left or right.
  243. // Parameters:
  244. //     bSelectBlock     - TRUE when selecting a new focused row, FALSE otherwise.
  245. //     bIgnoreSelection - TRUE if ignore current rows selection.
  246. //     bBack - TRUE to move left/ FALSE to move right
  247. // Remarks:
  248. //     Call this member function if you want to move the currently
  249. //     focused column
  250. // See Also: MoveDown, MovePageDown, MovePageUp, MoveFirst, MoveLast
  251. //-----------------------------------------------------------------------
  252. void MoveLeftRight(BOOL bBack, BOOL bSelectBlock = FALSE, BOOL bIgnoreSelection = FALSE);
  253. //-----------------------------------------------------------------------
  254. // Summary:
  255. //     Determines the place for the focused row: body, header, or footer.
  256. // Parameters:
  257. //     RowType     - type of the focused row.
  258. // Remarks:
  259. //     Call this member function if you want to move (or reflect) the currently focused row.
  260. // See Also:
  261. //     SetCurrentFocusInHeadersRows, SetCurrentFocusInFootersRows
  262. //-----------------------------------------------------------------------
  263. void SetMovePosition(XTPReportRowType RowType);
  264. //-----------------------------------------------------------------------
  265. // Summary:
  266. //     Moves the focused row to the first visible body row of a target place: body, header, or footer.
  267. // Parameters:
  268. //     RowType     - target type of the focused row.
  269. // Remarks:
  270. //     Call this member function if you want to move the focused row to the first visible target row.
  271. // See Also:
  272. //     SetCurrentFocusInHeadersRows, SetCurrentFocusInFootersRows
  273. //-----------------------------------------------------------------------
  274. void MoveFirstVisibleRow(XTPReportRowType TargetType);
  275. //-----------------------------------------------------------------------
  276. // Summary:
  277. //     Moves the focused row to the last visible row of a target place: body, header, or footer.
  278. // Parameters:
  279. //     RowType     - target type of the focused row.
  280. // Remarks:
  281. //     Call this member function if you want to move the focused row to the last visible target row.
  282. // See Also:
  283. //     SetCurrentFocusInHeadersRows, SetCurrentFocusInFootersRows
  284. //-----------------------------------------------------------------------
  285. void MoveLastVisibleRow(XTPReportRowType TargetType);
  286. protected:
  287. CXTPReportControl* m_pReportControl; // Associated report control.
  288. BOOL    m_bCurrentFocusInHeadersRows;   // TRUE if a focused row belongs to header rows.
  289. BOOL    m_bCurrentFocusInFootersRows;   // TRUE if a focused row belongs to footer rows.
  290. // If both above properties are FALSE - focused row belongs to body rows.
  291. };
  292. #endif //#if !defined(__XTPREPORTNAVIGATOR_H__)