Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

178 lines
4.7 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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