Files
envi-code/SourceCode/Code2026/tg_shs/shs_outdoor/WaterRationDlg.cpp
T
2026-09-28 15:28:50 +08:00

181 lines
5.4 KiB
C++

// WaterRationDlg.cpp : implementation file
//
#include "stdafx.h"
#include "shs_outdoor.h"
#include "WaterRationDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CWaterRationDlg dialog
CWaterRationDlg::CWaterRationDlg(CWnd* pParent /*=NULL*/)
: CDialog(CWaterRationDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CWaterRationDlg)
m_radWaterPurpose = 0;
//}}AFX_DATA_INIT
}
void CWaterRationDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CWaterRationDlg)
DDX_Control(pDX, IDC_LIST_WATER_RATION, m_lstWaterRation);
DDX_Radio(pDX, IDC_RADIO_PURPOSE, m_radWaterPurpose);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CWaterRationDlg, CDialog)
//{{AFX_MSG_MAP(CWaterRationDlg)
ON_NOTIFY(NM_DBLCLK, IDC_LIST_WATER_RATION, OnDblclkListWaterRation)
ON_BN_CLICKED(IDC_RADIO_PURPOSE, OnRadioPurpose)
ON_BN_CLICKED(IDC_RADIO_PURPOSE1, OnRadioPurpose1)
ON_BN_CLICKED(IDC_RADIO_PURPOSE2, OnRadioPurpose2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CWaterRationDlg message handlers
BOOL CWaterRationDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_lstWaterRation.SetExtendedStyle(LVS_EX_FULLROWSELECT);
m_lstWaterRation.InsertColumn (0, _T("用地代号"), LVCFMT_CENTER, 70);
m_lstWaterRation.InsertColumn (1, _T("用地名称"), LVCFMT_CENTER, 170);
m_lstWaterRation.InsertColumn (2, _T("用水量指标"), LVCFMT_CENTER, 80);
UpdateDataRationList();
return TRUE;
}
void CWaterRationDlg::OnOK()
{
// 确定当前所选项
POSITION pos = m_lstWaterRation.GetFirstSelectedItemPosition();
int iCurSel = m_lstWaterRation.GetNextSelectedItem(pos);
if (0 > iCurSel)
return;
CString csWaterRation = m_lstWaterRation.GetItemText(iCurSel, 2);
m_csWaterRation = DefaultWaterRation(csWaterRation);
CDialog::OnOK();
}
CString CWaterRationDlg::DefaultWaterRation(CString csRationRange)
{
int idx = csRationRange.Find(_T("~"));
if (-1 == idx)
return _T("");
CString csTmp;
csTmp = csRationRange.Left(idx); // min
csRationRange.Delete(0, idx + 1); // max
double dMidValue = 0.0;
dMidValue = (_tstof(csTmp) + _tstof(csRationRange)) / 2;
csTmp.Format(_T("%.2f"), dMidValue);
return csTmp;
}
void CWaterRationDlg::OnDblclkListWaterRation(NMHDR* pNMHDR, LRESULT* pResult)
{
OnOK();
*pResult = 0;
}
void CWaterRationDlg::UpdateDataRationList()
{
UpdateData();
m_lstWaterRation.DeleteAllItems();
// 《城市给水工程规划规范》(GB 50282—98)
switch (m_radWaterPurpose)
{
case 0:
// 表2.2.5-2 单位公共设施用地用水量指标
m_lstWaterRation.InsertItem(0, _T("C"));
m_lstWaterRation.SetItemText(0, 1, _T("商贸金融用地"));
m_lstWaterRation.SetItemText(0, 2, _T("0.50~1.00"));
m_lstWaterRation.InsertItem(1, _T("C"));
m_lstWaterRation.SetItemText(1, 1, _T("体育、文化娱乐用地"));
m_lstWaterRation.SetItemText(1, 2, _T("0.50~1.00"));
m_lstWaterRation.InsertItem(2, _T("C"));
m_lstWaterRation.SetItemText(2, 1, _T("旅馆、服务业用地"));
m_lstWaterRation.SetItemText(2, 2, _T("1.00~1.50"));
m_lstWaterRation.InsertItem(3, _T("C"));
m_lstWaterRation.SetItemText(3, 1, _T("教育用地"));
m_lstWaterRation.SetItemText(3, 2, _T("1.00~1.50"));
m_lstWaterRation.InsertItem(4, _T("C"));
m_lstWaterRation.SetItemText(4, 1, _T("医疗、休疗养用地"));
m_lstWaterRation.SetItemText(4, 2, _T("1.00~1.50"));
m_lstWaterRation.InsertItem(5, _T("C"));
m_lstWaterRation.SetItemText(5, 1, _T("其他公共设施用地"));
m_lstWaterRation.SetItemText(5, 2, _T("0.80~1.20"));
break;
case 1:
// 表2.2.5-3 单位工业用地用水量指标
m_lstWaterRation.InsertItem(0, _T("M1"));
m_lstWaterRation.SetItemText(0, 1, _T("一类工业用地"));
m_lstWaterRation.SetItemText(0, 2, _T("1.20~2.00"));
m_lstWaterRation.InsertItem(1, _T("M2"));
m_lstWaterRation.SetItemText(1, 1, _T("二类工业用地"));
m_lstWaterRation.SetItemText(1, 2, _T("2.00~3.50"));
m_lstWaterRation.InsertItem(2, _T("M3"));
m_lstWaterRation.SetItemText(2, 1, _T("三类工业用地"));
m_lstWaterRation.SetItemText(2, 2, _T("3.00~5.00"));
break;
case 2:
// 表2.2.5-4 单位其他用地用水量指标
m_lstWaterRation.InsertItem(0, _T("W"));
m_lstWaterRation.SetItemText(0, 1, _T("仓储用地"));
m_lstWaterRation.SetItemText(0, 2, _T("0.20~0.50"));
m_lstWaterRation.InsertItem(1, _T("T"));
m_lstWaterRation.SetItemText(1, 1, _T("对外交通用地"));
m_lstWaterRation.SetItemText(1, 2, _T("0.30~0.60"));
m_lstWaterRation.InsertItem(2, _T("S"));
m_lstWaterRation.SetItemText(2, 1, _T("道路广场用地"));
m_lstWaterRation.SetItemText(2, 2, _T("0.20~0.30"));
m_lstWaterRation.InsertItem(3, _T("U"));
m_lstWaterRation.SetItemText(3, 1, _T("市政公用设施用地"));
m_lstWaterRation.SetItemText(3, 2, _T("0.25~0.50"));
m_lstWaterRation.InsertItem(4, _T("G"));
m_lstWaterRation.SetItemText(4, 1, _T("绿地"));
m_lstWaterRation.SetItemText(4, 2, _T("0.10~0.30"));
m_lstWaterRation.InsertItem(5, _T("D"));
m_lstWaterRation.SetItemText(5, 1, _T("特殊用地"));
m_lstWaterRation.SetItemText(5, 2, _T("0.50~0.90"));
m_lstWaterRation.InsertItem(6, _T("C"));
m_lstWaterRation.SetItemText(6, 1, _T("行政办公用地"));
m_lstWaterRation.SetItemText(6, 2, _T("0.50~1.00"));
break;
default:
break;
}
}
void CWaterRationDlg::OnRadioPurpose()
{
UpdateDataRationList();
}
void CWaterRationDlg::OnRadioPurpose1()
{
UpdateDataRationList();
}
void CWaterRationDlg::OnRadioPurpose2()
{
UpdateDataRationList();
}