Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

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;
};