132 lines
2.7 KiB
C++
132 lines
2.7 KiB
C++
#include "stdafx.h"
|
|
#include "GXYCDlg.h"
|
|
#include "UITools.h"
|
|
|
|
IMPLEMENT_DYNAMIC(CGXYCDlg, CDialog)
|
|
|
|
CGXYCDlg::CGXYCDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CGXYCDlg::IDD, pParent)
|
|
, m_nRow(1)
|
|
, m_nCol(1)
|
|
, m_dHoleD(0)
|
|
, m_nWeldType(1)
|
|
{
|
|
m_dDn = 100;
|
|
m_dOD = 107;
|
|
m_dt = 3.5;
|
|
}
|
|
|
|
CGXYCDlg::~CGXYCDlg()
|
|
{
|
|
}
|
|
|
|
void CGXYCDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_EDIT1, m_nRow);
|
|
DDX_Text(pDX, IDC_EDIT3, m_nCol);
|
|
DDX_Text(pDX, IDC_EDIT4, m_dHoleD);
|
|
DDX_Control(pDX, IDC_LIST1, m_wndPipeList);
|
|
DDX_Radio(pDX, IDC_RADIOT1, m_nWeldType);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CGXYCDlg, CDialog)
|
|
ON_BN_CLICKED(IDOK, &CGXYCDlg::OnBnClickedOk)
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CGXYCDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
m_wndPipeList.SetExtendedStyle(LVS_EX_FULLROWSELECT);
|
|
m_wndPipeList.InsertColumn(0,_T("公称直径"),LVCFMT_LEFT,60);
|
|
m_wndPipeList.InsertColumn(1,_T("外径"),LVCFMT_LEFT,60);
|
|
m_wndPipeList.InsertColumn(2,_T("壁厚"),LVCFMT_LEFT,60);
|
|
m_wndPipeList.InsertColumn(3,_T("线比重"),LVCFMT_LEFT,100);
|
|
|
|
CString path = FilePath::GetSysDir() + Plumbing_DB;
|
|
if (!m_dbSQLite.InitADOServer(path))
|
|
{
|
|
AfxMessageBox(CString(_T("数据库初始化失败,请检查 sys")) + Plumbing_DB + _T("文件是否存在."));
|
|
return FALSE;
|
|
}
|
|
|
|
InitPipeList();
|
|
|
|
UpdateData(FALSE);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CGXYCDlg::InitPipeList()
|
|
{
|
|
CString sSQL,sText;
|
|
sSQL = _T("select [公称直径],[外径],[壁厚],[重量] from AecOD order by [公称直径]");
|
|
|
|
CUIIValueTable table;
|
|
m_dbSQLite.GetSelData(sSQL,table);
|
|
table.ShowToListCtrl(&m_wndPipeList);
|
|
|
|
if (m_wndPipeList.GetItemCount() > 0)
|
|
{
|
|
CString sDN;
|
|
int nSel = 0;
|
|
for(int i = 0;i < m_wndPipeList.GetItemCount();i++)
|
|
{
|
|
sDN = m_wndPipeList.GetItemText(i,0);
|
|
|
|
if (_ttof(sDN) - m_dHoleD > -1.e-1)
|
|
{
|
|
nSel = i - 1;
|
|
break;
|
|
}
|
|
}
|
|
m_wndPipeList.SetItemState(nSel,LVIS_SELECTED,LVIS_SELECTED);
|
|
m_wndPipeList.EnsureVisible(nSel,TRUE);
|
|
}
|
|
}
|
|
|
|
void CGXYCDlg::OnBnClickedOk()
|
|
{
|
|
UpdateData();
|
|
|
|
int nItem = -1;
|
|
POSITION ps = m_wndPipeList.GetFirstSelectedItemPosition();
|
|
if (ps != NULL)
|
|
{
|
|
nItem = m_wndPipeList.GetNextSelectedItem(ps);
|
|
if (nItem != -1)
|
|
{
|
|
m_dDn = _ttof( m_wndPipeList.GetItemText(nItem,0) );
|
|
m_dOD = _ttof(m_wndPipeList.GetItemText(nItem,1));
|
|
m_dt = _ttof(m_wndPipeList.GetItemText(nItem,2));
|
|
}
|
|
}
|
|
|
|
if (m_dOD - m_dHoleD > 1.e-2)
|
|
{
|
|
AfxMessageBox(_T("选择的管外径大于开孔直径!引出不合理!"));
|
|
return;
|
|
}
|
|
|
|
if (nItem == -1)
|
|
{
|
|
AfxMessageBox(_T("请选择管道规格!"));
|
|
return;
|
|
}
|
|
|
|
if (m_nRow < 1 || m_nCol < 1)
|
|
{
|
|
AfxMessageBox(_T("请输入正确的第几行和第几列,序号必须大于0!"));
|
|
return;
|
|
}
|
|
OnOK();
|
|
}
|
|
|
|
void CGXYCDlg::GetPipeData(double& dOD,double& dDn,double& dt,int& nWeldType)
|
|
{
|
|
dOD = m_dOD;
|
|
dDn = m_dDn;
|
|
dt = m_dt;
|
|
nWeldType = m_nWeldType;
|
|
} |