#pragma once #include "afxcmn.h" #include "UIIListCtrl.h" #include "resource.h" typedef struct PipeBom { short nDn; //DN short nD; //D float fThick; //THICK double dLen; //LEN TCHAR szMertial[255]; //材料 }PipeBom; typedef struct CableBom { short nD; //D double dLen; //LEN TCHAR szModel[255];; //型号 TCHAR szFactory[255]; //厂家 }CABLEBOM; typedef struct ElbowBom { short nDn; //DN short nD; //D short nAngle; //度 float fThick; //THICK float fRRatio; // TCHAR szMertial[255]; //材料 int nCount; }ELBOWBOM; typedef struct ReducerBom { short nDn; short nD; short nTDn; short nTD; float fThick; //THICK short nLen; TCHAR szMertial[255]; //材料 int nCount; short nOffset; }REDUCERBOM; typedef struct TeeBom { short nDn; //DN short nD; //OD short nTDn; short nTD; float fThick; //THICK short nL; short nB; TCHAR szMertial[255]; //材料 int nCount; }TEEBOM; typedef struct LTeeBom { short nDn; //DN short nD; //OD short nTDn; short nTD; float fThick; //THICK short nE; short nM; short nB; TCHAR szMertial[255]; //材料 int nCount; }LTEEBOM; typedef struct WyeBom { short nDn; //DN short nD; //OD short nTDn; short nTD; float fThick; //THICK short nM; short nB; TCHAR szMertial[255]; //材料 int nCount; }WYEBOM; typedef struct CrossBom { short nDn; //DN short nD; //OD short nTDn; short nTD; short nL; // short nB; // float fThick; //THICK TCHAR szMertial[255]; //材料 int nCount; }CROSSBOM; typedef struct WCapBom { short nDn; //DN short nD; //OD short nL; // float fThick; //THICK TCHAR szMertial[255]; //材料 int nCount; }WCAPBOM; typedef struct WFlangeBom { short nDn; //DN TCHAR szMertial[255]; //材料 int nCount; }WFLANGEBOM; typedef struct WGasket { short nDn; double dt;//厚度 TCHAR szMertial[255]; //材料 int nCount; }WGASKET; typedef struct WEquBom //设备 { TCHAR szName[255]; TCHAR szSpec[255]; int nCount; }WEQUBOM; class CBomReportDlg : public CDialog { DECLARE_DYNAMIC(CBomReportDlg) public: CBomReportDlg(CWnd* pParent = NULL); virtual ~CBomReportDlg(); enum { IDD = IDD_BOMREPORTDLG }; void AddPipeLineEntPtr(AcDbEntity* pEnt); protected: virtual void DoDataExchange(CDataExchange* pDX); DECLARE_MESSAGE_MAP() public: virtual BOOL OnInitDialog(); afx_msg void OnClose(); afx_msg void OnBnClickedBtselfile(); afx_msg void OnBnClickedBtselents(); afx_msg void OnBnClickedOk(); afx_msg void OnBnClickedCancel(); afx_msg void OnDestroy(); afx_msg void OnBnClickedBtTmpl(); void BomFromReadDwg(CString& sFileName); void ExtractBomOfEntity(AcDbEntity* pEnt); void ShowtoReportlist(); void FreeBomBuffer(); protected: CImageList m_imageList; CUIIListCtrl m_wndBomList; //统计的原始数据印象 CMapStringToPtr m_mapPipeBom; CMapStringToPtr m_mapCableBom; CMapStringToPtr m_mapElbowBom; CMapStringToPtr m_mapReducerBom; CMapStringToPtr m_mapTeeBom; CMapStringToPtr m_mapLTeeBom; CMapStringToPtr m_mapWyeBom; CMapStringToPtr m_mapCrossBom; CMapStringToPtr m_mapWCapBom; CMapStringToPtr m_mapWFlangeBom; CMapStringToPtr m_mapName2Count;//设备 //统计的原始数据 std::vector m_vtPipeBomPtrs; std::vector m_vtCableBomPtrs; std::vector m_vtElbowBomPtrs; 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; public: CString m_sProno; CString m_sDwgno; CString m_sBomDwg; AcDbVoidPtrArray m_arAddtionPtrs; //管线和管件设备线缆部分 };