Files
envi-code/SourceCode/Code2026/tg_shs/shs_kerncmd/buildingArea.h
T

178 lines
4.7 KiB
C++
Raw Normal View History

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