223 lines
5.0 KiB
C++
223 lines
5.0 KiB
C++
#include "stdafx.h"
|
|
#include "EditWaterBucketDlg.h"
|
|
#include "SelectBlkDlg.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
//#ifdef _WIN64
|
|
#include"TGAs.h"
|
|
//#endif
|
|
|
|
CEditWaterBucketDlg::CEditWaterBucketDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CEditWaterBucketDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CEditWaterBucketDlg)
|
|
m_strWndCmbPipeDia = _T("");
|
|
m_dWndEdtDeep = 0.0;
|
|
m_dWndEdtEle = 0.0;
|
|
m_dWndEdtSize = 0.0;
|
|
m_dWndEdtQ = 0.0;
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
|
|
void CEditWaterBucketDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CEditWaterBucketDlg)
|
|
DDX_CBString(pDX, IDC_COMBO_PIPEDIA, m_strWndCmbPipeDia);
|
|
DDX_Text(pDX, IDC_EDIT_DEEP, m_dWndEdtDeep);
|
|
DDX_Text(pDX, IDC_EDIT_ELE, m_dWndEdtEle);
|
|
DDX_Text(pDX, IDC_EDIT_SIZE, m_dWndEdtSize);
|
|
DDX_Text(pDX, IDC_EDIT_Q, m_dWndEdtQ);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CEditWaterBucketDlg, CDialog)
|
|
//{{AFX_MSG_MAP(CEditWaterBucketDlg)
|
|
ON_BN_CLICKED(IDC_STATIC_PICTURE, OnStaticPicture)
|
|
ON_CBN_SELCHANGE(IDC_COMBO_PIPEDIA, OnSelchangeComboPipedia)
|
|
ON_WM_PAINT()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
void CEditWaterBucketDlg::OnStaticPicture()
|
|
{
|
|
CString csSldName;
|
|
CString csTK, csRecord;
|
|
SplitBlkStr(m_csBlkName, csTK, csRecord);
|
|
csSldName.Format(_T("TWTSYS(%s)"), csRecord);
|
|
|
|
CTemporaryResourceOverride vTemp;
|
|
CSelectBlkDlg dlg;
|
|
dlg.m_csTkName = _T("TWTSYS");
|
|
dlg.m_csType = _T("虹吸雨水斗");
|
|
CWnd *pWnd = GetDlgItem(IDC_STATIC_PICTURE);
|
|
CRect rect;
|
|
dlg.m_staticSlide.m_csCurRecord = csSldName;
|
|
pWnd->GetWindowRect(&rect);
|
|
dlg.m_ptBase = rect.TopLeft();
|
|
if(dlg.DoModal() == IDOK)
|
|
{
|
|
CString csRet = dlg.m_staticSlide.m_csCurRecord;
|
|
XString xsTKName, xsRocord, xsTmp;
|
|
SplitSlbName(csRet, xsTKName, xsRocord);
|
|
AcDbDatabase *dwg=acdbCurDwg();
|
|
AcAxDocLock docLock(dwg);
|
|
VERIFY(docLock.lockStatus() == Acad::eOk);
|
|
|
|
if(LoadDwbBlock((const TCHAR*)xsTKName, (const TCHAR*)xsRocord, xsTmp) != RTNORM)
|
|
return;
|
|
m_csBlkName = (const TCHAR*)xsTmp;
|
|
OpenSlide();
|
|
}
|
|
}
|
|
|
|
void CEditWaterBucketDlg::OpenSlide()
|
|
{
|
|
UpdateData(TRUE);
|
|
CWnd *pImageBox1 = GetDlgItem(IDC_STATIC_PICTURE);
|
|
CString csSldName;
|
|
CString csTK, csRecord;
|
|
SplitBlkStr(m_csBlkName, csTK, csRecord);
|
|
csSldName.Format(_T("TWTSYS(%s)"), csRecord);
|
|
DrawSlide((const TCHAR*)csSldName, pImageBox1);
|
|
}
|
|
|
|
|
|
BOOL CEditWaterBucketDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
InitCmb();
|
|
OnSelchangeComboPipedia();
|
|
return TRUE;
|
|
}
|
|
|
|
void CEditWaterBucketDlg::InitCmb()
|
|
{
|
|
XString fullFile;
|
|
if(!FindFile(_T("datastore.dbf"), fullFile))
|
|
{
|
|
MessageBox(_T("对不起,没有发现datastore.dbf文件!"));
|
|
return;
|
|
}
|
|
|
|
CodeBase db;
|
|
db.read_only = 1;
|
|
XDbfTable *pTable = db.Open(fullFile);
|
|
if(!pTable)
|
|
return;
|
|
|
|
CString strDia, strFlux, strDeep,strNum;
|
|
std::set<double> setDia;
|
|
for(pTable->MoveFirst(); !pTable->IsEOF(); pTable->MoveNext())
|
|
{
|
|
GET_FIELD(pTable, _T("Typenumber"), strNum);
|
|
if (strNum.Compare(_T("45")) != 0)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
GET_FIELD(pTable, _T("Typename"), strDia);
|
|
GET_FIELD(pTable, _T("Typevalue"), strFlux);
|
|
GET_FIELD(pTable, _T("Remark"), strDeep);
|
|
|
|
WaterBucketInfo info = {_tstof(strDia), _tstof(strFlux), _tstof(strDeep)};
|
|
m_vecData.push_back(info);
|
|
setDia.insert(_tstof(strDia));
|
|
}
|
|
|
|
pTable->Close();
|
|
|
|
CComboBox *pWnd = (CComboBox*)GetDlgItem(IDC_COMBO_PIPEDIA);
|
|
if (pWnd != NULL)
|
|
{
|
|
pWnd->Clear();
|
|
|
|
int i = 0;
|
|
std::set<double>::iterator it;
|
|
for(it = setDia.begin(); it != setDia.end(); it++)
|
|
{
|
|
CString strTemp;
|
|
strTemp.Format(_T("%.0f"), *it);
|
|
strTemp = _T("DN") + strTemp;
|
|
pWnd->InsertString(i, strTemp);
|
|
++i;
|
|
}
|
|
}
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CEditWaterBucketDlg::SetBlkName(const CString& strBlkName)
|
|
{
|
|
m_csBlkName = strBlkName;
|
|
}
|
|
|
|
CString CEditWaterBucketDlg::GetBlkName()
|
|
{
|
|
return m_csBlkName;
|
|
}
|
|
|
|
void CEditWaterBucketDlg::SetPipeDia(double dDia)
|
|
{
|
|
CString str;
|
|
str.Format(_T("%.0f"), dDia);
|
|
m_strWndCmbPipeDia = _T("DN") + str;
|
|
}
|
|
|
|
double CEditWaterBucketDlg::GetPipeDia()
|
|
{
|
|
m_strWndCmbPipeDia.TrimLeft(_T("DN"));
|
|
return _tstof(m_strWndCmbPipeDia);
|
|
}
|
|
|
|
void CEditWaterBucketDlg::SetSize(double dSize)
|
|
{
|
|
m_dWndEdtSize = dSize;
|
|
}
|
|
|
|
double CEditWaterBucketDlg::GetSize()
|
|
{
|
|
return m_dWndEdtSize;
|
|
}
|
|
|
|
void CEditWaterBucketDlg::SetEle(double dEle)
|
|
{
|
|
m_dWndEdtEle = dEle;
|
|
}
|
|
|
|
double CEditWaterBucketDlg::GetEle()
|
|
{
|
|
return m_dWndEdtEle;
|
|
}
|
|
|
|
void CEditWaterBucketDlg::OnSelchangeComboPipedia()
|
|
{
|
|
UpdateData(TRUE);
|
|
m_strWndCmbPipeDia.TrimLeft(_T("DN"));
|
|
double dDia = _tstof(m_strWndCmbPipeDia);
|
|
std::vector<WATERBUCKETINFO>::iterator it;
|
|
for(it = m_vecData.begin(); it != m_vecData.end(); it++)
|
|
{
|
|
if (fabs((*it).dPipeDia - dDia) < 1e-3)
|
|
{
|
|
m_dWndEdtQ = (*it).dFlux;
|
|
m_dWndEdtDeep = (*it).dDeep;
|
|
break;
|
|
}
|
|
}
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CEditWaterBucketDlg::OnPaint()
|
|
{
|
|
CPaintDC dc(this); // device context for painting
|
|
OpenSlide();
|
|
}
|