Files
envi-code/SourceCode/Code2026/PipelineCmd/BomReportExDlg.h
T
2026-09-28 15:28:50 +08:00

229 lines
5.1 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;
};