#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; }