178 lines
4.7 KiB
C++
178 lines
4.7 KiB
C++
#ifndef _BUILDING_AREA_H
|
||
#define _BUILDING_AREA_H
|
||
|
||
#include "resource.h"
|
||
#include "adui.h"
|
||
#include "acui.h"
|
||
|
||
class TBAHouseData
|
||
{
|
||
protected:
|
||
XPoly2D m_polyOutline; //轮廓
|
||
DualList<TBAHouse*> m_lstHouse; //同一户型的户列表
|
||
public:
|
||
CString m_sName;//户型编号
|
||
CString m_sType;//户型
|
||
|
||
Array<int> m_arrayLayerNum;//每个标准层的数量
|
||
Array<CString> 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<TBAHouseData>
|
||
{
|
||
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<CString> 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 |