587 lines
19 KiB
C++
587 lines
19 KiB
C++
// SanitaryDangDlg.cpp : implementation file
|
||
//
|
||
|
||
#include "stdafx.h"
|
||
#include "SanitaryDangDlg.h"
|
||
|
||
//zxl 2013.06.03 add
|
||
int ISetRoomV()
|
||
{
|
||
CTemporaryResourceOverride vTemp;
|
||
CSanitaryDangDlg dlg;
|
||
dlg.m_bMultSel = TRUE;
|
||
if (dlg.DoModal() != IDOK)
|
||
{
|
||
return RTERROR;
|
||
}
|
||
|
||
if (acedRetStr(dlg.m_csNg) == RTNORM)
|
||
{
|
||
return RTNORM;
|
||
}
|
||
return RTNORM;
|
||
}
|
||
|
||
#ifdef _DEBUG
|
||
#define new DEBUG_NEW
|
||
#undef THIS_FILE
|
||
static char THIS_FILE[] = __FILE__;
|
||
#endif
|
||
|
||
// zxl 2013.12.31 add
|
||
TGridSanitary::TGridSanitary()
|
||
{
|
||
AppendCol(_T("数量"), 28);
|
||
AppendCol(_T("名称"), 109);
|
||
SetNoPaste();
|
||
GetCol(1).SetReadOnly(true);
|
||
SetColPosFix();
|
||
SetColFixLength();
|
||
SetNoPaste();
|
||
FitLastCol();
|
||
}
|
||
|
||
bool TGridSanitary::OnBeforeDeleteRow()
|
||
{
|
||
WPARAM a = -1;
|
||
LPARAM b = -1;
|
||
GetParent()->SendMessage(WM_add_event_ok,a,b);
|
||
return 0;
|
||
}
|
||
|
||
bool TGridSanitary::OnModified(WDGridCell&cell, CString &text)
|
||
{
|
||
if (cell.GetCol().GetIndex() == 0)
|
||
{
|
||
double dVal = _tstof(text);
|
||
if (dVal <= 0.0 || !GlobalFunc::IsStrAllNum(text) || text.Find(_T('.')) > 0)
|
||
{
|
||
return false;
|
||
}
|
||
WPARAM a = cell.GetRow().GetIndex();
|
||
LPARAM b = _tstof(text);
|
||
|
||
GetParent()->SendMessage(WM_add_event_ok,a,b);// 向主窗口发送修改命令,a为修改的行号,b为修改之后的数字
|
||
}
|
||
return true;
|
||
}
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CSanitaryDangDlg dialog
|
||
|
||
|
||
CSanitaryDangDlg::CSanitaryDangDlg(CWnd* pParent /*=NULL*/)
|
||
: CDialog(CSanitaryDangDlg::IDD, pParent)
|
||
{
|
||
//{{AFX_DATA_INIT(CSanitaryDangDlg)
|
||
m_csNg = _T("");
|
||
m_nBigQ = 0.0;
|
||
m_nAllQ = 0.0;
|
||
//}}AFX_DATA_INIT
|
||
m_iMode = 0;
|
||
m_nRet = 0;
|
||
m_nRet2 = 0;
|
||
m_bMultSel = FALSE;
|
||
}
|
||
|
||
|
||
void CSanitaryDangDlg::DoDataExchange(CDataExchange* pDX)
|
||
{
|
||
CDialog::DoDataExchange(pDX);
|
||
//{{AFX_DATA_MAP(CSanitaryDangDlg)
|
||
//DDX_Control(pDX, IDC_LIST_SEL, m_listSel);
|
||
DDX_Control(pDX, IDC_LIST_DANG, m_listCtrl);
|
||
DDX_Text(pDX, IDC_EDIT_NG, m_csNg);
|
||
DDX_Text(pDX, IDC_EDIT_Q, m_nBigQ);
|
||
DDX_Text(pDX, IDC_EDIT_ALLQ, m_nAllQ);
|
||
//}}AFX_DATA_MAP
|
||
}
|
||
|
||
|
||
BEGIN_MESSAGE_MAP(CSanitaryDangDlg, CDialog)
|
||
//{{AFX_MSG_MAP(CSanitaryDangDlg)
|
||
ON_NOTIFY(NM_DBLCLK, IDC_LIST_DANG, OnDblclkListDang)
|
||
ON_BN_CLICKED(IDC_BUTTON_CLEANUP, OnButtonCleanup)
|
||
ON_REGISTERED_MESSAGE(WM_add_event_ok,Onadd_event_ok)
|
||
ON_COMMAND(ID_DELETE, Delete)
|
||
//}}AFX_MSG_MAP
|
||
END_MESSAGE_MAP()
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CSanitaryDangDlg message handlers
|
||
|
||
BOOL CSanitaryDangDlg::OnInitDialog()
|
||
{
|
||
CDialog::OnInitDialog();
|
||
m_listCtrl.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
|
||
// m_listSel.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
|
||
// m_listSel.InsertColumn ( 0, _T("数量"), LVCFMT_LEFT, 40 );
|
||
// m_listSel.InsertColumn ( 1, _T("名称"), LVCFMT_LEFT, 110 );
|
||
m_listSel.Clear();
|
||
m_listSel.Create(this, IDC_LIST_SEL);
|
||
m_listSel.SetNoAppendButton(TRUE);
|
||
m_listSel.SetNoDefaultMenu(true);
|
||
|
||
|
||
if(!m_bMultSel){
|
||
CRect rect;
|
||
this->GetWindowRect(&rect);
|
||
rect.right -= 168;
|
||
this->MoveWindow(&rect);
|
||
}
|
||
if(m_iMode == 0){
|
||
|
||
m_listCtrl.InsertColumn ( 0, _T("给水配件名称"), LVCFMT_LEFT, 165 );
|
||
m_listCtrl.InsertColumn ( 1, _T("额定流量(L/s)"), LVCFMT_LEFT, 90 );
|
||
m_listCtrl.InsertColumn ( 2, _T("当量"), LVCFMT_LEFT, 60 );
|
||
m_listCtrl.InsertColumn ( 3, _T("管径(mm)"), LVCFMT_LEFT, 60 );
|
||
m_listCtrl.InsertColumn ( 4, _T("工作压力(MPa)"), LVCFMT_LEFT, 90 );
|
||
|
||
m_listCtrl.InsertItem ( 0, _T("洗涤盆、拖布盆、盥洗槽(15mm)"), 0 );
|
||
m_listCtrl.SetItemText ( 0, 1, _T("0.15~0.2"));
|
||
m_listCtrl.SetItemText ( 0, 2, _T("0.75~1"));
|
||
m_listCtrl.SetItemText ( 0, 3, _T("15"));
|
||
m_listCtrl.SetItemText ( 0, 4, _T("0.05"));
|
||
|
||
m_listCtrl.InsertItem ( 1, _T("洗涤盆、拖布盆、盥洗槽(20mm)"), 0 );
|
||
m_listCtrl.SetItemText ( 1, 1, _T("0.3~0.4"));
|
||
m_listCtrl.SetItemText ( 1, 2, _T("1.5~2"));
|
||
m_listCtrl.SetItemText ( 1, 3, _T("20"));
|
||
m_listCtrl.SetItemText ( 1, 4, _T("0.05"));
|
||
|
||
m_listCtrl.InsertItem ( 2, _T("洗脸盆"), 0 );
|
||
m_listCtrl.SetItemText ( 2, 1, _T("0.15"));
|
||
m_listCtrl.SetItemText ( 2, 2, _T("0.75"));
|
||
m_listCtrl.SetItemText ( 2, 3, _T("15"));
|
||
m_listCtrl.SetItemText ( 2, 4, _T("0.05"));
|
||
|
||
m_listCtrl.InsertItem ( 3, _T("洗手盆"), 0 );
|
||
m_listCtrl.SetItemText ( 3, 1, _T("0.1"));
|
||
m_listCtrl.SetItemText ( 3, 2, _T("0.5"));
|
||
m_listCtrl.SetItemText ( 3, 3, _T("15"));
|
||
m_listCtrl.SetItemText ( 3, 4, _T("0.05"));
|
||
|
||
m_listCtrl.InsertItem ( 4, _T("浴盆"), 0 );
|
||
m_listCtrl.SetItemText ( 4, 1, _T("0.2"));
|
||
m_listCtrl.SetItemText ( 4, 2, _T("1"));
|
||
m_listCtrl.SetItemText ( 4, 3, _T("15"));
|
||
m_listCtrl.SetItemText ( 4, 4, _T("0.05"));
|
||
|
||
m_listCtrl.InsertItem ( 5, _T("淋浴器"), 0 );
|
||
m_listCtrl.SetItemText ( 5, 1, _T("0.15"));
|
||
m_listCtrl.SetItemText ( 5, 2, _T("0.75"));
|
||
m_listCtrl.SetItemText ( 5, 3, _T("15"));
|
||
m_listCtrl.SetItemText ( 5, 4, _T("0.05~0.1"));
|
||
|
||
m_listCtrl.InsertItem ( 6, _T("大便器(冲洗水箱浮球阀)"), 0 );
|
||
m_listCtrl.SetItemText ( 6, 1, _T("0.1"));
|
||
m_listCtrl.SetItemText ( 6, 2, _T("0.5"));
|
||
m_listCtrl.SetItemText ( 6, 3, _T("15"));
|
||
m_listCtrl.SetItemText ( 6, 4, _T("0.02"));
|
||
|
||
m_listCtrl.InsertItem ( 7, _T("大便器(延时自闭式冲洗阀)"), 0 );
|
||
m_listCtrl.SetItemText ( 7, 1, _T("1.2"));
|
||
m_listCtrl.SetItemText ( 7, 2, _T("6"));
|
||
m_listCtrl.SetItemText ( 7, 3, _T("25"));
|
||
m_listCtrl.SetItemText ( 7, 4, _T("0.1~0.15"));
|
||
|
||
m_listCtrl.InsertItem ( 8, _T("小便器"), 0 );
|
||
m_listCtrl.SetItemText ( 8, 1, _T("0.1"));
|
||
m_listCtrl.SetItemText ( 8, 2, _T("0.5"));
|
||
m_listCtrl.SetItemText ( 8, 3, _T("15"));
|
||
m_listCtrl.SetItemText ( 8, 4, _T("0.05"));
|
||
|
||
m_listCtrl.InsertItem ( 9, _T("小便槽穿孔冲洗管(每米)"), 0 );
|
||
m_listCtrl.SetItemText ( 9, 1, _T("0.05"));
|
||
m_listCtrl.SetItemText ( 9, 2, _T("0.25"));
|
||
m_listCtrl.SetItemText ( 9, 3, _T("15~20"));
|
||
m_listCtrl.SetItemText ( 9, 4, _T("0.015"));
|
||
|
||
m_listCtrl.InsertItem ( 10, _T("净身盆冲洗水嘴"), 0 );
|
||
m_listCtrl.SetItemText ( 10, 1, _T("0.1"));
|
||
m_listCtrl.SetItemText ( 10, 2, _T("0.5"));
|
||
m_listCtrl.SetItemText ( 10, 3, _T("15"));
|
||
m_listCtrl.SetItemText ( 10, 4, _T("0.05"));
|
||
|
||
m_listCtrl.InsertItem ( 11, _T("医院倒便器"), 0 );
|
||
m_listCtrl.SetItemText ( 11, 1, _T("0.2"));
|
||
m_listCtrl.SetItemText ( 11, 2, _T("1"));
|
||
m_listCtrl.SetItemText ( 11, 3, _T("15"));
|
||
m_listCtrl.SetItemText ( 11, 4, _T("0.05"));
|
||
|
||
m_listCtrl.InsertItem ( 12, _T("实验室化验水嘴(单联)"), 0 );
|
||
m_listCtrl.SetItemText ( 12, 1, _T("0.07"));
|
||
m_listCtrl.SetItemText ( 12, 2, _T("0.35"));
|
||
m_listCtrl.SetItemText ( 12, 3, _T("15"));
|
||
m_listCtrl.SetItemText ( 12, 4, _T("0.02"));
|
||
|
||
m_listCtrl.InsertItem ( 13, _T("实验室化验水嘴(双联)"), 0 );
|
||
m_listCtrl.SetItemText ( 13, 1, _T("0.15"));
|
||
m_listCtrl.SetItemText ( 13, 2, _T("0.75"));
|
||
m_listCtrl.SetItemText ( 13, 3, _T("15"));
|
||
m_listCtrl.SetItemText ( 13, 4, _T("0.02"));
|
||
|
||
m_listCtrl.InsertItem ( 14, _T("实验室化验水嘴(三联)"), 0 );
|
||
m_listCtrl.SetItemText ( 14, 1, _T("0.2"));
|
||
m_listCtrl.SetItemText ( 14, 2, _T("1"));
|
||
m_listCtrl.SetItemText ( 14, 3, _T("15"));
|
||
m_listCtrl.SetItemText ( 14, 4, _T("0.02"));
|
||
|
||
m_listCtrl.InsertItem ( 15, _T("饮水器喷嘴"), 0 );
|
||
m_listCtrl.SetItemText ( 15, 1, _T("0.05"));
|
||
m_listCtrl.SetItemText ( 15, 2, _T("0.25"));
|
||
m_listCtrl.SetItemText ( 15, 3, _T("15"));
|
||
m_listCtrl.SetItemText ( 15, 4, _T("0.05"));
|
||
|
||
m_listCtrl.InsertItem ( 16, _T("洒水拴(20mm)"), 0 );
|
||
m_listCtrl.SetItemText ( 16, 1, _T("0.4"));
|
||
m_listCtrl.SetItemText ( 16, 2, _T("2"));
|
||
m_listCtrl.SetItemText ( 16, 3, _T("20"));
|
||
m_listCtrl.SetItemText ( 16, 4, _T("0.05~0.1"));
|
||
|
||
m_listCtrl.InsertItem ( 17, _T("洒水拴(25mm)"), 0 );
|
||
m_listCtrl.SetItemText ( 17, 1, _T("0.7"));
|
||
m_listCtrl.SetItemText ( 17, 2, _T("3.5"));
|
||
m_listCtrl.SetItemText ( 17, 3, _T("25"));
|
||
m_listCtrl.SetItemText ( 17, 4, _T("0.05~0.1"));
|
||
|
||
m_listCtrl.InsertItem ( 18, _T("室内地面冲洗水嘴"), 0 );
|
||
m_listCtrl.SetItemText ( 18, 1, _T("0.2"));
|
||
m_listCtrl.SetItemText ( 18, 2, _T("1"));
|
||
m_listCtrl.SetItemText ( 18, 3, _T("15"));
|
||
m_listCtrl.SetItemText ( 18, 4, _T("0.05"));
|
||
|
||
m_listCtrl.InsertItem ( 19, _T("家用洗衣机水嘴"), 0 );
|
||
m_listCtrl.SetItemText ( 19, 1, _T("0.2"));
|
||
m_listCtrl.SetItemText ( 19, 2, _T("1"));
|
||
m_listCtrl.SetItemText ( 19, 3, _T("15"));
|
||
m_listCtrl.SetItemText ( 19, 4, _T("0.05"));
|
||
|
||
}
|
||
else{
|
||
m_listCtrl.InsertColumn ( 0, _T("卫生洁具名称"), LVCFMT_LEFT, 175 );
|
||
m_listCtrl.InsertColumn ( 1, _T("排水流量(L/s)"), LVCFMT_LEFT, 90 );
|
||
m_listCtrl.InsertColumn ( 2, _T("当量"), LVCFMT_LEFT, 70 );
|
||
m_listCtrl.InsertColumn ( 3, _T("排水管管径(mm)"), LVCFMT_LEFT, 100 );
|
||
|
||
m_listCtrl.InsertItem ( 0, _T("洗涤盆、污水盆"), 0 );
|
||
m_listCtrl.SetItemText ( 0, 1, _T("0.33"));
|
||
m_listCtrl.SetItemText ( 0, 2, _T("1.00"));
|
||
m_listCtrl.SetItemText ( 0, 3, _T("50"));
|
||
|
||
m_listCtrl.InsertItem ( 1, _T("餐厅、厨房单格洗菜盆"), 0 );
|
||
m_listCtrl.SetItemText ( 1, 1, _T("0.67"));
|
||
m_listCtrl.SetItemText ( 1, 2, _T("2.00"));
|
||
m_listCtrl.SetItemText ( 1, 3, _T("50"));
|
||
|
||
m_listCtrl.InsertItem ( 2, _T("餐厅、厨房双格洗菜盆"), 0 );
|
||
m_listCtrl.SetItemText ( 2, 1, _T("1.00"));
|
||
m_listCtrl.SetItemText ( 2, 2, _T("3.00"));
|
||
m_listCtrl.SetItemText ( 2, 3, _T("50"));
|
||
|
||
m_listCtrl.InsertItem ( 3, _T("盥洗槽(每个水嘴)"), 0 );
|
||
m_listCtrl.SetItemText ( 3, 1, _T("0.33"));
|
||
m_listCtrl.SetItemText ( 3, 2, _T("1.00"));
|
||
m_listCtrl.SetItemText ( 3, 3, _T("50~75"));
|
||
|
||
m_listCtrl.InsertItem ( 4, _T("洗手盆"), 0 );
|
||
m_listCtrl.SetItemText ( 4, 1, _T("0.1"));
|
||
m_listCtrl.SetItemText ( 4, 2, _T("0.3"));
|
||
m_listCtrl.SetItemText ( 4, 3, _T("32~50"));
|
||
|
||
m_listCtrl.InsertItem ( 5, _T("洗脸盆"), 0 );
|
||
m_listCtrl.SetItemText ( 5, 1, _T("0.25"));
|
||
m_listCtrl.SetItemText ( 5, 2, _T("0.75"));
|
||
m_listCtrl.SetItemText ( 5, 3, _T("32~50"));
|
||
|
||
m_listCtrl.InsertItem ( 6, _T("浴盆"), 0 );
|
||
m_listCtrl.SetItemText ( 6, 1, _T("1.0"));
|
||
m_listCtrl.SetItemText ( 6, 2, _T("3.00"));
|
||
m_listCtrl.SetItemText ( 6, 3, _T("50"));
|
||
|
||
m_listCtrl.InsertItem ( 7, _T("淋浴器"), 0 );
|
||
m_listCtrl.SetItemText ( 7, 1, _T("0.15"));
|
||
m_listCtrl.SetItemText ( 7, 2, _T("0.45"));
|
||
m_listCtrl.SetItemText ( 7, 3, _T("50"));
|
||
|
||
// m_listCtrl.InsertItem ( 8, _T("大便器(水箱)"), 0 ); // cet 2010.6.28 del
|
||
m_listCtrl.InsertItem ( 8, _T("大便器(冲洗水箱)"), 0 ); // cet 2010.6.28 add
|
||
m_listCtrl.SetItemText ( 8, 1, _T("1.5"));
|
||
m_listCtrl.SetItemText ( 8, 2, _T("4.5"));
|
||
m_listCtrl.SetItemText ( 8, 3, _T("100"));
|
||
|
||
// cet 2010.6.28 del
|
||
// m_listCtrl.InsertItem ( 9, _T("大便器(冲落式)"), 0 );
|
||
// m_listCtrl.SetItemText ( 9, 1, _T("1.5"));
|
||
// m_listCtrl.SetItemText ( 9, 2, _T("4.5"));
|
||
// m_listCtrl.SetItemText ( 9, 3, _T("100"));
|
||
//
|
||
// m_listCtrl.InsertItem ( 10, _T("大便器(虹吸式)"), 0 );
|
||
// m_listCtrl.SetItemText ( 10, 1, _T("2.0"));
|
||
// m_listCtrl.SetItemText ( 10, 2, _T("6.0"));
|
||
// m_listCtrl.SetItemText ( 10, 3, _T("100"));
|
||
|
||
m_listCtrl.InsertItem ( 9, _T("大便器(自闭式冲洗阀)"), 0 );
|
||
// cet 2010.6.28 del
|
||
// m_listCtrl.SetItemText ( 11, 1, _T("1.5"));
|
||
// m_listCtrl.SetItemText ( 11, 2, _T("4.5"));
|
||
// cet 2010.6.28 add
|
||
m_listCtrl.SetItemText ( 9, 1, _T("1.2"));
|
||
m_listCtrl.SetItemText ( 9, 2, _T("3.6"));
|
||
|
||
m_listCtrl.SetItemText ( 9, 3, _T("100"));
|
||
|
||
m_listCtrl.InsertItem ( 10, _T("小便器"), 0 );
|
||
m_listCtrl.SetItemText ( 10, 1, _T("0.1"));
|
||
m_listCtrl.SetItemText ( 10, 2, _T("0.3"));
|
||
m_listCtrl.SetItemText ( 10, 3, _T("40~50"));
|
||
|
||
m_listCtrl.InsertItem ( 11, _T("医用倒便器"), 0 );
|
||
m_listCtrl.SetItemText ( 11, 1, _T("1.5"));
|
||
m_listCtrl.SetItemText ( 11, 2, _T("4.5"));
|
||
m_listCtrl.SetItemText ( 11, 3, _T("100"));
|
||
|
||
m_listCtrl.InsertItem ( 12, _T("大便槽(≤4个蹲位)"), 0 );
|
||
m_listCtrl.SetItemText ( 12, 1, _T("2.5"));
|
||
m_listCtrl.SetItemText ( 12, 2, _T("7.5"));
|
||
m_listCtrl.SetItemText ( 12, 3, _T("100"));
|
||
|
||
m_listCtrl.InsertItem ( 13, _T("大便槽(>4个蹲位)"), 0 );
|
||
m_listCtrl.SetItemText ( 13, 1, _T("3.0"));
|
||
m_listCtrl.SetItemText ( 13, 2, _T("9.0"));
|
||
m_listCtrl.SetItemText ( 13, 3, _T("150"));
|
||
|
||
m_listCtrl.InsertItem ( 14, _T("小便槽(每米长)"), 0 );
|
||
m_listCtrl.SetItemText ( 14, 1, _T("0.17"));
|
||
m_listCtrl.SetItemText ( 14, 2, _T("0.5"));
|
||
m_listCtrl.SetItemText ( 14, 3, _T("-"));
|
||
|
||
m_listCtrl.InsertItem ( 15, _T("化验盆(无塞)"), 0 );
|
||
m_listCtrl.SetItemText ( 15, 1, _T("0.2"));
|
||
m_listCtrl.SetItemText ( 15, 2, _T("0.6"));
|
||
m_listCtrl.SetItemText ( 15, 3, _T("40~50"));
|
||
|
||
m_listCtrl.InsertItem ( 16, _T("净身器"), 0 );
|
||
m_listCtrl.SetItemText ( 16, 1, _T("0.1"));
|
||
m_listCtrl.SetItemText ( 16, 2, _T("0.3"));
|
||
m_listCtrl.SetItemText ( 16, 3, _T("40~50"));
|
||
|
||
m_listCtrl.InsertItem ( 17, _T("饮水器"), 0 );
|
||
m_listCtrl.SetItemText ( 17, 1, _T("0.05"));
|
||
m_listCtrl.SetItemText ( 17, 2, _T("0.15"));
|
||
m_listCtrl.SetItemText ( 17, 3, _T("25~50"));
|
||
|
||
m_listCtrl.InsertItem ( 18, _T("家用洗衣机"), 0 );
|
||
m_listCtrl.SetItemText ( 18, 1, _T("0.5"));
|
||
m_listCtrl.SetItemText ( 18, 2, _T("1.5"));
|
||
m_listCtrl.SetItemText ( 18, 3, _T("50"));
|
||
|
||
|
||
}
|
||
return TRUE; // return TRUE unless you set the focus to a control
|
||
// EXCEPTION: OCX Property Pages should return FALSE
|
||
}
|
||
|
||
void CSanitaryDangDlg::OnOK()
|
||
{
|
||
UpdateData(TRUE);
|
||
if(!m_bMultSel){
|
||
POSITION pos = m_listCtrl.GetFirstSelectedItemPosition();
|
||
int nItem = m_listCtrl.GetNextSelectedItem(pos);
|
||
if(nItem > -1){
|
||
m_csRetName = m_listCtrl.GetItemText(nItem, 0);
|
||
CString csTmp = m_listCtrl.GetItemText(nItem, 2);
|
||
int idx = csTmp.Find(_T("~"), 0);
|
||
if(idx > -1)
|
||
csTmp = csTmp.Left(idx);
|
||
m_nRet = _tstof(csTmp);
|
||
csTmp = m_listCtrl.GetItemText(nItem, 1);
|
||
m_nRet2 = _tstof(csTmp);
|
||
}
|
||
}
|
||
CDialog::OnOK();
|
||
}
|
||
|
||
void CSanitaryDangDlg::OnDblclkListDang(NMHDR* pNMHDR, LRESULT* pResult)
|
||
{
|
||
if(m_bMultSel){
|
||
POSITION pos = m_listCtrl.GetFirstSelectedItemPosition();
|
||
int nItem = m_listCtrl.GetNextSelectedItem(pos);
|
||
if(nItem > -1){
|
||
CString csName = m_listCtrl.GetItemText(nItem, 0);
|
||
CString csQ = m_listCtrl.GetItemText(nItem, 1);
|
||
CString csTmp = m_listCtrl.GetItemText(nItem, 2);
|
||
int idx = csTmp.Find(_T("~"), 0);
|
||
if(idx > -1)
|
||
csTmp = csTmp.Left(idx);
|
||
m_nRet += _tstof(csTmp);
|
||
m_nAllQ += _tstof(csQ);
|
||
if(_tstof(csQ) > m_nBigQ)
|
||
m_nBigQ = _tstof(csQ);
|
||
m_csNg.Format(_T("%.2f"), m_nRet);
|
||
UpdateData(FALSE);
|
||
|
||
|
||
if(m_lstSel.Index(csName) < 0){
|
||
m_listSel.AppendRow();
|
||
int nLen = m_lstSel.Length();
|
||
m_listSel.GetCell(nLen, 0).SetText(_T("1"));
|
||
m_listSel.GetCell(nLen, 1).SetText(csName);
|
||
m_lstSel.Append(tstrnew(csName));
|
||
|
||
m_listSel.m_vecData.push_back(std::make_pair(_tstof(csTmp), _tstof(csQ)));
|
||
}
|
||
else{
|
||
for(int i=0;i<m_lstSel.Length();i++){
|
||
CString csFile = (LPCTSTR)m_listSel.GetCell(i, 1).GetText();
|
||
if(csFile == csName){
|
||
CString csNum = (LPCTSTR)m_listSel.GetCell(i, 0).GetText();
|
||
int iNum = _ttoi(csNum);
|
||
iNum++;
|
||
csNum.Format(_T("%d"),iNum);
|
||
//m_listSel.GetCell(i, 0).SetText(csNum);
|
||
m_listSel.DelRow(i);
|
||
m_listSel.InsertRow(i);
|
||
m_listSel.GetCell(i, 0).SetText(csNum);
|
||
m_listSel.GetCell(i, 1).SetText(csName);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
}
|
||
else{
|
||
OnOK();
|
||
}
|
||
*pResult = 0;
|
||
}
|
||
|
||
void CSanitaryDangDlg::OnButtonCleanup()
|
||
{
|
||
m_nRet = 0;
|
||
m_nBigQ = 0;
|
||
m_nAllQ = 0;
|
||
m_lstSel.Reset();
|
||
m_listSel.Clear();
|
||
m_listSel.m_vecData.clear();
|
||
m_csNg.Format(_T("%.1f"), m_nRet);
|
||
UpdateData(FALSE);
|
||
}
|
||
|
||
BOOL CSanitaryDangDlg::PreTranslateMessage(MSG* pMsg)
|
||
{
|
||
if (pMsg-> message == WM_RBUTTONDOWN)
|
||
{
|
||
CWnd * pWnd = GetFocus();
|
||
long nSel = m_listSel.GetCurRowIndex();
|
||
|
||
if (pWnd->GetSafeHwnd() == m_listSel.GetSafeHwnd() && nSel >= 0 && m_listSel.IsValidRow(nSel))
|
||
{
|
||
CMenu menu;
|
||
DWORD dwSelectionMade;
|
||
VERIFY(menu.LoadMenu(IDR_MENU_SANITARYDANG));
|
||
CMenu *pmenuPopup = menu.GetSubMenu(0);
|
||
ASSERT(pmenuPopup != NULL);
|
||
dwSelectionMade = pmenuPopup->TrackPopupMenu( (TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_NONOTIFY),pMsg-> pt.x, pMsg-> pt.y, this );
|
||
pmenuPopup-> DestroyMenu();
|
||
return TRUE;
|
||
}
|
||
}
|
||
|
||
return CDialog::PreTranslateMessage(pMsg);
|
||
}
|
||
|
||
void CSanitaryDangDlg::Delete()
|
||
{
|
||
long nSel = m_listSel.GetCurRowIndex();
|
||
m_lstSel.Remove(nSel);
|
||
m_nBigQ = 0;
|
||
std::vector<std::pair<double, double> >::iterator it = m_listSel.m_vecData.begin();
|
||
bool bFind = false;
|
||
for(int i=0; i < m_listSel.GetRowNum();i++)
|
||
{
|
||
double dDang = m_listSel.m_vecData[i].first;
|
||
double dQ = m_listSel.m_vecData[i].second;
|
||
if (i == nSel && !bFind)
|
||
{
|
||
bFind = true;
|
||
CString csNum = (LPCTSTR)m_listSel.GetCell(i, 0).GetText();
|
||
int iNum = _ttoi(csNum);
|
||
int n = 0 - iNum;
|
||
m_nRet += (n * dDang);
|
||
m_nAllQ += (n * dQ);
|
||
CString sAllQ;
|
||
sAllQ.Format(_T("%.2f"), m_nAllQ);
|
||
m_nAllQ = _tstof(sAllQ);
|
||
m_csNg.Format(_T("%.2f"), m_nRet);
|
||
it = m_listSel.m_vecData.erase(it);
|
||
m_listSel.DelRow(nSel);
|
||
i--;
|
||
}
|
||
else if (m_nBigQ < dQ)
|
||
{
|
||
m_nBigQ = dQ;
|
||
}
|
||
|
||
if (it != m_listSel.m_vecData.end())
|
||
{
|
||
it++;
|
||
}
|
||
}
|
||
UpdateData(FALSE);
|
||
}
|
||
|
||
LRESULT CSanitaryDangDlg::Onadd_event_ok(WPARAM wParam, LPARAM lParam)
|
||
{
|
||
if (wParam == -1 && lParam == -1)
|
||
{
|
||
Delete();
|
||
return 0;
|
||
}
|
||
m_nBigQ = 0;
|
||
for(int i=0; i < m_listSel.GetRowNum();i++)
|
||
{
|
||
double dDang = m_listSel.m_vecData[i].first;
|
||
double dQ = m_listSel.m_vecData[i].second;
|
||
if (i == wParam)
|
||
{
|
||
CString csNum = (LPCTSTR)m_listSel.GetCell(i, 0).GetText();
|
||
int iNum = _ttoi(csNum);
|
||
int n = lParam - iNum;
|
||
m_nRet += (n * dDang);
|
||
m_nAllQ += (n * dQ);
|
||
m_csNg.Format(_T("%.2f"), m_nRet);
|
||
}
|
||
|
||
if (m_nBigQ < dQ)
|
||
{
|
||
m_nBigQ = dQ;
|
||
}
|
||
}
|
||
UpdateData(FALSE);
|
||
return 0;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|