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

132 lines
2.8 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;
}