Files

228 lines
5.2 KiB
C++
Raw Permalink Normal View History

2026-10-04 00:04:20 +08:00
#pragma once
2026-09-28 15:28:50 +08:00
#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);
2026-10-04 00:04:20 +08:00
//管线
2026-09-28 15:28:50 +08:00
void ExtractBomOfPipe(AecDbEwPipe* pPipe);
2026-10-04 00:04:20 +08:00
//管件
2026-09-28 15:28:50 +08:00
void ExtractBomOfEwFit(AecDbEwFitting* pEwFit);
2026-10-04 00:04:20 +08:00
//设备
2026-09-28 15:28:50 +08:00
void ExtractBomOfEqu(AecDbEwEquipment* pEqu);
2026-10-04 00:04:20 +08:00
//设备
2026-09-28 15:28:50 +08:00
void ExtractBomOfXEqu(AecDbXEquipment* pXEqu);
2026-10-04 00:04:20 +08:00
//风管
2026-09-28 15:28:50 +08:00
void ExtractBomOfDuct(AecDbHvacDuct* pDuct);
2026-10-04 00:04:20 +08:00
//风管件
2026-09-28 15:28:50 +08:00
void ExtractBomOfHFit(AecDbHvacFitting* pHFit);
2026-10-04 00:04:20 +08:00
//桥架
2026-09-28 15:28:50 +08:00
void ExtractBomOfECable(AecDbECableTray* pECable);
2026-10-04 00:04:20 +08:00
//桥架件
2026-09-28 15:28:50 +08:00
void ExtractBomOfEFit(AecDbEcFitting* pEFit);
2026-10-04 00:04:20 +08:00
//套管
2026-09-28 15:28:50 +08:00
void ExtractBomOfXPart(AecDbX3dPartEntity* pXPart);
2026-10-04 00:04:20 +08:00
//支架
2026-09-28 15:28:50 +08:00
void ExtractBomOfHolder(AecDbHolder* pHolder);
2026-10-04 00:04:20 +08:00
//吊架
2026-09-28 15:28:50 +08:00
void ExtractBomOfHanger(AecDbHanger* pHanger);
2026-10-04 00:04:20 +08:00
//托架
2026-09-28 15:28:50 +08:00
void ExtractBomOfPipeHanger(AcDbEntity *pEnt);
2026-10-04 00:04:20 +08:00
//支墩
2026-09-28 15:28:50 +08:00
void ExtractBomOfBHolder(AecDbBossHolder* pBHolder);
2026-10-04 00:04:20 +08:00
//护栏
2026-09-28 15:28:50 +08:00
void ExtractBomOfGBar(AecDbGuardBar* pGBar);
2026-10-04 00:04:20 +08:00
//圆护爬梯
2026-09-28 15:28:50 +08:00
void ExtractBomOfCStair(AecDbClimbStair* pCStair);
2026-10-04 00:04:20 +08:00
//直梯子
2026-09-28 15:28:50 +08:00
void ExtractBomOfLStair(AecDbLineStair* pLStair);
2026-10-04 00:04:20 +08:00
//圆弧梯
2026-09-28 15:28:50 +08:00
void ExtractBomOfAStair(AecDbArcStair* pAStair);
2026-10-04 00:04:20 +08:00
//门窗
2026-09-28 15:28:50 +08:00
void ExtractBomOfOpening(AecDbXOpening* pOpening);
2026-10-04 00:04:20 +08:00
//线管
2026-09-28 15:28:50 +08:00
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;
2026-10-04 00:04:20 +08:00
//管线设备
2026-09-28 15:28:50 +08:00
CStringList m_lstSys;
2026-10-04 00:04:20 +08:00
std::vector<short> m_vtDns;//预先排序DN
2026-09-28 15:28:50 +08:00
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;
2026-10-04 00:04:20 +08:00
//暖通
2026-09-28 15:28:50 +08:00
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;
2026-10-04 00:04:20 +08:00
//桥架
2026-09-28 15:28:50 +08:00
CStringList m_lstESys;
std::vector<ECabletryBom> m_vtECabletryBoms;
std::vector<ECabFitBom> m_vtECabFitBoms;
2026-10-04 00:04:20 +08:00
//门窗
2026-09-28 15:28:50 +08:00
std::vector<OpeningBom> m_vtOpeningBoms;
2026-10-04 00:04:20 +08:00
//以下暂时不报表统计!!! 属于构筑物
//支吊架
2026-09-28 15:28:50 +08:00
std::vector<AngSteelBom> m_vtAngSteelBoms;
2026-10-04 00:04:20 +08:00
std::vector<TierodBom> m_vtTierods;//拉杆
2026-09-28 15:28:50 +08:00
2026-10-04 00:04:20 +08:00
//托架
2026-09-28 15:28:50 +08:00
std::vector< PipeHanger> m_vtPipeHgBoms;
2026-10-04 00:04:20 +08:00
//护栏
2026-09-28 15:28:50 +08:00
std::vector<GuarBarBom> m_vtGuarBarBoms;
2026-10-04 00:04:20 +08:00
//爬梯
2026-09-28 15:28:50 +08:00
std::vector<ClimbStairBom> m_vtClimbStairBoms;
2026-10-04 00:04:20 +08:00
//直梯 圆弧梯
2026-09-28 15:28:50 +08:00
std::vector<LineStairBom> m_vtLineStairBoms;
2026-10-04 00:04:20 +08:00
//线管
2026-09-28 15:28:50 +08:00
std::vector< XGPipeBom> m_vtXGPipeBoms;
};