#ifndef _BUILDING_AREA_H #define _BUILDING_AREA_H #include "resource.h" #include "adui.h" #include "acui.h" class TBAHouseData { protected: XPoly2D m_polyOutline; //轮廓 DualList m_lstHouse; //同一户型的户列表 public: CString m_sName;//户型编号 CString m_sType;//户型 Array m_arrayLayerNum;//每个标准层的数量 Array m_arrayLayerName;//每个标准层的层名字,与工程表中的层名对应 add by fxj double m_fSpaceArea; //套内使用面积 double m_fWallArea; //套内墙体面积 double m_fBalconyArea; //套内阳台面积 double m_fBuildArea; //套内建筑面积 double m_fSharedArea; //公摊面积 double m_fStatisticsArea;//建筑面积 double m_fStatisticsAreaEx;//套型建筑面积 double m_fSharedAreaEx; //套型公摊面积=套型建筑面积-套内使用面积 double m_fBalconyAreaEx; //套型阳台面积 public: TBAHouseData(TBAHouse&firstHouse,int floorNum=1);//firstHouse(第一户),layerNum(标准层数量) void AppendHouse(TBAHouse *pHouse); long GetTotalNum()const;//得到总户数,每层户数之和 bool operator >(const TBAHouseData& a)const; bool operator <(const TBAHouseData& a)const{return a>(*this);}//ok bool operator ==(const TBAHouseData& a)const; bool operator !=(const TBAHouseData& a)const{return !((*this)==a);}//ok }; //根据户对象,构造户型列表 class TBAHouseDataList:public PDList { public: //构造户型列表唯一方法 //pHouse需要识别户型的户,floorIndex所在层在楼层表中的索引,floorNum楼层表中楼层总数 void Append(TBAHouse *pHouse,long floorIndex,long floorNum); }; //建筑项目面积统计对话框 by fxj 080701 class ProjectTreeGrid : public WDGrid { public: ProjectTreeGrid(); }; class CAreaChildDlg : public CAcUiTabChildDialog { public: CAreaChildDlg(TBABuilding *pBuilding=NULL); enum { IDD = IDD_BUDAREA }; void ShowGrid(); BOOL GetSheet(TDbSheet*pSheet); ProjectTreeGrid m_grid; TBABuilding *m_pBuilding; List m_lstUpHouseCode; protected: virtual BOOL OnInitDialog(); }; class CPatternStaChildDlg : public CAcUiTabChildDialog { public: CPatternStaChildDlg(TBAHouseDataList *pListHouseData=NULL); enum { IDD = IDD_STASTYLE }; void ShowGrid(); BOOL GetSheet(TDbSheet *pSheet); WDGrid m_grid; TBAHouseDataList *m_pLstHouseData; protected: virtual BOOL OnInitDialog(); }; // Zyu add on 100827,住宅套型统计表 class CHousePtnStaChildDlg : public CAcUiTabChildDialog { public: CHousePtnStaChildDlg(TBAHouseDataList *pListHouseData = NULL); enum { IDD = IDD_CHLDLG_STASTYLE }; void ShowGrid(); BOOL GetSheet(TDbSheet *pSheet); WDGrid m_grid; TBAHouseDataList *m_pLstHouseData; protected: virtual BOOL OnInitDialog(); }; class CPatternAnaChildDlg : public CAcUiTabChildDialog { public: CPatternAnaChildDlg(TBAHouseDataList *pListHouseData=NULL); enum { IDD = IDD_ANASTYLE}; void ShowGrid(); BOOL GetSheet(TDbSheet *pSheet); ProjectTreeGrid m_grid; TBAHouseDataList *m_pLstHouseData; protected: virtual BOOL OnInitDialog(); }; // Zyu add on 100901,表格的Jig对象 class TDbSheetJig : public AcEdJig { public: TDbSheetJig(); TDbSheetJig(TDbSheet *pEnt); public: virtual AcEdJig::DragStatus sampler(); virtual Adesk::Boolean update(); virtual AcDbEntity* entity() const; public: void SetKeyword(LPCTSTR pszKeyword); private: AcGePoint3d m_ptInsert; // 插入点 TDbSheet *m_pEnt; // 拖动对象 CString m_sKeyword; // 关键字 }; class CProjectAreaSheet : public CAcUiTabMainDialog { DECLARE_DYNAMIC(CProjectAreaSheet) // Construction public: CProjectAreaSheet(TBABuilding *pBuilding,TBAHouseDataList *pLstHouseData,CWnd* parent); // Dialog Data //{{AFX_DATA(CProjectAreaSheet) enum { IDD = IDD_AREA_GRID }; //}}AFX_DATA CAreaChildDlg m_pageBudAreaSta; CPatternStaChildDlg m_pagePatternSta; CPatternAnaChildDlg m_pagePatternAna; // Zyu add on 100827,住宅套型统计表Tab页 CHousePtnStaChildDlg m_pageHousePtnSta; CAcUiTab m_tab; static int s_nPage; public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CProjectAreaSheet) virtual BOOL OnInitDialog(); virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 //}}AFX_VIRTUAL protected: //{{AFX_MSG(CProjectAreaSheet) afx_msg void OnDestroy(); afx_msg void OnLabel(); afx_msg void OnClose(); afx_msg void OnSize(UINT nType, int cx, int cy); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: // Zyu add on 100831,调整Tab中窗口的大小 void ResizeChildDlg(CDialog *pDlg, UINT nID ); // Zyu add on 100831,重新布局窗口中的控件 void Relayout(int iWidth, int iHeight); // Zyu add on 100901,拷贝表格 void CopySheet(TDbSheet *pSheetSrc, TEntitySet &entDest); }; #endif