229 lines
5.2 KiB
C++
229 lines
5.2 KiB
C++
#pragma once
|
|
#include "resource.h"
|
|
#include "afxwin.h"
|
|
#include "TreeListCtrl.h"
|
|
#include "BomReportDef.h"
|
|
#include <vector>
|
|
#include "aecdbewpipe.h"
|
|
|
|
class AecDbEwFitting;
|
|
class AecDbXEquipment;
|
|
class AecDbHvacDuct;
|
|
class AecDbHvacFitting;
|
|
class AecDbECableTray;
|
|
class AecDbEcFitting;
|
|
class AecDbX3dPartEntity;
|
|
class AecDbHolder;
|
|
class AecDbHanger;
|
|
class AecDbBossHolder;
|
|
class AecDbGuardBar;
|
|
class AecDbClimbStair;
|
|
class AecDbLineStair;
|
|
class AecDbArcStair;
|
|
class AecDbXOpening;
|
|
class AecDbEwFlexiblePipe;
|
|
|
|
class CBomReportExDlg : public CDialog
|
|
{
|
|
DECLARE_DYNAMIC(CBomReportExDlg)
|
|
|
|
public:
|
|
CBomReportExDlg(CWnd* pParent = NULL);
|
|
virtual ~CBomReportExDlg();
|
|
|
|
enum { IDD = IDD_BOMREPORTEXDLG };
|
|
|
|
void SetOnBomDwgFile(BOOL bBomDwg) { m_bBomDwg = bBomDwg; }
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
afx_msg LONG_PTR onAcadKeepFocus( UINT_PTR, LONG_PTR);
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
public:
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg void OnBnClickedBtselents();
|
|
afx_msg void OnBnClickedOk();
|
|
afx_msg void OnBnClickedButton1();
|
|
afx_msg void OnBnClickedButton2();
|
|
afx_msg void OnBnClickedButton3();
|
|
afx_msg void OnBnClickedBtTmpl();
|
|
afx_msg void OnClose();
|
|
afx_msg void OnBnClickedCancel();
|
|
afx_msg void OnDestroy();
|
|
afx_msg void OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult);
|
|
afx_msg void OnBnClickedMakeCADTable();
|
|
afx_msg void OnBnClickedMakeEXCELTable();
|
|
|
|
protected:
|
|
|
|
void InitObjListColumn();
|
|
|
|
//
|
|
void ExtractBomOfEntity(AcDbObjectId& id);
|
|
|
|
//管线
|
|
void ExtractBomOfPipe(AecDbEwPipe* pPipe);
|
|
|
|
//管件
|
|
void ExtractBomOfEwFit(AecDbEwFitting* pEwFit);
|
|
|
|
//设备
|
|
void ExtractBomOfEqu(AecDbEwEquipment* pEqu);
|
|
|
|
//设备
|
|
void ExtractBomOfXEqu(AecDbXEquipment* pXEqu);
|
|
|
|
//风管
|
|
void ExtractBomOfDuct(AecDbHvacDuct* pDuct);
|
|
|
|
//风管件
|
|
void ExtractBomOfHFit(AecDbHvacFitting* pHFit);
|
|
|
|
//桥架
|
|
void ExtractBomOfECable(AecDbECableTray* pECable);
|
|
|
|
//桥架件
|
|
void ExtractBomOfEFit(AecDbEcFitting* pEFit);
|
|
|
|
//套管
|
|
void ExtractBomOfXPart(AecDbX3dPartEntity* pXPart);
|
|
|
|
//支架
|
|
void ExtractBomOfHolder(AecDbHolder* pHolder);
|
|
|
|
//吊架
|
|
void ExtractBomOfHanger(AecDbHanger* pHanger);
|
|
|
|
//托架
|
|
void ExtractBomOfPipeHanger(AcDbEntity *pEnt);
|
|
|
|
//支墩
|
|
void ExtractBomOfBHolder(AecDbBossHolder* pBHolder);
|
|
|
|
//护栏
|
|
void ExtractBomOfGBar(AecDbGuardBar* pGBar);
|
|
|
|
//圆护爬梯
|
|
void ExtractBomOfCStair(AecDbClimbStair* pCStair);
|
|
|
|
//直梯子
|
|
void ExtractBomOfLStair(AecDbLineStair* pLStair);
|
|
|
|
//圆弧梯
|
|
void ExtractBomOfAStair(AecDbArcStair* pAStair);
|
|
|
|
//门窗
|
|
void ExtractBomOfOpening(AecDbXOpening* pOpening);
|
|
|
|
//线管
|
|
void ExtractBomOfFlexiblePipe(AecDbEwFlexiblePipe *pFxPipe);
|
|
|
|
void BomFlangeGet(WPipe::PipeParam *pParam, int nCount);
|
|
|
|
void ShowtoReportlist();
|
|
|
|
void WriteBomNoToEnt(HTREEITEM hParent);
|
|
void ReSortBomNo(HTREEITEM hParent,int& nGlobalIndex,int nABCD);
|
|
|
|
void ExcelBomWrite();
|
|
|
|
void DwgBomWrite();
|
|
|
|
void FreeXDataBuf();
|
|
|
|
void DeleteItemXData(HTREEITEM hParent);
|
|
|
|
void CopyToListCtrl();
|
|
|
|
void DeepCopyToListCtrl(HTREEITEM hParent);
|
|
|
|
void AddFlangeBom(AecDbEwFitting *pWFit);
|
|
|
|
protected:
|
|
CStatic m_wndObjFrm;
|
|
CImageList m_imageList;
|
|
CTreeListCtrl m_wndObjTreeList;
|
|
CListCtrl m_wndBomList;
|
|
BOOL m_bCheckExcel;
|
|
BOOL m_bIsdigitNo;
|
|
BOOL m_bNoAddCircle;
|
|
BOOL m_bNoNotOnClass;
|
|
BOOL m_bNoGasket;
|
|
public:
|
|
CString m_sProno;
|
|
CString m_sDwgno;
|
|
CString m_sBomDwg;
|
|
int m_nMaxRow;
|
|
BOOL m_bBomDwg;
|
|
double m_dLenX;
|
|
AcDbObjectIdArray m_arBomIds;
|
|
|
|
//管线设备
|
|
CStringList m_lstSys;
|
|
std::vector<short> m_vtDns;//预先排序DN
|
|
std::vector<PipeBom> m_vtPipeBoms;
|
|
std::vector<CoverPipeBom>m_vtCoverPipeBoms;
|
|
std::vector<ElbowBom> m_vtElbowBoms;
|
|
std::vector<RElbowBom> m_vtRElbowBoms;
|
|
std::vector<ReducerBom> m_vtReducerBoms;
|
|
std::vector<TeeBom> m_vtTeeBoms;
|
|
std::vector<LTeeBom> m_vtLTeeBoms;
|
|
std::vector<WyeBom> m_vtWyeBoms;
|
|
std::vector<CrossBom> m_vtCrossBoms;
|
|
std::vector<WCapBom> m_vtWCapBoms;
|
|
std::vector<WFlangeBom> m_vtWFlangeBoms;
|
|
std::vector<WFlxJoinBom> m_vtWFlxJoinBoms;
|
|
std::vector<WEquBom> m_vtWEquBoms;
|
|
std::vector<WBolt> m_vtWBoltBoms;
|
|
std::vector<WNut> m_vtWNutBoms;
|
|
std::vector<WGasket> m_vtWGasketBoms;
|
|
std::vector<RPBom> m_vtRPBoms;
|
|
std::vector<HPBom> m_vtHPBoms;
|
|
std::vector<SPBBom> m_vtSPBBoms;
|
|
|
|
//PVC spec
|
|
std::vector< WThroughBom> m_vtWThroughBoms;
|
|
std::vector< WUJoinBom> m_vtWUJoinBoms;
|
|
std::vector< WRJoinBom> m_vtWRJoinBoms;
|
|
std::vector< WOJoinBom> m_vtWOJoinBoms;
|
|
std::vector< WIJoinBom> m_vtWIJoinBoms;
|
|
|
|
|
|
//暖通
|
|
CStringList m_lstHSys;
|
|
std::vector<DuctBom> m_vtDuctBoms;
|
|
std::vector<HElbowBom> m_vtHElbowBoms;
|
|
std::vector<HTeeBom> m_vtHTeeBoms;
|
|
std::vector<HCrossBom> m_vtHCrossBoms;
|
|
std::vector<HOffsetBom> m_vtHOffsetBoms;
|
|
|
|
//桥架
|
|
CStringList m_lstESys;
|
|
std::vector<ECabletryBom> m_vtECabletryBoms;
|
|
std::vector<ECabFitBom> m_vtECabFitBoms;
|
|
|
|
//门窗
|
|
std::vector<OpeningBom> m_vtOpeningBoms;
|
|
|
|
//以下暂时不报表统计!!! 属于构筑物
|
|
//支吊架
|
|
std::vector<AngSteelBom> m_vtAngSteelBoms;
|
|
std::vector<TierodBom> m_vtTierods;//拉杆
|
|
|
|
//托架
|
|
std::vector< PipeHanger> m_vtPipeHgBoms;
|
|
|
|
//护栏
|
|
std::vector<GuarBarBom> m_vtGuarBarBoms;
|
|
|
|
//爬梯
|
|
std::vector<ClimbStairBom> m_vtClimbStairBoms;
|
|
|
|
//直梯 圆弧梯
|
|
std::vector<LineStairBom> m_vtLineStairBoms;
|
|
|
|
//线管
|
|
std::vector< XGPipeBom> m_vtXGPipeBoms;
|
|
};
|