#pragma once #include "resource.h" #include "afxwin.h" #include "TreeListCtrl.h" #include "BomReportDef.h" #include #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 m_vtDns;//预先排序DN std::vector m_vtPipeBoms; std::vectorm_vtCoverPipeBoms; std::vector m_vtElbowBoms; std::vector m_vtRElbowBoms; std::vector m_vtReducerBoms; std::vector m_vtTeeBoms; std::vector m_vtLTeeBoms; std::vector m_vtWyeBoms; std::vector m_vtCrossBoms; std::vector m_vtWCapBoms; std::vector m_vtWFlangeBoms; std::vector m_vtWFlxJoinBoms; std::vector m_vtWEquBoms; std::vector m_vtWBoltBoms; std::vector m_vtWNutBoms; std::vector m_vtWGasketBoms; std::vector m_vtRPBoms; std::vector m_vtHPBoms; std::vector 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 m_vtDuctBoms; std::vector m_vtHElbowBoms; std::vector m_vtHTeeBoms; std::vector m_vtHCrossBoms; std::vector m_vtHOffsetBoms; //桥架 CStringList m_lstESys; std::vector m_vtECabletryBoms; std::vector m_vtECabFitBoms; //门窗 std::vector m_vtOpeningBoms; //以下暂时不报表统计!!! 属于构筑物 //支吊架 std::vector m_vtAngSteelBoms; std::vector m_vtTierods;//拉杆 //托架 std::vector< PipeHanger> m_vtPipeHgBoms; //护栏 std::vector m_vtGuarBarBoms; //爬梯 std::vector m_vtClimbStairBoms; //直梯 圆弧梯 std::vector m_vtLineStairBoms; //线管 std::vector< XGPipeBom> m_vtXGPipeBoms; };