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

587 lines
19 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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;
}