#pragma once #include "afxcmn.h" #include "UIIListCtrl.h" #include "BomReportDef.h" #include "resource.h" #include "shJson.h" template void addEntHandle(AcDbEntity *pEnt, T *pBom) { if (pEnt && pBom) { CString s; #if ARX > 19 pEnt->objectId().handle().getIntoAsciiBuffer(s.GetBuffer(255), 255); #else pEnt->objectId().handle().getIntoAsciiBuffer(s.GetBuffer(255)); #endif if (pBom->pszArHandles == NULL) pBom->pszArHandles = new CStringArray; ((CStringArray *)pBom->pszArHandles)->Add(s); s.ReleaseBuffer(); return; } else { if (pBom) pBom->pszArHandles = NULL; } return; } typedef CMap CMapStringToInt; class AecDbEwFitting; class CBomReportDlg : public CDialog { DECLARE_DYNAMIC(CBomReportDlg) public: CBomReportDlg(CWnd* pParent = NULL); virtual ~CBomReportDlg(); enum { IDD = IDD_BOMREPORTDLG }; void SetOnBomDwgFile(BOOL bBomDwg) { m_bBomDwg = bBomDwg; } void SetBomSN(BOOL bBomSN) { m_bBomSN = bBomSN; } void SetBOMReport(LPCTSTR pzsReportIni, LPCTSTR pszBomDwg) {m_sReportIni = pzsReportIni; m_sBomDwg = pszBomDwg;} protected: virtual void DoDataExchange(CDataExchange* pDX); DECLARE_MESSAGE_MAP() afx_msg LONG_PTR onAcadKeepFocus( UINT_PTR, LONG_PTR); public: virtual BOOL OnInitDialog(); afx_msg void OnBnClickedBtselfile(); afx_msg void OnBnClickedBtselents(); afx_msg void OnBnClickedOk(); afx_msg void OnClose(); afx_msg void OnBnClickedCancel(); afx_msg void OnDestroy(); afx_msg void OnBnClickedBtTmpl(); afx_msg void OnBnClickedButton2(); afx_msg void OnBnClickedButton3(); afx_msg void OnBnClickedWriteEntBtn(); afx_msg void OnBnClickedMakeCADTable(); afx_msg void OnBnClickedMakeEXCELTable(); void BomFromReadDwg(CString& sFileName); void ExtractBomOfEntity(AcDbObjectId& id); void ShowtoReportlist(); void ShowtoReportlist2(); void ImpShowReportList(const CString &sMatSelect); void FreeBomBuffer(); void AddFlangeBom(AecDbEwFitting *pWFit); protected: void DwgBomWrite(); void InitBomSn(); void SetBomSN(LPCTSTR pszMertial, int &nBomSN); CImageList m_imageList; BOOL m_bCheckExcel; CUIIListCtrl m_wndBomList; //统计的原始数据印象 CMapStringToPtr m_mapPipeBom; CMapStringToPtr m_mapElbowBom; CMapStringToPtr m_mapRElbowBom; CMapStringToPtr m_mapReducerBom; CMapStringToPtr m_mapTeeBom; CMapStringToPtr m_mapLTeeBom; CMapStringToPtr m_mapWyeBom; CMapStringToPtr m_mapCrossBom; CMapStringToPtr m_mapWCapBom; CMapStringToPtr m_mapWFlangeBom; CMapStringToPtr m_mapWFlxJoinBom; CMapStringToPtr m_mapRPBom; CMapStringToPtr m_mapHPBom; CMapStringToPtr m_mapSPBom; CMapStringToPtr m_mapWBoltBom; CMapStringToPtr m_mapWNutBom; CMapStringToPtr m_mapName2Count;//设备 CMapStringToPtr m_mapWGasketBom; CMapStringToPtr m_mapAngSteelBom; CMapStringToPtr m_mapGuarBarBom; CMapStringToPtr m_mapClimbStairBom; CMapStringToPtr m_mapLineStairBom; CMapStringToPtr m_mapOpeningBom; //PVC CMapStringToPtr m_mapWThroughBoms; CMapStringToPtr m_mapWUJoinBoms; CMapStringToPtr m_mapWRJoinBoms; CMapStringToPtr m_mapWOJoinBoms; CMapStringToPtr m_mapWIJoinBoms; //风管 CMapStringToPtr m_mapDuctBom; CMapStringToPtr m_mapHElbowBom; CMapStringToPtr m_mapHTeeBom; CMapStringToPtr m_mapHCrossBom; CMapStringToPtr m_mapHOffsetBom; //桥架 CMapStringToPtr m_mapCabtryBom; CMapStringToPtr m_mapEElbowBom; CMapStringToPtr m_mapETeeBom; CMapStringToPtr m_mapECrossBom; //线管 CMapStringToPtr m_mapXGPipeBom; //统计的原始数据 std::vector m_vtPipeBomPtrs; std::vector m_vtElbowBomPtrs; std::vector m_vtRElbowBomPtrs; std::vector m_vtReducerBomPtrs; std::vector m_vtTeeBomPtrs; std::vector m_vtLTeeBomPtrs; std::vector m_vtWyeBomPtrs; std::vector m_vtCrossBomPtrs; std::vector m_vtWCapBomPtrs; std::vector m_vtWFlangeBomPtrs; std::vector m_vtWFlxJoinBomPtrs; std::vector m_vtRPBomPtrs; std::vector m_vtHPBomPtrs; std::vector m_vtSPBomPtrs; //PVC spec std::vector< WThroughBom*> m_vtWThroughBomPtrs; std::vector< WUJoinBom*> m_vtWUJoinBomPtrs; std::vector< WRJoinBom*> m_vtWRJoinBomPtrs; std::vector< WOJoinBom*> m_vtWOJoinBomPtrs; std::vector< WIJoinBom*> m_vtWIJoinBomPtrs; std::vector m_vtWGasketBomPtrs; std::vector m_vtWBoltBomPtrs; std::vector m_vtWNutBomPtrs; std::vector m_vtAngSteelBomPtrs; std::vector m_vtGuarBarBomPtrs; std::vector m_vtClimbStairBomPtrs; std::vector m_vtLineStairBomPtrs; std::vector m_vtOpeningBomPtrs; //风管 std::vector m_vtDuctBomPtrs; std::vector m_vtHElbowBomPtrs; std::vector m_vtHTeeBomPtrs; std::vector m_vtHCrossBomPtrs; std::vector m_vtHOffsetBomPtrs; //桥架 std::vector m_vtECabtryBomPtrs; std::vector m_vtEElbowBomPtrs; std::vector m_vtETeeBomPtrs; std::vector m_vtECrossBomPtrs; //线管 std::vector< XGPipeBom*> m_vtXGPipeBomPtrs; //材质权重 CMapStringToInt m_mapMat2BomSn; public: int m_nMaxRow; CString m_sProno; CString m_sDwgno; CString m_sBomDwg; BOOL m_bBomSN; BOOL m_bBomDwg; double m_dLenX; BOOL m_bNoGasket; CString m_sReportIni; };