201 lines
5.4 KiB
C++
201 lines
5.4 KiB
C++
#pragma once
|
|
#include "afxcmn.h"
|
|
#include "UIIListCtrl.h"
|
|
#include "BomReportDef.h"
|
|
#include "resource.h"
|
|
#include "shJson.h"
|
|
|
|
template <typename T>
|
|
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<CString, LPCTSTR, int, int> 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<PipeBom*> m_vtPipeBomPtrs;
|
|
std::vector<ElbowBom*> m_vtElbowBomPtrs;
|
|
std::vector<RElbowBom *> m_vtRElbowBomPtrs;
|
|
std::vector<ReducerBom*> m_vtReducerBomPtrs;
|
|
std::vector<TeeBom*> m_vtTeeBomPtrs;
|
|
std::vector<LTeeBom*> m_vtLTeeBomPtrs;
|
|
std::vector<WyeBom*> m_vtWyeBomPtrs;
|
|
std::vector<CrossBom*> m_vtCrossBomPtrs;
|
|
std::vector<WCapBom*> m_vtWCapBomPtrs;
|
|
std::vector<WFlangeBom*> m_vtWFlangeBomPtrs;
|
|
std::vector<WFlxJoinBom *> m_vtWFlxJoinBomPtrs;
|
|
|
|
std::vector<RPBom *> m_vtRPBomPtrs;
|
|
std::vector<HPBom *> m_vtHPBomPtrs;
|
|
std::vector<SPBBom *> 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<WGasket*> m_vtWGasketBomPtrs;
|
|
std::vector<WBolt *> m_vtWBoltBomPtrs;
|
|
std::vector<WNut *> m_vtWNutBomPtrs;
|
|
std::vector<AngSteelBom*> m_vtAngSteelBomPtrs;
|
|
std::vector<GuarBarBom*> m_vtGuarBarBomPtrs;
|
|
std::vector<ClimbStairBom*> m_vtClimbStairBomPtrs;
|
|
std::vector<LineStairBom*> m_vtLineStairBomPtrs;
|
|
std::vector<OpeningBom*> m_vtOpeningBomPtrs;
|
|
|
|
//风管
|
|
std::vector<DuctBom*> m_vtDuctBomPtrs;
|
|
std::vector<HElbowBom*> m_vtHElbowBomPtrs;
|
|
std::vector<HTeeBom*> m_vtHTeeBomPtrs;
|
|
std::vector<HCrossBom*> m_vtHCrossBomPtrs;
|
|
std::vector<HOffsetBom*> m_vtHOffsetBomPtrs;
|
|
|
|
//桥架
|
|
std::vector<ECabletryBom*> m_vtECabtryBomPtrs;
|
|
std::vector<ECabFitBom*> m_vtEElbowBomPtrs;
|
|
std::vector<ECabFitBom*> m_vtETeeBomPtrs;
|
|
std::vector<ECabFitBom*> 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;
|
|
};
|