170 lines
3.6 KiB
C++
170 lines
3.6 KiB
C++
|
|
#include "stdafx.h"
|
|
#include "CPXSTDlg.h"
|
|
|
|
IMPLEMENT_DYNAMIC(CPXSTDlg, CDialog)
|
|
|
|
CPXSTDlg::CPXSTDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(IDD_PXST_DLG, pParent)
|
|
, m_dDN(0)
|
|
, m_dThick(0)
|
|
, m_dL1(0)
|
|
, m_dL2(0)
|
|
, m_dL3(0)
|
|
, m_dTOD(0)
|
|
, m_dTThick(0)
|
|
, m_bOff(TRUE)
|
|
{
|
|
m_pDb = NULL;
|
|
m_pParam = NULL;
|
|
}
|
|
|
|
CPXSTDlg::~CPXSTDlg()
|
|
{
|
|
}
|
|
|
|
void CPXSTDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_EDIT1, m_dDN);
|
|
DDX_Text(pDX, IDC_EDIT2, m_dThick);
|
|
DDX_Text(pDX, IDC_EDIT3, m_dL1);
|
|
DDX_Text(pDX, IDC_EDIT4, m_dL2);
|
|
DDX_Text(pDX, IDC_EDIT5, m_dL3);
|
|
DDX_Control(pDX, IDC_LIST1, m_wndList);
|
|
DDX_Control(pDX, IDC_EDIT4, m_wndEditL2);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CPXSTDlg, CDialog)
|
|
ON_BN_CLICKED(IDOK, &CPXSTDlg::OnBnClickedOk)
|
|
ON_EN_CHANGE(IDC_EDIT3, &CPXSTDlg::OnEditChang1)
|
|
END_MESSAGE_MAP()
|
|
|
|
void CPXSTDlg::SetAdoDb(CUIISQLiteServer *pDb)
|
|
{
|
|
m_pDb = pDb;
|
|
}
|
|
|
|
void CPXSTDlg::SetPipeParam(WPipe::PipeParam *pParam)
|
|
{
|
|
m_pParam = pParam;
|
|
m_dDN = pParam->m_dDN;
|
|
m_dTDN = m_dDN;
|
|
}
|
|
|
|
BOOL CPXSTDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
m_wndList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_SINGLEROW);
|
|
m_wndList.InsertColumn(0,_T("公称直径"), LVCFMT_CENTER, 120);
|
|
m_wndList.InsertColumn(1,_T("外径"), LVCFMT_CENTER, 120);
|
|
m_wndList.InsertColumn(2,_T("壁厚"), LVCFMT_CENTER, 120);
|
|
|
|
m_dDN = m_pParam->m_dDN;
|
|
m_dThick = m_pParam->m_dThick;
|
|
m_dTThick = m_dThick;
|
|
QueryDefaultL();
|
|
|
|
m_wndEditL2.SetReadOnly(!m_bOff);
|
|
|
|
UpdateData(FALSE);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CPXSTDlg::OnEditChang1()
|
|
{
|
|
UpdateData();
|
|
m_dL2 = m_dL1;
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CPXSTDlg::QueryDefaultL()
|
|
{
|
|
CString sSQL;
|
|
sSQL.Format(_T("select [长度L],[长度S],[公称直径S] from AecTeeData where [公称直径L]=%d order by [公称直径S] desc"),(int)(m_dDN+0.5));
|
|
|
|
CUIIValueTable tbl;
|
|
m_pDb->GetSelData(sSQL, tbl);
|
|
|
|
if (tbl.GetTableLogicSize() > 0)
|
|
{
|
|
CStringArray arVal;
|
|
tbl.GetValueRecord(0, arVal);
|
|
|
|
if (arVal.GetSize() >= 2)
|
|
{
|
|
m_dL1 = _ttof(arVal.GetAt(0));
|
|
m_dL2 = _ttof(arVal.GetAt(0));
|
|
m_dL3 = _ttof(arVal.GetAt(1));
|
|
}
|
|
|
|
int nItem = 0;
|
|
CString sDN,sThk,sOD;
|
|
sThk.Format(_T("%.1f"),m_dThick);
|
|
|
|
sSQL = _T("select [公称直径],[外径] from [AecOD] where [外径系列]='A'");
|
|
CMapStringToString mapDn2OD;
|
|
m_pDb->GetSelData(sSQL, mapDn2OD);
|
|
|
|
//sSQL.Format(_T("select [公称直径],[壁厚] from [AecOD] where [壁厚]<=%.1f and [外径系列]='A'"),m_dThick);
|
|
//CMapStringToString mapDn2Thk;
|
|
//m_pDb->GetSelData(sSQL, mapDn2Thk);
|
|
sThk.Format(_T("%.1f"), m_dThick);
|
|
|
|
for (int i = 0; i < tbl.GetTableLogicSize();i++)
|
|
{
|
|
arVal.RemoveAll();
|
|
tbl.GetValueRecord(i, arVal);
|
|
|
|
//[长度L],[长度S],[公称直径S] from AecTeeData
|
|
if (arVal.GetSize() == 3)
|
|
{
|
|
sDN = arVal.GetAt(2);
|
|
|
|
sOD = _T("");
|
|
if (mapDn2OD.Lookup(sDN, sOD))
|
|
{
|
|
nItem = m_wndList.InsertItem(m_wndList.GetItemCount(), sDN);
|
|
m_wndList.SetItemText(nItem, 1, sOD);
|
|
m_wndList.SetItemText(nItem, 2, sThk);
|
|
}
|
|
}
|
|
}
|
|
m_wndList.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED);
|
|
}
|
|
}
|
|
|
|
void CPXSTDlg::OnBnClickedOk()
|
|
{
|
|
UpdateData();
|
|
|
|
if (m_dL1 < 1.e-1 || m_dL2 < 1.e-1 || m_dL3 < 1.e-1)
|
|
{
|
|
AfxMessageBox(_T("请检查L1,L2,L3尺寸是否过小!"));
|
|
return;
|
|
}
|
|
|
|
POSITION ps = m_wndList.GetFirstSelectedItemPosition();
|
|
if (ps != NULL)
|
|
{
|
|
int nItem = m_wndList.GetNextSelectedItem(ps);
|
|
if (nItem != -1)
|
|
{
|
|
m_dTDN = _ttof(m_wndList.GetItemText(nItem, 0));
|
|
m_dTOD = _ttof(m_wndList.GetItemText(nItem, 1));
|
|
m_dTThick = _ttof(m_wndList.GetItemText(nItem, 2));
|
|
}
|
|
}
|
|
|
|
if ( (m_dL1+ m_dL2) < m_dTOD ||m_dL3 < 0.6 * m_dDN)
|
|
{
|
|
AfxMessageBox(_T("请检查L1,L2,L3尺寸是否过小!"));
|
|
return;
|
|
}
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|