DragonNest/Third/XTToolkitPro/Samples/ReportControl/ReportSample/HeaderFooterView.h
2024-12-19 09:48:26 +08:00

325 lines
9.5 KiB
C++

// HeaderFooterView.h : header file
//
// This file is a part of the XTREME TOOLKIT PRO MFC class library.
// (c)1998-2008 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
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_HEADERFOOTERVIEW_H__5E52F174_9488_44B0_B8E7_48BC345422A2__INCLUDED_)
#define AFX_HEADERFOOTERVIEW_H__5E52F174_9488_44B0_B8E7_48BC345422A2__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "MainFrm.h"
//enum TaskImportance
//{
// taskImportanceNormal,
// taskImportanceHigh,
// taskImportanceLow
//};
//
//enum TaskStatus
//{
// taskStatusNotStarted,
// taskStatusInProgress,
// taskStatusCompleted,
// taskStatusWaiting,
// taskStatusDeferred,
//};
//class CTaskRecord : public CXTPReportRecord
//{
//protected:
//
// class CTaskItemType : public CXTPReportRecordItem
//{
// public:
// CTaskItemType(BOOL /*bSharedTask*/)
// {
// SetFocusable(FALSE);
// }
// };
//
// class CTaskItemImportance : public CXTPReportRecordItem
// {
// public:
// CTaskItemImportance(TaskImportance taskImportance)
// {
// SetImportance(taskImportance);
// }
// void OnConstraintChanged(XTP_REPORTRECORDITEM_ARGS* /*pItemArgs*/, CXTPReportRecordItemConstraint* pConstraint)
// {
// SetImportance((TaskImportance)pConstraint->m_dwData);
// }
// DWORD GetSelectedConstraintData(XTP_REPORTRECORDITEM_ARGS* /*pItemArgs*/)
// {
// return m_taskImportance;
// }
//
// void SetImportance(TaskImportance taskImportance )
// {
// m_taskImportance = taskImportance;
//
// SetIconIndex(taskImportance == taskImportanceHigh ? 6 :
// taskImportance == taskImportanceLow ? 9: -1);
//
// SetGroupPriority(
// taskImportance == taskImportanceHigh? IDS_GROUP_IMPOPRTANCE_HIGH:
// taskImportance == taskImportanceLow? IDS_GROUP_IMPOPRTANCE_LOW: IDS_GROUP_IMPOPRTANCE_NORMAL);
//
// SetSortPriority(GetGroupPriority());
// }
//
// public:
// TaskImportance m_taskImportance;
// };
//
// class CTaskItemAttachment : public CXTPReportRecordItem
// {
// public:
// CTaskItemAttachment::CTaskItemAttachment(BOOL bHasAttachment)
// {
// SetIconIndex(bHasAttachment ? 8 : -1);
// SetGroupPriority(bHasAttachment? IDS_GROUP_ATTACHMENTS_TRUE: IDS_GROUP_ATTACHMENTS_FALSE);
// SetSortPriority(GetGroupPriority());
// SetFocusable(FALSE);
// }
// };
// class CTaskItemDueDate : public CXTPReportRecordItemDateTime
// {
// public:
// CTaskItemDueDate(COleDateTime dtDateTime)
// : CXTPReportRecordItemDateTime(dtDateTime)
// {
// m_strFormatString = _T("%a %m/%d/%Y");
// }
// CString GetCaption(CXTPReportColumn* /*pColumn*/)
// {
// if ((DATE)m_odtValue == 0)
// return _T("None");
//
// return m_odtValue.Format(m_strFormatString);
// }
// };
//
// class CTaskItemStatus : public CXTPReportRecordItem
// {
// public:
// CTaskItemStatus(TaskStatus taskStatus)
// {
// m_taskStatus = taskStatus;
// }
//
// CString GetCaption(CXTPReportColumn* pColumn)
// {
// CXTPReportRecordItemConstraint* pConstraint = pColumn->GetEditOptions()->FindConstraint(m_taskStatus);
// ASSERT(pConstraint);
// return pConstraint->m_strConstraint;
// }
//
// void OnEditChanged(XTP_REPORTRECORDITEM_ARGS* pItemArgs, LPCTSTR szText)
// {
// CXTPReportRecordItemConstraint* pConstraint = pItemArgs->pColumn->GetEditOptions()->FindConstraint(szText);
// if (pConstraint)
// {
// m_taskStatus = (TaskStatus)pConstraint->m_dwData;
//
// CXTPReportRecordItem* pItemComplete = ((CTaskRecord*)GetRecord())->GetItem(6);
//
// if (m_taskStatus == taskStatusCompleted &&
// ((CTaskItemComplete*)pItemComplete)->GetValue() != 100)
// {
// ((CTaskItemComplete*)pItemComplete)->SetValue(100);
// }
// if (m_taskStatus != taskStatusCompleted &&
// ((CTaskItemComplete*)pItemComplete)->GetValue() == 100)
// {
// ((CTaskItemComplete*)pItemComplete)->SetValue(0);
// }
// }
// }
// TaskStatus m_taskStatus;
// };
//
// class CTaskItemComplete : public CXTPReportRecordItemNumber
// {
// public:
// CTaskItemComplete(int nComplete)
// : CXTPReportRecordItemNumber(nComplete, _T("%2.0f%%"))
// {
//
// }
// void OnEditChanged(XTP_REPORTRECORDITEM_ARGS* pItemArgs, LPCTSTR szText)
// {
// CXTPReportRecordItemNumber::OnEditChanged(pItemArgs, szText);
// if (m_dValue > 100)
// m_dValue = 100;
//
// int nStatus = (int)GetValue();
//
// CXTPReportRecordItem* pItemStatus = ((CTaskRecord*)GetRecord())->GetItem(3);
//
// if (nStatus == 100 &&
// ((CTaskItemStatus*)pItemStatus)->m_taskStatus !=taskStatusCompleted)
// {
// ((CTaskItemStatus*)pItemStatus)->m_taskStatus = taskStatusCompleted;
// }
// if (nStatus != 100 &&
// ((CTaskItemStatus*)pItemStatus)->m_taskStatus ==taskStatusCompleted)
// {
// ((CTaskItemStatus*)pItemStatus)->m_taskStatus = taskStatusInProgress;
// }
// }
//
// };
//
//
//public:
// CTaskRecord(
// BOOL bSharedTask, TaskImportance taskImportance, BOOL bHasAttachment,
// TaskStatus taskStatus, CString strSubject,
// COleDateTime odtDueDate, int nComplete, CString strCategories);
//
// virtual void GetItemMetrics(XTP_REPORTRECORDITEM_DRAWARGS* pDrawArgs, XTP_REPORTRECORDITEM_METRICS* pItemMetrics);
//};
class CHeaderFooterFrame : public CXTPFrameWnd
{
public:
CHeaderFooterFrame(CView* pView)
{
m_pOwnerView = pView;
}
protected: // control bar embedded members
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
CView* m_pOwnerView;
// Generated message map functions
protected:
//{{AFX_MSG(CHeaderFooterFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnDestroy();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// CHeaderFooterView view
class CHeaderFooterView : public CXTPReportView
{
protected:
CHeaderFooterView(); // protected constructor used by dynamic creation
DECLARE_DYNCREATE(CHeaderFooterView)
// Attributes
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CHeaderFooterView)
protected:
//}}AFX_VIRTUAL
// Implementation
protected:
virtual ~CHeaderFooterView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
// Generated message map functions
protected:
//{{AFX_MSG(CHeaderFooterView)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnShowHeaderRecords();
afx_msg void OnUpdateShowHeaderRecords(CCmdUI* pCmdUI);
afx_msg void OnHeaderRecordsAllowEdit();
afx_msg void OnUpdateHeaderRecordsAllowEdit(CCmdUI* pCmdUI);
afx_msg void OnShowFooterRecords();
afx_msg void OnUpdateShowFooterRecords(CCmdUI* pCmdUI);
afx_msg void OnFooterRecordsAllowEdit();
afx_msg void OnUpdateFooterRecordsAllowEdit(CCmdUI* pCmdUI);
afx_msg void OnPinFooterRows();
afx_msg void OnUpdatePinFooterRows(CCmdUI* pCmdUI);
afx_msg void OnDrawGridForEmpty();
afx_msg void OnUpdateDrawGridForEmpty(CCmdUI* pCmdUI);
afx_msg void OnMoveInHeader();
afx_msg void OnUpdateMoveInHeader(CCmdUI* pCmdUI);
afx_msg void OnMoveInFooter();
afx_msg void OnUpdateMoveInFooter(CCmdUI* pCmdUI);
afx_msg void OnHeaderDividerStyleThin();
afx_msg void OnUpdateHeaderDividerStyleThin(CCmdUI* pCmdUI);
afx_msg void OnHeaderDividerStyleBold();
afx_msg void OnUpdateHeaderDividerStyleBold(CCmdUI* pCmdUI);
afx_msg void OnHeaderDividerStyleNone();
afx_msg void OnUpdateHeaderDividerStyleNone(CCmdUI* pCmdUI);
afx_msg void OnHeaderDividerStyleShade();
afx_msg void OnUpdateHeaderDividerStyleShade(CCmdUI* pCmdUI);
afx_msg void OnHeaderDividerStyleOutlook();
afx_msg void OnUpdateHeaderDividerStyleOutlook(CCmdUI* pCmdUI);
afx_msg void OnFooterDividerStyleThin();
afx_msg void OnUpdateFooterDividerStyleThin(CCmdUI* pCmdUI);
afx_msg void OnFooterDividerStyleBold();
afx_msg void OnUpdateFooterDividerStyleBold(CCmdUI* pCmdUI);
afx_msg void OnFooterDividerStyleNone();
afx_msg void OnUpdateFooterDividerStyleNone(CCmdUI* pCmdUI);
afx_msg void OnFooterDividerStyleShade();
afx_msg void OnUpdateFooterDividerStyleShade(CCmdUI* pCmdUI);
afx_msg void OnFooterDividerStyleOutlook();
afx_msg void OnUpdateFooterDividerStyleOutlook(CCmdUI* pCmdUI);
afx_msg void OnColumnsStyleFlat();
afx_msg void OnUpdateColumnsStyleFlat(CCmdUI* pCmdUI);
afx_msg void OnColumnsStyleExplorer();
afx_msg void OnUpdateColumnsStyleExplorer(CCmdUI* pCmdUI);
afx_msg void OnColumnsStyleShaded();
afx_msg void OnUpdateColumnsStyleShaded(CCmdUI* pCmdUI);
afx_msg void OnColumnsStyleOffice2003();
afx_msg void OnUpdateColumnsStyleOffice2003(CCmdUI* pCmdUI);
afx_msg void OnAddTask();
afx_msg void OnReportButtonClick(NMHDR * pNotifyStruct, LRESULT *result);
//}}AFX_MSG
BOOL Show_XTPDatePicker(CXTPReportControl* pControl, const CRect& rcItem, COleDateTime& rdtDate);
BOOL Show_MFCDatePicker(CXTPReportControl* pControl, const CRect& rcItem, COleDateTime& rdtDate);
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_HEADERFOOTERVIEW_H__5E52F174_9488_44B0_B8E7_48BC345422A2__INCLUDED_)