You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
803 lines
28 KiB
C++
803 lines
28 KiB
C++
// XTPReportSection.h: interface for the CXTPReportSection class.
|
|
//
|
|
// This file is a part of the XTREME REPORTCONTROL MFC class library.
|
|
// (c)1998-2012 Codejock Software, All Rights Reserved.
|
|
//
|
|
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
|
|
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
|
|
// CONSENT OF CODEJOCK SOFTWARE.
|
|
//
|
|
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
|
|
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
|
|
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
|
|
// SINGLE COMPUTER.
|
|
//
|
|
// CONTACT INFORMATION:
|
|
// support@codejock.com
|
|
// http://www.codejock.com
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
#if !defined(__XTPREPORTSECTION_H__)
|
|
#define __XTPREPORTSECTION_H__
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
class CXTPReportControl;
|
|
class CXTPReportRecords;
|
|
class CXTPReportRecord;
|
|
class CXTPReportRows;
|
|
class CXTPReportRow;
|
|
class CXTPReportSelectedRows;
|
|
class CXTPReportBorder;
|
|
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Section height algorithm.
|
|
//-----------------------------------------------------------------------
|
|
enum XTPReportSectionHeightMode
|
|
{
|
|
xtpReportSectionHeightModeFixed, // Equal to 'px' in HTML
|
|
xtpReportSectionHeightModeRelative, // Equal to '%' in HTML
|
|
xtpReportSectionHeightModeAuto, // Equal to 'auto' in HTML
|
|
xtpReportSectionHeightModeExpand, // Equal to '*' in HTML
|
|
|
|
xtpReportSectionHeightModeAutoExpand, // Minimum auto size
|
|
xtpReportSectionHeightModeAutoShrink, // Maximum auto size
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// A section represents
|
|
//-----------------------------------------------------------------------
|
|
class _XTP_EXT_CLASS CXTPReportSection : public CXTPCmdTarget
|
|
{
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs a report section.
|
|
//-----------------------------------------------------------------------
|
|
CXTPReportSection(CXTPReportControl *pControl, XTPReportRowType rowType);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Destructs a report section.
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPReportSection();
|
|
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns the border of this section.
|
|
//-----------------------------------------------------------------------
|
|
CXTPReportBorder* GetBorder() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to allow user moving the selection to rows.
|
|
// Parameters:
|
|
// bAllowAccess - TRUE - selection of rows is allowed, FALSE otherwise.
|
|
// See Also: IsAllowAccess
|
|
//-----------------------------------------------------------------------
|
|
void AllowAccess(BOOL bAllowAccess);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to determine if user can move selection to rows.
|
|
// Returns:
|
|
// TRUE if user can move selection to rows, FALSE otherwise.
|
|
// See Also: AllowAccess.
|
|
//-----------------------------------------------------------------------
|
|
BOOL IsAllowAccess() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to allow the text in all CXTPReportRecordItem(s) to be edited. This will
|
|
// add an edit box to the item where the text can be edited.
|
|
// Parameters:
|
|
// bAllowEdit - TRUE to add an edit box to the CXTPReportRecordItem(s) so they are editable.
|
|
// FALSE to remove the edit box and not allow them to be edited.
|
|
// See Also: IsAllowEdit, EditOnClick, IsEditOnClick
|
|
//-----------------------------------------------------------------------
|
|
void AllowEdit(BOOL bAllowEdit);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to determine if the record items are editable.
|
|
// Returns:
|
|
// TRUE is the record items are editable, otherwise FALSE.
|
|
// See Also: AllowEdit, EditOnClick, IsEditOnClick
|
|
//-----------------------------------------------------------------------
|
|
BOOL IsAllowEdit() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to enable or disable grouping of rows.
|
|
// Parameters:
|
|
// bAllowGroup - TRUE to enable grouping, FALSE to disable it.
|
|
// See Also: IsAllowGroup
|
|
//-----------------------------------------------------------------------
|
|
void AllowGroup(BOOL bAllowGroup);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to determine if grouping of rows is allowed.
|
|
// Returns:
|
|
// TRUE if grouping of rows is allowed, otherwise FALSE.
|
|
// See Also: AllowGroup
|
|
//-----------------------------------------------------------------------
|
|
BOOL IsAllowGroup() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to enable or disable sorting of rows.
|
|
// Parameters:
|
|
// bAllowSort - TRUE to enable sorting, FALSE to disable it.
|
|
// See Also: IsAllowGroup
|
|
//-----------------------------------------------------------------------
|
|
void AllowSort(BOOL bAllowSort);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to determine if sorting of rows is allowed.
|
|
// Returns:
|
|
// TRUE if sorting of rows is allowed, otherwise FALSE.
|
|
// See Also: AllowGroup
|
|
//-----------------------------------------------------------------------
|
|
BOOL IsAllowSort() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to enable or disable filtering of rows.
|
|
// Parameters:
|
|
// bAllowSort - TRUE to enable filtering, FALSE to disable it.
|
|
// See Also: IsAllowFilter
|
|
//-----------------------------------------------------------------------
|
|
void AllowFilter(BOOL bAllowFilter);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to determine if filtering of rows is allowed.
|
|
// Returns:
|
|
// TRUE if filtering of rows is allowed, otherwise FALSE.
|
|
// See Also: AllowFilter
|
|
//-----------------------------------------------------------------------
|
|
BOOL IsAllowFilter() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to enable rows selection.
|
|
// Parameters:
|
|
// bEnable - TRUE to enable rows selection.
|
|
// FALSE to disable rows selection.
|
|
// See Also: IsSelectionEnabled
|
|
//-----------------------------------------------------------------------
|
|
void SelectionEnable(BOOL bEnable);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to determine if rows selection is enabled.
|
|
// Returns:
|
|
// TRUE if rows selection is enabled, FALSE otherwise.
|
|
// See Also: SelectionEnable
|
|
//-----------------------------------------------------------------------
|
|
BOOL IsSelectionEnabled() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to hide/show section.
|
|
// Parameters:
|
|
// bShow - TRUE is records will be displayed, FALSE to hide records.
|
|
// See Also: IsVisible
|
|
//-----------------------------------------------------------------------
|
|
void SetVisible(BOOL bVisible = TRUE);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to determine if the section currently visible.
|
|
// Returns:
|
|
// TRUE if section is visible, otherwise FALSE.
|
|
// See Also: SetVisible
|
|
//-----------------------------------------------------------------------
|
|
BOOL IsVisible() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns the current height mode.
|
|
// Returns:
|
|
// Current height mode.
|
|
// See Also: SetHeightMode
|
|
//-----------------------------------------------------------------------
|
|
XTPReportSectionHeightMode GetHeightMode() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Sets the current height mode.
|
|
// Parameters:
|
|
// heightMode - New height mode.
|
|
// See Also: GetHeightMode
|
|
//-----------------------------------------------------------------------
|
|
void SetHeightMode(XTPReportSectionHeightMode heightMode);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns the current suggested height.
|
|
// Returns:
|
|
// Current suggested height.
|
|
// See Also: SetHeightMode
|
|
//-----------------------------------------------------------------------
|
|
int GetHeight() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Sets the suggested height.
|
|
// Parameters:
|
|
// nHeight - New suggested height.
|
|
// See Also: GetHeight
|
|
//-----------------------------------------------------------------------
|
|
void SetHeight(int nHeight);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns the current divider position for this section.
|
|
// Returns:
|
|
// Current divider position for this section.
|
|
// See Also: SetDividerPosition
|
|
//-----------------------------------------------------------------------
|
|
XTPReportSectionDividerPosition GetDividerPosition() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Sets the divider position for this section.
|
|
// Parameters:
|
|
// dividerPosition - New divider position.
|
|
// See Also: GetDividerPosition
|
|
//-----------------------------------------------------------------------
|
|
void SetDividerPosition(XTPReportSectionDividerPosition dividerPosition);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns the current divider style for this section.
|
|
// Returns:
|
|
// Current divider style for this section.
|
|
// See Also: SetDividerStyle
|
|
//-----------------------------------------------------------------------
|
|
XTPReportSectionDividerStyle GetDividerStyle() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Sets the divider style for this section.
|
|
// Parameters:
|
|
// dividerStyle - New divider style.
|
|
// See Also: GetDividerStyle
|
|
//-----------------------------------------------------------------------
|
|
void SetDividerStyle(XTPReportSectionDividerStyle dividerStyle);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns the current divider color for this section.
|
|
// Returns:
|
|
// Current divider color for this section.
|
|
// See Also: SetDividerColor
|
|
//-----------------------------------------------------------------------
|
|
CXTPPaintManagerColor GetDividerColor() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Sets the divider color for this section.
|
|
// Parameters:
|
|
// colorDivider - New divider color.
|
|
// See Also: GetDividerColor
|
|
//-----------------------------------------------------------------------
|
|
void SetDividerColor(CXTPPaintManagerColor clrDivider);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns the current rectangle for this section.
|
|
// Returns:
|
|
// Current rectangle for this section.
|
|
//-----------------------------------------------------------------------
|
|
CRect GetRect() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns the current divider rectangle for this section.
|
|
// Returns:
|
|
// Current divider rectangle for this section.
|
|
//-----------------------------------------------------------------------
|
|
CRect GetDividerRect() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns the collection of the data records.
|
|
// Returns:
|
|
// The data records collection.
|
|
// Remarks:
|
|
// Call this member function if you want to retrieve an access
|
|
// to the collection of report records. You may then perform
|
|
// standard operations on the collection like adding, removing, etc.
|
|
// See Also: CXTPReportRecords overview, AddRecord
|
|
//-----------------------------------------------------------------------
|
|
CXTPReportRecords* GetRecords() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns the collection of the report rows
|
|
// Remarks:
|
|
// Use this member function to retrieve an access to the collection
|
|
// of report rows, representing current control view.
|
|
//
|
|
// Note that rows collection could be rebuilt automatically
|
|
// on executing Populate method.
|
|
// Returns:
|
|
// The report rows collection.
|
|
// Example:
|
|
// See example for CXTPReportControl::BeginUpdate method.
|
|
// See Also: CXTPReportRows overview, Populate
|
|
//-----------------------------------------------------------------------
|
|
CXTPReportRows* GetRows() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this method to determine the row type: body, header, or footer.
|
|
// Returns:
|
|
// A value of enum XTPReportRowType.
|
|
//-----------------------------------------------------------------------
|
|
XTPReportRowType GetRowType() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Adds record to records collection.
|
|
// Parameters:
|
|
// pRecord - Record data with items.
|
|
// Remarks:
|
|
// Call this member function if you want to add a data record to the
|
|
// report control's internal storage.
|
|
// Example:
|
|
// <code>
|
|
// // this function adds 2 empty records to a report control
|
|
// void Add2Empties(CXTPReportControl* pReportCtrl)
|
|
// {
|
|
// pReportCtrl->AddRecord(new CXTPReportRecord());
|
|
// pReportCtrl->AddRecord(new CXTPReportRecord());
|
|
// }
|
|
// </code>
|
|
// Returns:
|
|
// Pointer to the recently added record object.
|
|
// See Also: CXTPReportRecord overview, GetRecords
|
|
//-----------------------------------------------------------------------
|
|
virtual CXTPReportRecord* AddRecord(CXTPReportRecord *pRecord);
|
|
|
|
virtual void CXTPReportSection::AddRecordEx(
|
|
CXTPReportRecord *pRecord,
|
|
CXTPReportRecord *pParentRecord = NULL,
|
|
int nRowChildIndex = -1,
|
|
int nRecordChildIndex = -1);
|
|
|
|
virtual void UpdateRecord(CXTPReportRecord *pRecord, BOOL bUpdateChildren);
|
|
|
|
virtual BOOL RemoveRecordEx(CXTPReportRecord *pRecord,
|
|
BOOL bAdjustLayout = TRUE,
|
|
BOOL bRemoveFromParent = TRUE);
|
|
|
|
virtual BOOL RemoveRowEx(CXTPReportRow *pRow, BOOL bAdjustLayout);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This method deletes all rows and records from the section.
|
|
//-----------------------------------------------------------------------
|
|
virtual void ResetContent();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Populates the section with rows.
|
|
//-----------------------------------------------------------------------
|
|
virtual void Populate(BOOL bUpdate);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Re-sorts the rows of this section.
|
|
//-----------------------------------------------------------------------
|
|
virtual void ReSortRows();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Recalculates indexes of all rows.
|
|
// Parameters:
|
|
// bAdjustLayout - If TRUE, layout is adjusted.
|
|
// bReverseOrder - If TRUE, row indices are updated in reverse order,
|
|
// starting from the last row.
|
|
//-----------------------------------------------------------------------
|
|
virtual void RefreshIndexes(BOOL bAdjustLayout, BOOL bReverseOrder);
|
|
|
|
virtual int _DoExpand(int nIndex, CXTPReportRow *pRow);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Collapses all children of the specified row.
|
|
// Parameters:
|
|
// pRow - A row to collapse.
|
|
//-----------------------------------------------------------------------
|
|
virtual int _DoCollapse(CXTPReportRow *pRow);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Draws the section on the provided DC.
|
|
// Parameters:
|
|
// pDC - Provided DC to draw rows image with.
|
|
// rcClient - A rectangle to draw rows image into.
|
|
// Returns:
|
|
// Index of last printed row
|
|
//-----------------------------------------------------------------------
|
|
virtual void Draw(CDC *pDC);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Determines if section is in virtual mode
|
|
// Returns;
|
|
// TRUE if virtual mode is enabled; FALSE otherwise.
|
|
//-----------------------------------------------------------------------
|
|
virtual BOOL IsVirtualMode() const;
|
|
|
|
virtual int InsertRow(int nIndex, CXTPReportRow *pRow);
|
|
|
|
virtual int GetPageRowCount(CDC *pDC) const;
|
|
|
|
virtual int GetTotalHeight(CDC *pDC) const;
|
|
|
|
virtual int GetRowsHeight(CDC *pDC) const;
|
|
|
|
virtual BOOL GetRowAt(CDC *pDC, int nWidth, int nOffset, int &nIndex, int &nTop);
|
|
|
|
virtual int GetRowOffset(CDC *pDC, int nWidth, int nIndex);
|
|
|
|
virtual BOOL EnsureVisible(CDC *pDC, CXTPReportRow *pRow);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Sets the markup context
|
|
//-----------------------------------------------------------------------
|
|
void SetMarkupContext(CXTPMarkupContext *pMarkupContext);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Retrieves the number of records after using m_strFilterText.
|
|
// Returns:
|
|
// Number of records after using m_strFilterText.
|
|
//-----------------------------------------------------------------------
|
|
int GetPopulatedRecordsCount() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Retrieves the index of the section.
|
|
// Returns:
|
|
// Index of the section.
|
|
//-----------------------------------------------------------------------
|
|
int GetIndex() const;
|
|
|
|
protected:
|
|
|
|
BOOL EnsureVisibleSmooth(CDC *pDC, CXTPReportRow *pRow);
|
|
int EnsureVisibleCalc (CDC *pDC, CXTPReportRow *pRow);
|
|
BOOL EnsureVisibleBlock (CDC *pDC, CXTPReportRow *pRow);
|
|
BOOL EnsureVisibleIcon (CDC *pDC, CXTPReportRow *pRow);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Builds rows tree based on provided data record.
|
|
// Parameters:
|
|
// pTree - Rows tree to add items into.
|
|
// pParentRow - Parent tree row.
|
|
// pRecords - Records collection for transferring to rows.
|
|
// Remarks:
|
|
// Builds rows tree based on provided data record.
|
|
// Recursively calls itself when build nested branches of rows
|
|
//-----------------------------------------------------------------------
|
|
void BuildTree(
|
|
CXTPReportRows *pTree,
|
|
CXTPReportRow *pParentRow,
|
|
CXTPReportRecords *pRecords);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Sorts rows tree corresponding to the sort order taken from columns.
|
|
// Parameters:
|
|
// pTree - A rows tree collection to sort.
|
|
//-----------------------------------------------------------------------
|
|
virtual void SortTree(CXTPReportRows* pTree);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Sorts rows corresponding to the sort order taken from columns.
|
|
// Parameters:
|
|
// pRows - A rows collection to sort.
|
|
//-----------------------------------------------------------------------
|
|
virtual void SortRows(CXTPReportRows *pRows);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns the collection of the selected rows.
|
|
// Remarks:
|
|
// Use this member function to retrieve an access to the collection
|
|
// of currently selected report rows.
|
|
// Returns:
|
|
// The selected rows collection.
|
|
// See Also: CXTPReportSelectedRows overview.
|
|
//-----------------------------------------------------------------------
|
|
CXTPReportSelectedRows* GetSelectedRows() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Retrieves the index of the row that currently has focus
|
|
// in the report control's view.
|
|
// Returns:
|
|
// Returns pointer to the focused row, or NULL otherwise.
|
|
//-----------------------------------------------------------------------
|
|
CXTPReportRow* GetFocusedRow() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns the current topmost row.
|
|
//-----------------------------------------------------------------------
|
|
virtual int GetScrollIndexV();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Sets the current topmost row.
|
|
//-----------------------------------------------------------------------
|
|
virtual void SetScrollIndexV(int nIndex);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Sets the currently top row index.
|
|
//-----------------------------------------------------------------------
|
|
virtual int GetScrollOffsetV() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Sets the currently top row index.
|
|
//-----------------------------------------------------------------------
|
|
virtual void SetScrollOffsetV(int nScrollOffsetV);
|
|
|
|
XTPReportScrollMode GetScrollModeV() const;
|
|
XTPReportScrollMode GetScrollModeH() const;
|
|
|
|
protected:
|
|
|
|
CXTPMarkupContext *m_pMarkupContext; // Markup context
|
|
CXTPReportBorder *m_pBorder; // Border
|
|
|
|
CXTPReportControl *m_pControl; // Parent control.
|
|
CXTPReportRecords *m_pRecords; // Records container.
|
|
CXTPReportRows *m_pRows; // Rows container.
|
|
CXTPReportRows *m_pTree; // Tree rows container.
|
|
|
|
int m_nPopulatedRecordsCount; // Number of records after using m_strFilterText.
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Divider
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
CRect m_rcSection; // The area occupied by the section.
|
|
CRect m_rcDivider; // Divider rectangle
|
|
CXTPPaintManagerColor m_clrDivider; // Divider color
|
|
XTPReportSectionDividerPosition m_dividerPosition; // Divider position
|
|
XTPReportSectionDividerStyle m_dividerStyle; // Divider style
|
|
|
|
XTPReportSectionHeightMode m_heightMode; // Height mode algorithm
|
|
int m_nHeight; // Suggested height (Fixed / Relative)
|
|
|
|
BOOL m_bAllowAccess; // TRUE if rows can be selected.
|
|
BOOL m_bAllowEdit; // TRUE if rows can be edited.
|
|
BOOL m_bAllowGroup; // TRUE if rows can be grouped.
|
|
BOOL m_bAllowSort; // TRUE if rows can be sorted.
|
|
BOOL m_bAllowFilter; // TRUE if rows can be filtered.
|
|
BOOL m_bSelectionEnable; // TRUE if selection enabled.
|
|
BOOL m_bVisible; // TRUE if section is visible.
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Scrolling
|
|
//////////////////////////////////////////////////////////////////////////
|
|
int m_nScrollIndexV; // Current top row in the visible area.
|
|
// IMPORTANT: With smooth scrolling this member may
|
|
// be -1, when the scrolling offset is changed and
|
|
// the new top row index is not yet recalculated.
|
|
// GetTopRowIndex() always returns the correct value.
|
|
|
|
int m_nScrollOffsetV; // Vertical scroll offset
|
|
|
|
|
|
XTPReportRowType m_rowType;
|
|
|
|
CUIntArray m_UaSorted; //Sorted array.
|
|
|
|
private:
|
|
|
|
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
friend class CXTPReportControl;
|
|
friend class CXTPReportSections;
|
|
friend class CXTPReportGroupRow;
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
};
|
|
|
|
AFX_INLINE void CXTPReportSection::AllowAccess(BOOL bAllowAccess)
|
|
{
|
|
m_bAllowAccess = bAllowAccess;
|
|
}
|
|
|
|
AFX_INLINE BOOL CXTPReportSection::IsAllowAccess() const
|
|
{
|
|
return m_bAllowAccess;
|
|
}
|
|
|
|
AFX_INLINE void CXTPReportSection::AllowEdit(BOOL bAllowEdit)
|
|
{
|
|
m_bAllowEdit = bAllowEdit;
|
|
}
|
|
|
|
AFX_INLINE BOOL CXTPReportSection::IsAllowEdit() const
|
|
{
|
|
return m_bAllowEdit;
|
|
}
|
|
|
|
AFX_INLINE void CXTPReportSection::AllowGroup(BOOL bAllowGroup)
|
|
{
|
|
m_bAllowGroup = bAllowGroup;
|
|
}
|
|
|
|
AFX_INLINE BOOL CXTPReportSection::IsAllowGroup() const
|
|
{
|
|
return m_bAllowGroup;
|
|
}
|
|
|
|
AFX_INLINE void CXTPReportSection::AllowSort(BOOL bAllowSort)
|
|
{
|
|
m_bAllowSort = bAllowSort;
|
|
}
|
|
|
|
AFX_INLINE BOOL CXTPReportSection::IsAllowSort() const
|
|
{
|
|
return m_bAllowSort;
|
|
}
|
|
|
|
AFX_INLINE void CXTPReportSection::AllowFilter(BOOL bAllowFilter)
|
|
{
|
|
m_bAllowFilter = bAllowFilter;
|
|
}
|
|
|
|
AFX_INLINE BOOL CXTPReportSection::IsAllowFilter() const
|
|
{
|
|
return m_bAllowFilter;
|
|
}
|
|
|
|
AFX_INLINE void CXTPReportSection::SelectionEnable(BOOL bEnable)
|
|
{
|
|
m_bSelectionEnable = bEnable;
|
|
}
|
|
|
|
AFX_INLINE BOOL CXTPReportSection::IsSelectionEnabled() const
|
|
{
|
|
return m_bSelectionEnable;
|
|
}
|
|
|
|
AFX_INLINE void CXTPReportSection::SetVisible(BOOL bVisible)
|
|
{
|
|
m_bVisible = bVisible;
|
|
}
|
|
|
|
AFX_INLINE BOOL CXTPReportSection::IsVisible() const
|
|
{
|
|
return m_bVisible;
|
|
}
|
|
|
|
AFX_INLINE CXTPReportRecords* CXTPReportSection::GetRecords() const
|
|
{
|
|
return m_pRecords;
|
|
}
|
|
|
|
AFX_INLINE CXTPReportRows* CXTPReportSection::GetRows() const
|
|
{
|
|
return m_pRows;
|
|
}
|
|
|
|
AFX_INLINE XTPReportSectionHeightMode CXTPReportSection::GetHeightMode() const
|
|
{
|
|
return m_heightMode;
|
|
}
|
|
|
|
AFX_INLINE void CXTPReportSection::SetHeightMode(XTPReportSectionHeightMode heightMode)
|
|
{
|
|
m_heightMode = heightMode;
|
|
}
|
|
|
|
AFX_INLINE int CXTPReportSection::GetHeight() const
|
|
{
|
|
return m_nHeight;
|
|
}
|
|
|
|
AFX_INLINE void CXTPReportSection::SetHeight(int nHeight)
|
|
{
|
|
m_nHeight = nHeight;
|
|
}
|
|
|
|
AFX_INLINE XTPReportSectionDividerPosition CXTPReportSection::GetDividerPosition() const
|
|
{
|
|
return m_dividerPosition;
|
|
}
|
|
|
|
AFX_INLINE void CXTPReportSection::SetDividerPosition(XTPReportSectionDividerPosition dividerPosition)
|
|
{
|
|
m_dividerPosition = dividerPosition;
|
|
}
|
|
|
|
AFX_INLINE XTPReportSectionDividerStyle CXTPReportSection::GetDividerStyle() const
|
|
{
|
|
return m_dividerStyle;
|
|
}
|
|
|
|
AFX_INLINE void CXTPReportSection::SetDividerStyle(XTPReportSectionDividerStyle dividerStyle)
|
|
{
|
|
m_dividerStyle = dividerStyle;
|
|
}
|
|
|
|
AFX_INLINE CXTPPaintManagerColor CXTPReportSection::GetDividerColor() const
|
|
{
|
|
return m_clrDivider;
|
|
}
|
|
|
|
AFX_INLINE void CXTPReportSection::SetDividerColor(CXTPPaintManagerColor clrDivider)
|
|
{
|
|
m_clrDivider = clrDivider;
|
|
}
|
|
|
|
AFX_INLINE CRect CXTPReportSection::GetRect() const
|
|
{
|
|
return m_rcSection;
|
|
}
|
|
|
|
AFX_INLINE CRect CXTPReportSection::GetDividerRect() const
|
|
{
|
|
return m_rcDivider;
|
|
}
|
|
|
|
AFX_INLINE int CXTPReportSection::GetPopulatedRecordsCount() const
|
|
{
|
|
return m_nPopulatedRecordsCount;
|
|
}
|
|
|
|
AFX_INLINE XTPReportScrollMode CXTPReportSection::GetScrollModeH() const
|
|
{
|
|
XTPReportScrollMode scrollMode = xtpReportScrollModeNone;
|
|
|
|
if (NULL != m_pControl)
|
|
{
|
|
scrollMode = m_pControl->GetScrollMode(xtpReportOrientationHorizontal);
|
|
}
|
|
|
|
return scrollMode;
|
|
}
|
|
|
|
AFX_INLINE XTPReportScrollMode CXTPReportSection::GetScrollModeV() const
|
|
{
|
|
XTPReportScrollMode scrollMode = xtpReportScrollModeNone;
|
|
|
|
if (NULL != m_pControl)
|
|
{
|
|
scrollMode = m_pControl->GetScrollMode(xtpReportOrientationVertical);
|
|
}
|
|
|
|
return scrollMode;
|
|
}
|
|
|
|
|
|
#endif //#if !defined(__XTPREPORTSECTION_H__)
|