2026-10-04 00:04:20 +08:00
|
|
|
|
#ifndef _BUILDING_AREA_H
|
2026-09-28 15:28:50 +08:00
|
|
|
|
#define _BUILDING_AREA_H
|
|
|
|
|
|
|
|
|
|
|
|
#include "resource.h"
|
|
|
|
|
|
#include "adui.h"
|
|
|
|
|
|
#include "acui.h"
|
|
|
|
|
|
|
|
|
|
|
|
class TBAHouseData
|
|
|
|
|
|
{
|
|
|
|
|
|
protected:
|
2026-10-04 00:04:20 +08:00
|
|
|
|
XPoly2D m_polyOutline; //轮廓
|
|
|
|
|
|
DualList<TBAHouse*> m_lstHouse; //同一户型的户列表
|
2026-09-28 15:28:50 +08:00
|
|
|
|
public:
|
2026-10-04 00:04:20 +08:00
|
|
|
|
CString m_sName;//户型编号
|
|
|
|
|
|
CString m_sType;//户型
|
2026-09-28 15:28:50 +08:00
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
|
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;//建筑面积
|
2026-09-28 15:28:50 +08:00
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
|
double m_fStatisticsAreaEx;//套型建筑面积
|
|
|
|
|
|
double m_fSharedAreaEx; //套型公摊面积=套型建筑面积-套内使用面积
|
|
|
|
|
|
double m_fBalconyAreaEx; //套型阳台面积
|
2026-09-28 15:28:50 +08:00
|
|
|
|
public:
|
2026-10-04 00:04:20 +08:00
|
|
|
|
TBAHouseData(TBAHouse&firstHouse,int floorNum=1);//firstHouse(第一户),layerNum(标准层数量)
|
2026-09-28 15:28:50 +08:00
|
|
|
|
void AppendHouse(TBAHouse *pHouse);
|
2026-10-04 00:04:20 +08:00
|
|
|
|
long GetTotalNum()const;//得到总户数,每层户数之和
|
2026-09-28 15:28:50 +08:00
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
};
|
2026-10-04 00:04:20 +08:00
|
|
|
|
//根据户对象,构造户型列表
|
2026-09-28 15:28:50 +08:00
|
|
|
|
class TBAHouseDataList:public PDList<TBAHouseData>
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
2026-10-04 00:04:20 +08:00
|
|
|
|
//构造户型列表唯一方法
|
|
|
|
|
|
//pHouse需要识别户型的户,floorIndex所在层在楼层表中的索引,floorNum楼层表中楼层总数
|
2026-09-28 15:28:50 +08:00
|
|
|
|
void Append(TBAHouse *pHouse,long floorIndex,long floorNum);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
|
//建筑项目面积统计对话框 by fxj 080701
|
2026-09-28 15:28:50 +08:00
|
|
|
|
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();
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
|
// Zyu add on 100827,住宅套型统计表
|
2026-09-28 15:28:50 +08:00
|
|
|
|
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();
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
|
// Zyu add on 100901,表格的Jig对象
|
2026-09-28 15:28:50 +08:00
|
|
|
|
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:
|
2026-10-04 00:04:20 +08:00
|
|
|
|
AcGePoint3d m_ptInsert; // 插入点
|
|
|
|
|
|
TDbSheet *m_pEnt; // 拖动对象
|
|
|
|
|
|
CString m_sKeyword; // 关键字
|
2026-09-28 15:28:50 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
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;
|
2026-10-04 00:04:20 +08:00
|
|
|
|
// Zyu add on 100827,住宅套型统计表Tab页
|
2026-09-28 15:28:50 +08:00
|
|
|
|
CHousePtnStaChildDlg m_pageHousePtnSta;
|
|
|
|
|
|
|
|
|
|
|
|
CAcUiTab m_tab;
|
|
|
|
|
|
static int s_nPage;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
// Overrides
|
|
|
|
|
|
// ClassWizard generated virtual function overrides
|
|
|
|
|
|
//{{AFX_VIRTUAL(CProjectAreaSheet)
|
|
|
|
|
|
virtual BOOL OnInitDialog();
|
2026-10-04 00:04:20 +08:00
|
|
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
2026-09-28 15:28:50 +08:00
|
|
|
|
//}}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:
|
2026-10-04 00:04:20 +08:00
|
|
|
|
// Zyu add on 100831,调整Tab中窗口的大小
|
2026-09-28 15:28:50 +08:00
|
|
|
|
void ResizeChildDlg(CDialog *pDlg, UINT nID );
|
2026-10-04 00:04:20 +08:00
|
|
|
|
// Zyu add on 100831,重新布局窗口中的控件
|
2026-09-28 15:28:50 +08:00
|
|
|
|
void Relayout(int iWidth, int iHeight);
|
2026-10-04 00:04:20 +08:00
|
|
|
|
// Zyu add on 100901,拷贝表格
|
2026-09-28 15:28:50 +08:00
|
|
|
|
void CopySheet(TDbSheet *pSheetSrc, TEntitySet &entDest);
|
|
|
|
|
|
};
|
|
|
|
|
|
#endif
|