#include "stdafx.h" #include "afxdialogex.h" #include "CPenLinSetDlg.h" #include "KTModelLayoutXData.h" #define _WD_PLSZ_INIT_ _T("_WD_PLSZ_INIT_") // 安装类型 IMP_XDATA_KEY(CPenLinSetDlg, _WD_PLSZ_INSTALL_TYPE_); // 温度 IMP_XDATA_KEY(CPenLinSetDlg, _WD_PLSZ_TEMPERATURE_); // 灵敏度 IMP_XDATA_KEY(CPenLinSetDlg, _WD_PLSZ_SENSITIVITY_); // 接管管径 IMP_XDATA_KEY(CPenLinSetDlg, _WD_PLSZ_CONNECT_DN_); // 接管长度 IMP_XDATA_KEY(CPenLinSetDlg, _WD_PLSZ_CONNECT_LEN_); // 保护半径 IMP_XDATA_KEY(CPenLinSetDlg, _WD_PLSZ_PROTECT_R_); // 流量系数 IMP_XDATA_KEY(CPenLinSetDlg, _WD_PLSZ_FLOW_K_); // 喷水强度 IMP_XDATA_KEY(CPenLinSetDlg, _WD_PLSZ_WATER_STRENGTH_); // 结构 IMP_XDATA_KEY(CPenLinSetDlg, _WD_PLSZ_TYPE_); // 热敏 IMP_XDATA_KEY(CPenLinSetDlg, _WD_PLSZ_HEAT_SENS_); // 覆盖面积 IMP_XDATA_KEY(CPenLinSetDlg, _WD_PLSZ_COVER_AREA_); IMPLEMENT_DYNAMIC(CPenLinSetDlg, CDialog) CPenLinSetDlg::CPenLinSetDlg(CWnd* pParent) : CDialog(IDD_DIALOG_PENLIN_SET, pParent) , m_iInitType(0) , m_iTemperature(0) , m_iSensitivity(0) , m_dRadiusProtection(20) , m_dNozzleLength(1) , m_dFlowCoefficient(1.) , m_dSprayIntensity(10.) , m_iOpen(FALSE) , m_iGlassBall(FALSE) , m_iStandardCoverageSparinkler(FALSE) , m_sPipeDiameter(_T("DN25")) { } CPenLinSetDlg::~CPenLinSetDlg() { } void CPenLinSetDlg::DoDataExchange(CDataExchange* pDX) { DDX_Text(pDX, IDC_EDIT_RADIUS_PROTECTION, m_dRadiusProtection); DDX_Text(pDX, IDC_EDIT_NOZZLE_LENGTH, m_dNozzleLength); DDX_Text(pDX, IDC_EDIT_FLOW_COEFFICIENT, m_dFlowCoefficient); DDX_Text(pDX, IDC_EDIT_SPRAY_INTENSITY, m_dSprayIntensity); DDX_Radio(pDX, IDC_RADIO_OPEN, m_iOpen); DDX_Radio(pDX, IDC_RADIO_GLASS_BALL, m_iGlassBall); DDX_Radio(pDX, IDC_RADIO_STANDARD_COVERAGE_SPARINKLER, m_iStandardCoverageSparinkler); DDX_CBIndex(pDX, IDC_COMBO_INSTALL_TYPE, m_iInitType); DDX_CBIndex(pDX, IDC_COMBO_TEMPERATURE, m_iTemperature); DDX_CBIndex(pDX, IDC_COMBO_SENSITIVITY, m_iSensitivity); DDX_CBString(pDX, IDC_COMBO_PIPE_DIAMETER, m_sPipeDiameter); } BEGIN_MESSAGE_MAP(CPenLinSetDlg, CDialog) ON_BN_CLICKED(IDOK, &CPenLinSetDlg::OnBnClickedOk) END_MESSAGE_MAP() // CPenLinSetDlg message handlers BOOL CPenLinSetDlg::OnInitDialog() { CDialog::OnInitDialog(); AecDbObjXDataMap xDataMap; if (getPLSZData(xDataMap)) { xDataMap.GetAt(_WD_PLSZ_INSTALL_TYPE_, m_iInitType); xDataMap.GetAt(_WD_PLSZ_TEMPERATURE_, m_iTemperature); xDataMap.GetAt(_WD_PLSZ_SENSITIVITY_, m_iSensitivity); int iTmp(25.); xDataMap.GetAt(_WD_PLSZ_CONNECT_DN_, iTmp); m_sPipeDiameter = _T("DN"); m_sPipeDiameter += TypeConvert::i2s(iTmp); xDataMap.GetAt(_WD_PLSZ_CONNECT_LEN_, m_dRadiusProtection); xDataMap.GetAt(_WD_PLSZ_PROTECT_R_, m_dNozzleLength); xDataMap.GetAt(_WD_PLSZ_FLOW_K_, m_dFlowCoefficient); xDataMap.GetAt(_WD_PLSZ_WATER_STRENGTH_, m_dSprayIntensity); xDataMap.GetAt(_WD_PLSZ_TYPE_, m_iOpen); xDataMap.GetAt(_WD_PLSZ_HEAT_SENS_, m_iGlassBall); xDataMap.GetAt(_WD_PLSZ_COVER_AREA_, m_iStandardCoverageSparinkler); } UpdateData(FALSE); return TRUE; } bool CPenLinSetDlg::getPLSZData(AecDbObjXDataMap &xDataMap) { return KTModelLayoutXData::ReadModelXData(_WD_PLSZ_INIT_, xDataMap) == FALSE ? false : true; } void CPenLinSetDlg::OnBnClickedOk() { if (!UpdateData(TRUE)) return; AecDbObjXDataMap xDataMap; xDataMap.SetAt(_WD_PLSZ_INSTALL_TYPE_, m_iInitType); xDataMap.SetAt(_WD_PLSZ_TEMPERATURE_, m_iTemperature); xDataMap.SetAt(_WD_PLSZ_SENSITIVITY_, m_iSensitivity); CString s(m_sPipeDiameter); s = s.Right(s.GetLength() - 2); xDataMap.SetAt(_WD_PLSZ_CONNECT_DN_, TypeConvert::s2i(s)); xDataMap.SetAt(_WD_PLSZ_CONNECT_LEN_, m_dRadiusProtection); xDataMap.SetAt(_WD_PLSZ_PROTECT_R_, m_dNozzleLength); xDataMap.SetAt(_WD_PLSZ_FLOW_K_, m_dFlowCoefficient); xDataMap.SetAt(_WD_PLSZ_WATER_STRENGTH_, m_dSprayIntensity); xDataMap.SetAt(_WD_PLSZ_TYPE_, m_iOpen); xDataMap.SetAt(_WD_PLSZ_HEAT_SENS_, m_iGlassBall); xDataMap.SetAt(_WD_PLSZ_COVER_AREA_, m_iStandardCoverageSparinkler); KTModelLayoutXData::WriteModelXData(_WD_PLSZ_INIT_, xDataMap); CDialog::OnOK(); }