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

对话框与窗口

开发平台:

Visual C++

  1. // XTPReportRecordItemText.h: interface for the CXTPReportRecordItemText 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(__XTPREPORTRECORDITEMTEXT_H__)
  22. #define __XTPREPORTRECORDITEMTEXT_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #include "XTPReportRecordItem.h"
  28. //===========================================================================
  29. // Summary:
  30. //     This Class represents a text-only cell and inherits basic functionality
  31. //     from CXTPReportRecordItem class.
  32. //     You create a text record item simply by calling a constructor with one
  33. //     parameter - text string
  34. // See Also: CXTPReportRecordItem
  35. //===========================================================================
  36. class _XTP_EXT_CLASS CXTPReportRecordItemText : public CXTPReportRecordItem
  37. {
  38. DECLARE_SERIAL(CXTPReportRecordItemText)
  39. public:
  40. //-----------------------------------------------------------------------
  41. // Summary:
  42. //     Creates a record text item.
  43. // Parameters:
  44. //     szText - A text value for the item.
  45. //-----------------------------------------------------------------------
  46. CXTPReportRecordItemText(LPCTSTR szText = _T(""));
  47. //-----------------------------------------------------------------------
  48. // Summary:
  49. //     Returns a text caption of this item.
  50. // Parameters:
  51. //     pColumn - Corresponded column of the item.
  52. // Remarks:
  53. //     Overwrites parents' member function
  54. // Returns:
  55. //     Text caption of the item.
  56. //-----------------------------------------------------------------------
  57. CString GetCaption(CXTPReportColumn* pColumn);
  58. //-----------------------------------------------------------------------
  59. // Summary:
  60. //     Sets the text caption for the item.
  61. // Parameters:
  62. //     szText - Text caption for the item.
  63. //-----------------------------------------------------------------------
  64. void SetValue(LPCTSTR szText);
  65. //-----------------------------------------------------------------------
  66. // Summary:
  67. //     This method is called when value of in-place edit control changed
  68. // Parameters:
  69. //     pItemArgs - Pointer to structure with items arguments.
  70. //     szText    - New in-place edit text.
  71. //-----------------------------------------------------------------------
  72. virtual void OnEditChanged(XTP_REPORTRECORDITEM_ARGS* pItemArgs, LPCTSTR szText);
  73. //-----------------------------------------------------------------------
  74. // Summary:
  75. //     Returns the item value in its original format.
  76. // Returns:
  77. //     Initial item text string.
  78. //-----------------------------------------------------------------------
  79. CString GetValue();
  80. //-----------------------------------------------------------------------
  81. // Summary:
  82. //     Call this member function to Store/Load a report record item
  83. //     using the specified data object.
  84. // Parameters:
  85. //     pPX - Source or destination CXTPPropExchange data object reference.
  86. //-----------------------------------------------------------------------
  87. virtual void DoPropExchange(CXTPPropExchange* pPX);
  88. protected:
  89. CString m_strText;  // Item text value.
  90. };
  91. AFX_INLINE CString CXTPReportRecordItemText::GetValue() {
  92. return m_strText;
  93. }
  94. //===========================================================================
  95. // Summary:
  96. //     This class represents a numeric cell and inherits basic functionality
  97. //     from CXTPReportRecordItem class.
  98. // Remarks:
  99. //     You create a number record item simply by calling constructor with
  100. //     the only one parameter - its numeric value. There is an additional
  101. //     constructor with second parameter - format string.
  102. //     Format string allows you to determine exactly in which format
  103. //     the numeric value will be represented on the screen.
  104. //     It could be useful for displaying money values, etc.
  105. // See Also: CXTPReportRecordItem
  106. //===========================================================================
  107. class _XTP_EXT_CLASS CXTPReportRecordItemNumber : public CXTPReportRecordItem
  108. {
  109. DECLARE_SERIAL(CXTPReportRecordItemNumber)
  110. public:
  111. //-----------------------------------------------------------------------
  112. // Summary:
  113. //     Creates a record numeric item with the specific formatting.
  114. // Parameters:
  115. //     dValue - Value of this numeric item.
  116. //     strFormat - Format string for creating caption value of the item.
  117. // Remarks:
  118. //     If the format string is set, the value of the item will be formatted
  119. //     according to this format string before drawing it convenient
  120. //     in many cases (drawing date for example). Format string is C - like
  121. //     style, see sprintf() C function or CString.Format() member function
  122. //-----------------------------------------------------------------------
  123. CXTPReportRecordItemNumber(double dValue = 0);
  124. CXTPReportRecordItemNumber(double dValue, LPCTSTR strFormat); // <combine CXTPReportRecordItemNumber::CXTPReportRecordItemNumber@double>
  125. //-----------------------------------------------------------------------
  126. // Summary:
  127. //     Returns a text caption of this item.
  128. // Parameters:
  129. //     pColumn - Corresponded column of the item.
  130. // Remarks:
  131. //     Overwrites parents' member function
  132. // Returns:
  133. //     Text caption of the item.
  134. //-----------------------------------------------------------------------
  135. CString GetCaption(CXTPReportColumn* pColumn);
  136. //-----------------------------------------------------------------------
  137. // Summary:
  138. //     Returns item value in its original format.
  139. // Returns:
  140. //     Item original numeric value.
  141. //-----------------------------------------------------------------------
  142. double GetValue();
  143. //-----------------------------------------------------------------------
  144. // Summary:
  145. //     Call this method to set value of the item
  146. // Parameters:
  147. //     dValue - New item value
  148. //-----------------------------------------------------------------------
  149. void SetValue(double dValue);
  150. //-----------------------------------------------------------------------
  151. // Summary:
  152. //     This method is called when value of in-place edit control changed
  153. // Parameters:
  154. //     pItemArgs - Pointer to structure with items arguments.
  155. //     szText    - New in-place edit text.
  156. //-----------------------------------------------------------------------
  157. virtual void OnEditChanged(XTP_REPORTRECORDITEM_ARGS* pItemArgs, LPCTSTR szText);
  158. //-----------------------------------------------------------------------
  159. // Summary:
  160. //     Compares this item with the provided one.
  161. // Parameters:
  162. //  pColumn - Pointer to a CXTPReportColumn object.
  163. //  pItem - An item to compare with the current.
  164. // Remarks:
  165. //     Overwrites parents' member function
  166. // Returns:
  167. //     Zero if pItem is equal with current;
  168. //     Less than zero if less than pItem;
  169. //     Greater than zero if greater than pItem.
  170. //-----------------------------------------------------------------------
  171. int Compare(CXTPReportColumn* pColumn, CXTPReportRecordItem* pItem);
  172. //-----------------------------------------------------------------------
  173. // Summary:
  174. //     Call this member function to Store/Load a report record item
  175. //     using the specified data object.
  176. // Parameters:
  177. //     pPX - Source or destination CXTPPropExchange data object reference.
  178. //-----------------------------------------------------------------------
  179. virtual void DoPropExchange(CXTPPropExchange* pPX);
  180. protected:
  181. double m_dValue;    // Cell value.
  182. };
  183. //===========================================================================
  184. // Summary:
  185. //     Represents a time cell and inherits basic functionality
  186. //     from CXTPReportRecordItem class.
  187. // Remarks:
  188. //     You create a CXTPReportRecordItemDateTime record item simply by calling a constructor with one
  189. //     COleDateTime parameter
  190. // See Also: CXTPReportRecordItem
  191. //===========================================================================
  192. class _XTP_EXT_CLASS CXTPReportRecordItemDateTime : public CXTPReportRecordItem
  193. {
  194. DECLARE_SERIAL(CXTPReportRecordItemDateTime)
  195. public:
  196. //-----------------------------------------------------------------------
  197. // Summary:
  198. //     Creates record date/time item.
  199. // Parameters:
  200. //     odtValue - Initial date/time item value.
  201. //-----------------------------------------------------------------------
  202. CXTPReportRecordItemDateTime(COleDateTime odtValue = (DATE)0);
  203. //-----------------------------------------------------------------------
  204. // Summary:
  205. //     Returns a text caption of this item.
  206. // Parameters:
  207. //     pColumn - Corresponded column of the item.
  208. // Remarks:
  209. //     Overwrites parents' member function.
  210. // Returns:
  211. //     Text caption of the item.
  212. //-----------------------------------------------------------------------
  213. CString GetCaption(CXTPReportColumn* pColumn);
  214. //-----------------------------------------------------------------------
  215. // Summary:
  216. //     Compares this item with the provided one.
  217. // Parameters:
  218. //  pColumn - Pointer to a CXTPReportColumn object.
  219. //     pItem - The item provided for comparing with current.
  220. // Remarks:
  221. //     Overwrites parents' member function
  222. // Returns:
  223. //     Zero if pItem is equal with current;
  224. //     Less than zero if less than pItem;
  225. //     Greater than zero if greater than pItem.
  226. //-----------------------------------------------------------------------
  227. int Compare(CXTPReportColumn* pColumn, CXTPReportRecordItem* pItem);
  228. //-----------------------------------------------------------------------
  229. // Summary:
  230. //     This method is called when value of in-place edit control changed
  231. // Parameters:
  232. //     pItemArgs - Pointer to structure with items arguments.
  233. //     szText    - New in-place edit text.
  234. //-----------------------------------------------------------------------
  235. virtual void OnEditChanged(XTP_REPORTRECORDITEM_ARGS* pItemArgs, LPCTSTR szText);
  236. //-----------------------------------------------------------------------
  237. // Summary:
  238. //     Returns the item value in its original format.
  239. // Returns:
  240. //     Item date-time value.
  241. //-----------------------------------------------------------------------
  242. COleDateTime GetValue();
  243. //-----------------------------------------------------------------------
  244. // Summary:
  245. //     Call this method to set value of the item
  246. // Parameters:
  247. //     odtValue - New item value
  248. //-----------------------------------------------------------------------
  249. void SetValue(COleDateTime odtValue);
  250. //-----------------------------------------------------------------------
  251. // Summary:
  252. //     Call this member function to Store/Load a report record item
  253. //     using the specified data object.
  254. // Parameters:
  255. //     pPX - Source or destination CXTPPropExchange data object reference.
  256. //-----------------------------------------------------------------------
  257. virtual void DoPropExchange(CXTPPropExchange* pPX);
  258. protected:
  259. COleDateTime m_odtValue;    // Cell value.
  260. };
  261. //===========================================================================
  262. // Summary:
  263. //     Represents a variant item and inherits basic functionality
  264. //     from CXTPReportRecordItem class.
  265. //     You can create a bitmap record item simply by calling a constructor with
  266. //     the only one parameter - value of VARIANT type.
  267. // See Also: CXTPReportRecordItem
  268. //===========================================================================
  269. class _XTP_EXT_CLASS CXTPReportRecordItemVariant : public CXTPReportRecordItem
  270. {
  271. DECLARE_SERIAL(CXTPReportRecordItemVariant)
  272. public:
  273. //-----------------------------------------------------------------------
  274. // Summary:
  275. //     Creates a new variant record item.
  276. // Parameters:
  277. //     lpValue - Pointer to the initial item value.
  278. //-----------------------------------------------------------------------
  279. CXTPReportRecordItemVariant(const VARIANT& lpValue = COleVariant((long)0));
  280. //-----------------------------------------------------------------------
  281. // Summary:
  282. //     Returns a text caption of this item.
  283. // Parameters:
  284. //     pColumn - Corresponded column of the item.
  285. // Remarks:
  286. //     Overwrites parents' member function
  287. // Returns:
  288. //     Text caption of the item.
  289. //-----------------------------------------------------------------------
  290. CString GetCaption(CXTPReportColumn* pColumn);
  291. //-----------------------------------------------------------------------
  292. // Summary:
  293. //     Sets new value for the item.
  294. // Parameters:
  295. //     var - New value for the item.
  296. //-----------------------------------------------------------------------
  297. void SetValue(COleVariant& var);
  298. //-----------------------------------------------------------------------
  299. // Summary:
  300. //     Compares this item with the provided one.
  301. // Parameters:
  302. //     pItem - The item provided for comparing with current.
  303. // Remarks:
  304. //     Overwrites parents' member function
  305. // Returns:
  306. //     Zero if pItem is equal with current;
  307. //     Less than zero if less than pItem;
  308. //     Greater than zero if greater than pItem.
  309. //-----------------------------------------------------------------------
  310. int Compare(CXTPReportColumn*, CXTPReportRecordItem* pItem);
  311. //-----------------------------------------------------------------------
  312. // Summary:
  313. //     This method is called when value of in-place edit control changed
  314. // Parameters:
  315. //     pItemArgs - Pointer to structure with items arguments.
  316. //     szText    - New in-place edit text.
  317. //-----------------------------------------------------------------------
  318. virtual void OnEditChanged(XTP_REPORTRECORDITEM_ARGS* pItemArgs, LPCTSTR szText);
  319. //-----------------------------------------------------------------------
  320. // Summary:
  321. //     This method is called when user select specified constraint in in-place list
  322. // Parameters:
  323. //     pItemArgs   - Pointer to structure with items arguments
  324. //     pConstraint - Selected constraint
  325. //-----------------------------------------------------------------------
  326. void OnConstraintChanged(XTP_REPORTRECORDITEM_ARGS* pItemArgs, CXTPReportRecordItemConstraint* pConstraint);
  327. //-----------------------------------------------------------------------
  328. // Summary:
  329. //     Retrieves associated value with selected constraint.
  330. // Parameters:
  331. //     pItemArgs - Pointer to structure with items arguments
  332. // Returns:
  333. //     DWORD value associated with selected constraint.
  334. //-----------------------------------------------------------------------
  335. DWORD GetSelectedConstraintData(XTP_REPORTRECORDITEM_ARGS* pItemArgs);
  336. virtual void DoPropExchange(CXTPPropExchange* pPX);//<COMBINE CXTPReportRecordItem::DoPropExchange>
  337. protected:
  338. //-----------------------------------------------------------------------
  339. // Summary:
  340. //     This method is called before value changed by user
  341. // Parameters:
  342. //     pItemArgs  - item arguments
  343. //     lpNewValue - new value to be set
  344. // Returns:
  345. //     FALSE to cancel edit operation.
  346. //-----------------------------------------------------------------------
  347. virtual BOOL OnValueChanging(XTP_REPORTRECORDITEM_ARGS* pItemArgs, LPVARIANT lpNewValue);
  348. //-----------------------------------------------------------------------
  349. // Summary:
  350. //     This method is called when in-place editor value changed by user
  351. // Parameters:
  352. //     pItemArgs   - item arguments
  353. //     rstrNewText - new string to be set in the editor
  354. // Returns:
  355. //     FALSE to cancel edit operation.
  356. //-----------------------------------------------------------------------
  357. virtual BOOL OnEditChanging(XTP_REPORTRECORDITEM_ARGS* pItemArgs, CString& rstrNewText);
  358. protected:
  359. public:
  360. COleVariant m_oleValue;    // Item value.
  361. static int m_nSortLocale;  // Sort locale
  362. };
  363. //===========================================================================
  364. // Summary:
  365. //     This represents a preview cell and inherits basic functionality
  366. //     from CXTPReportRecordItem class.
  367. // Remarks:
  368. //     You create a CXTPReportRecordItemPreview record item simply by calling constructor with one
  369. //     parameter - text string.
  370. // See Also: CXTPReportRecordItem
  371. //===========================================================================
  372. class _XTP_EXT_CLASS CXTPReportRecordItemPreview : public CXTPReportRecordItem
  373. {
  374. DECLARE_SERIAL(CXTPReportRecordItemPreview)
  375. public:
  376. //-----------------------------------------------------------------------
  377. // Summary:
  378. //     Creates a new preview record item.
  379. // Parameters:
  380. //     szPreviewText - Pointer to the preview text of item.
  381. //-----------------------------------------------------------------------
  382. CXTPReportRecordItemPreview(LPCTSTR szPreviewText = _T(""));
  383. //-----------------------------------------------------------------------
  384. // Summary:
  385. //     Set preview text
  386. // Parameters:
  387. //     strPreviewText - new preview text
  388. //-----------------------------------------------------------------------
  389. void SetPreviewText(LPCTSTR strPreviewText);
  390. //-----------------------------------------------------------------------
  391. // Summary:
  392. //     Returns preview text
  393. // Returns:
  394. //     Text of preview item
  395. //-----------------------------------------------------------------------
  396. virtual CString GetPreviewText();
  397. //-----------------------------------------------------------------------
  398. // Summary:
  399. //     This method is called to determine preview area height.
  400. // Parameters:
  401. //     pDC    - Pointer to control drawing context.
  402. //     pRow   - Pointer to corresponded row.
  403. //     nWidth - Width of the row
  404. // Returns:
  405. //     Height of the preview area.
  406. //-----------------------------------------------------------------------
  407. virtual int GetPreviewHeight(CDC* pDC, CXTPReportRow* pRow, int nWidth);
  408. //-----------------------------------------------------------------------
  409. // Summary:
  410. //     Returns preview text
  411. // Parameters:
  412. //     pColumn - Corresponded column of the item.
  413. // Returns:
  414. //     Text of preview item
  415. //-----------------------------------------------------------------------
  416. CString GetCaption(CXTPReportColumn* pColumn);
  417. //-----------------------------------------------------------------------
  418. // Summary:
  419. //     Sets caption of the item.
  420. // Parameters:
  421. //     strCaption - Caption of item to set.
  422. //-----------------------------------------------------------------------
  423. virtual void SetCaption(LPCTSTR strCaption);
  424. //-----------------------------------------------------------------------
  425. // Summary:
  426. //     Should be overridden by descendants for drawing itself.
  427. // Parameters:
  428. //     pDrawArgs - structure which contain drawing arguments.
  429. //     pMetrics - structure which contain metrics of the item.
  430. //-----------------------------------------------------------------------
  431. virtual void OnDrawCaption(XTP_REPORTRECORDITEM_DRAWARGS* pDrawArgs, XTP_REPORTRECORDITEM_METRICS* pMetrics);
  432. //-----------------------------------------------------------------------
  433. // Summary:
  434. //     Fills XTP_REPORTRECORDITEM_METRICS structure
  435. // Parameters:
  436. //     pDrawArgs    - Draw arguments for calculating item metrics.
  437. //     pItemMetrics - Pointer to the metrics item to fill with values.
  438. // Remarks:
  439. //     Calculates preview item metrics based on provided draw arguments.
  440. //     Overwrites parents' member function
  441. // See Also: XTP_REPORTRECORDITEM_DRAWARGS, XTP_REPORTRECORDITEM_METRICS
  442. //-----------------------------------------------------------------------
  443. virtual void GetItemMetrics(XTP_REPORTRECORDITEM_DRAWARGS* pDrawArgs, XTP_REPORTRECORDITEM_METRICS* pItemMetrics);
  444. //-----------------------------------------------------------------------
  445. // Summary:
  446. //     Determines of this item is a preview item.
  447. // Returns:
  448. //     TRUE for the preview item, FALSE otherwise.
  449. //-----------------------------------------------------------------------
  450. BOOL IsPreviewItem() const;
  451. //-----------------------------------------------------------------------
  452. // Summary:
  453. //     This method is called when value of in-place edit control changed
  454. // Parameters:
  455. //     pItemArgs - Pointer to structure with items arguments.
  456. //     szText    - New in-place edit text.
  457. //-----------------------------------------------------------------------
  458. virtual void OnEditChanged(XTP_REPORTRECORDITEM_ARGS* pItemArgs, LPCTSTR szText);
  459. //-----------------------------------------------------------------------
  460. // Summary:
  461. //     Retrieves caption text bounding rectangle
  462. // Parameters:
  463. //     pDrawArgs - structure which contain drawing arguments.
  464. //     rcItem    - Bounding rectangle of the item
  465. //-----------------------------------------------------------------------
  466. virtual void GetCaptionRect(XTP_REPORTRECORDITEM_ARGS* pDrawArgs, CRect& rcItem);
  467. //<COMBINE CXTPReportRecordItem::DoPropExchange>
  468. virtual void DoPropExchange(CXTPPropExchange* pPX);
  469. protected:
  470. CString m_strPreviewText;   // Preview content.
  471. };
  472. //**************************************************************************************
  473. AFX_INLINE void CXTPReportRecordItemText::SetValue(LPCTSTR szText){
  474. m_strText = szText;
  475. }
  476. AFX_INLINE void CXTPReportRecordItemNumber::SetValue(double dValue) {
  477. m_dValue = dValue;
  478. }
  479. AFX_INLINE double CXTPReportRecordItemNumber::GetValue() {
  480. return m_dValue;
  481. }
  482. AFX_INLINE COleDateTime CXTPReportRecordItemDateTime::GetValue() {
  483. return m_odtValue;
  484. }
  485. AFX_INLINE void CXTPReportRecordItemDateTime::SetValue(COleDateTime odtValue) {
  486. m_odtValue = odtValue;
  487. }
  488. AFX_INLINE CString CXTPReportRecordItemPreview::GetPreviewText() {
  489. return m_strPreviewText;
  490. }
  491. AFX_INLINE BOOL CXTPReportRecordItemPreview::IsPreviewItem() const {
  492. return TRUE;
  493. }
  494. #endif //#if !defined(__XTPREPORTRECORDITEMTEXT_H__)