712 lines
19 KiB
C++
712 lines
19 KiB
C++
#include "stdafx.h"
|
|
#include "ReducerDlg.h"
|
|
#include "DZDXDlg.h"
|
|
#include "CoreTools.h"
|
|
#include "GZCLDlg.h"
|
|
|
|
#ifndef _BYGB_
|
|
#define _BYGB_ _T("按执行标准")
|
|
#endif
|
|
|
|
extern double g_minRadio;
|
|
|
|
IMPLEMENT_DYNAMIC(CReducerDlg, CDialog)
|
|
|
|
CReducerDlg::CReducerDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CReducerDlg::IDD, pParent)
|
|
{
|
|
m_pDb = NULL;
|
|
m_pPipeParam = NULL;
|
|
|
|
m_ePos = WPipe::eCen; //类型
|
|
m_vtECCen.set(0,0,0);
|
|
m_vtEnter.set(0,0,0);
|
|
m_pPipeParam = NULL;
|
|
m_bOnlyStandardRec = FALSE;
|
|
m_nPos = 0;
|
|
}
|
|
|
|
CReducerDlg::~CReducerDlg()
|
|
{
|
|
}
|
|
|
|
void CReducerDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Control(pDX, IDC_LISTREDUCER, m_wndListCtrl);
|
|
DDX_Control(pDX, IDC_LISTODTHK, m_wndListODThk);
|
|
DDX_Control(pDX, IDC_LISTELBOWRAD, m_wndElbowradList);
|
|
DDX_Radio(pDX,IDC_RADIOC,m_nPos);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CReducerDlg, CDialog)
|
|
ON_BN_CLICKED(IDOK, &CReducerDlg::OnBnClickedOk)
|
|
ON_BN_CLICKED(IDC_RADIOC, &CReducerDlg::OnBnClickedRadioc)
|
|
ON_BN_CLICKED(IDC_RADIOU, &CReducerDlg::OnBnClickedRadiou)
|
|
ON_BN_CLICKED(IDC_RADIOD, &CReducerDlg::OnBnClickedRadiod)
|
|
ON_BN_CLICKED(IDC_BUTTON2, &CReducerDlg::OnBnClckedButton2)
|
|
ON_BN_CLICKED(IDC_BUTTON1, &CReducerDlg::OnDZSize)
|
|
ON_BN_CLICKED(IDC_BTADDPIPE, &CReducerDlg::OnAddPipe)
|
|
ON_NOTIFY(LVN_ITEMCHANGED, IDC_LISTREDUCER, &CReducerDlg::OnLvnItemchangedListreducer)
|
|
END_MESSAGE_MAP()
|
|
|
|
void CReducerDlg::Set(CUIISQLiteServer* pDb,WPipe::PipeParam* pParam,AcGeVector3d& vtDirCur,BOOL bOnlyStandardRec)
|
|
{
|
|
m_pDb = pDb;
|
|
m_vtEnter = vtDirCur;
|
|
m_pPipeParam = pParam;
|
|
m_bOnlyStandardRec = bOnlyStandardRec;
|
|
}
|
|
|
|
BOOL CReducerDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
m_wndListCtrl.InsertColumn(0,_T("主管公称直径"),LVCFMT_LEFT,100);
|
|
m_wndListCtrl.InsertColumn(1,_T("变径端公称直径"),LVCFMT_LEFT,100);
|
|
m_wndListCtrl.InsertColumn(2,_T("长度"),LVCFMT_LEFT,60);
|
|
|
|
m_wndListCtrl.InsertColumn(3, _T("主管接口直径"), LVCFMT_LEFT, 60);
|
|
m_wndListCtrl.InsertColumn(4, _T("主管接口长"), LVCFMT_LEFT, 60);
|
|
|
|
m_wndListCtrl.InsertColumn(5, _T("变径端接口直径"), LVCFMT_LEFT, 60);
|
|
m_wndListCtrl.InsertColumn(6, _T("变径端接口长"), LVCFMT_LEFT, 60);
|
|
|
|
m_wndListCtrl.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
|
|
|
|
m_wndListODThk.InsertColumn(0,_T("外径"),LVCFMT_LEFT,80);
|
|
m_wndListODThk.InsertColumn(1,_T("壁厚"),LVCFMT_LEFT,60);
|
|
m_wndListODThk.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
|
|
|
|
m_bitMapC.LoadBitmap(IDB_BITMAPREDC);
|
|
m_bitMapU.LoadBitmap(IDB_BITMAPREDU);
|
|
m_bitMapD.LoadBitmap(IDB_BITMAPREDD);
|
|
m_bitMapF.LoadBitmap(IDB_BITMAPREDF);
|
|
m_bitMapB.LoadBitmap(IDB_BITMAPREDB);
|
|
|
|
CButton* pButton = (CButton*)GetDlgItem(IDC_RADIOC);
|
|
if (pButton != NULL)
|
|
{
|
|
pButton->SetBitmap((HBITMAP)m_bitMapC);
|
|
}
|
|
|
|
pButton = (CButton*)GetDlgItem(IDC_RADIOU);
|
|
if (pButton != NULL)
|
|
{
|
|
pButton->SetBitmap((HBITMAP)m_bitMapU);
|
|
}
|
|
|
|
pButton = (CButton*)GetDlgItem(IDC_RADIOD);
|
|
if (pButton != NULL)
|
|
{
|
|
pButton->SetBitmap((HBITMAP)m_bitMapD);
|
|
}
|
|
|
|
pButton = (CButton*)GetDlgItem(IDC_RADIODF);
|
|
if (pButton != NULL)
|
|
{
|
|
pButton->SetBitmap((HBITMAP)m_bitMapF);
|
|
}
|
|
|
|
pButton = (CButton*)GetDlgItem(IDC_RADIODB);
|
|
if (pButton != NULL)
|
|
{
|
|
pButton->SetBitmap((HBITMAP)m_bitMapB);
|
|
}
|
|
|
|
CheckRadioButton(IDC_RADIOC,IDC_RADIODB,IDC_RADIOC);
|
|
|
|
InitReducer();
|
|
|
|
//EnableOffsetRadio();
|
|
|
|
if ( m_bOnlyStandardRec )
|
|
{
|
|
GetDlgItem(IDC_RADIOD)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_RADIOU)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_RADIODF)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_RADIODB)->EnableWindow(FALSE);
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
//UPVC CPVC PVC-C PP-H (PE) HDPE
|
|
bool CReducerDlg::IsPlasticsMat(WPipe::PipeParam* pParam, CString& sODNo)
|
|
{
|
|
sODNo = pParam->szODSn;
|
|
|
|
const CString sPlastic = _T("UPVC CPVC PVC-C PP-H (PE) PE100 HDPE");
|
|
|
|
CStringArray arTxts;
|
|
CoreTools::SplitStrintToArray(sPlastic, arTxts, _T(' '));
|
|
|
|
CString sMat = pParam->szMertial;
|
|
CString sMatFit = pParam->szMertialFit;
|
|
CString sTxt;
|
|
sMat.MakeUpper();
|
|
sMatFit.MakeUpper();
|
|
|
|
for (int i = 0; i < arTxts.GetSize(); i++)
|
|
{
|
|
sTxt = arTxts.GetAt(i);
|
|
|
|
if (sMat.Find(sTxt) != -1 ||
|
|
sMatFit.Find(sTxt) != -1)
|
|
{
|
|
sODNo = sTxt;
|
|
|
|
//以下 PVC-C PP-H PE100 的国标数据 替代 PVC
|
|
if (sODNo.CompareNoCase(_T("PVC-C")) == 0)
|
|
sODNo = _T("CPVC");
|
|
|
|
if (sODNo.CompareNoCase(_T("(PE)")) == 0)
|
|
sODNo = _T("PE");
|
|
|
|
if (sODNo.CompareNoCase(_T("PE100")) == 0)
|
|
sODNo = _T("PE");
|
|
|
|
if (sODNo.CompareNoCase(_T("(PE100)")) == 0)
|
|
sODNo = _T("PE");
|
|
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
void CReducerDlg::InitReducer()
|
|
{
|
|
if (m_pDb == NULL) return;
|
|
|
|
CString sSQL;
|
|
CStringArray arVals;
|
|
|
|
CString sDNo = m_pPipeParam->szODSn;
|
|
bool bIsP = IsPlasticsMat(m_pPipeParam, sDNo);
|
|
|
|
CString sTbl;
|
|
if (m_pPipeParam->m_nConnectType == 0)//焊接
|
|
{
|
|
if (bIsP)
|
|
sTbl = _T("AecReduceSData");
|
|
else
|
|
sTbl = _T("AecReduceData");
|
|
|
|
sSQL.Format(_T("select [公称直径L],[公称直径S],[长度] from %s where [外径系列]='%s' and [公称直径L]=%d and [长度] > 0 order by [公称直径S]"),
|
|
sTbl, sDNo, (int)(m_pPipeParam->m_dDN+0.5));
|
|
}
|
|
else if (m_pPipeParam->m_nConnectType == 1)//承插
|
|
{
|
|
sTbl = _T("AecReduceSData");
|
|
|
|
sSQL.Format(_T("select [公称直径L],[公称直径S],[长度],[接口直径L],[承插长度L],[接口直径S],[承插长度S] from %s where [外径系列]='%s' and [公称直径L]=%d and [长度] > 0 order by [公称直径S]"),
|
|
sTbl, sDNo, (int)(m_pPipeParam->m_dDN+0.5));
|
|
|
|
}
|
|
else if (m_pPipeParam->m_nConnectType == 2)//螺纹
|
|
{
|
|
sTbl = _T("AecReduceTData");
|
|
|
|
sSQL.Format(_T("select [公称直径L],[公称直径S],[长度],[接口直径L],[螺纹长度L],[接口直径S],[螺纹长度S] from %s where [外径系列]='%s' and [公称直径L]=%d and [长度] > 0 and order by [公称直径S]"),
|
|
sTbl, sDNo, (int)(m_pPipeParam->m_dDN+0.5));
|
|
}
|
|
else
|
|
{
|
|
if (!bIsP)
|
|
sTbl = _T("AecReduceData");// 其他默认
|
|
}
|
|
|
|
|
|
CUIIValueTable valTable;
|
|
m_pDb->GetSelData(sSQL, valTable);
|
|
|
|
CString sDN1, sDN2, sL, sKey;
|
|
CStringList lstDn2s;
|
|
int nSize = valTable.GetTableLogicSize();
|
|
for (int i = 0; i < nSize; i++)
|
|
{
|
|
arVals.RemoveAll();
|
|
valTable.GetValueRecord(i, arVals);
|
|
|
|
if (arVals.GetSize() >= 3)
|
|
{
|
|
sDN1 = arVals.GetAt(0);
|
|
sDN2 = arVals.GetAt(1);
|
|
sL = arVals.GetAt(2);
|
|
|
|
sKey.Format(_T("%d-%d-%s"), __max(_ttoi(sDN1), _ttoi(sDN2)), __min(_ttoi(sDN1), _ttoi(sDN2)), sL);
|
|
if (lstDn2s.Find(sKey) == NULL)
|
|
{
|
|
int nItem = m_wndListCtrl.GetItemCount();
|
|
m_wndListCtrl.InsertItem(nItem, sDN1);
|
|
m_wndListCtrl.SetItemText(nItem, 1, sDN2);
|
|
m_wndListCtrl.SetItemText(nItem, 2, sL);
|
|
|
|
if (arVals.GetSize() >= 7)
|
|
{
|
|
for (int n = 3;n < arVals.GetSize();n++)
|
|
{
|
|
m_wndListCtrl.SetItemText(nItem, n, arVals.GetAt(n));
|
|
}
|
|
}
|
|
|
|
lstDn2s.AddTail(sKey);
|
|
}
|
|
}
|
|
}
|
|
valTable.RemoveAll();
|
|
|
|
|
|
sSQL.Format(_T("select [公称直径S],[公称直径L],[长度] from %s")
|
|
_T(" where [外径系列]='%s' and [公称直径S]=%d and [长度] > 0 order by [公称直径L]"), sTbl, sDNo, (int)m_pPipeParam->m_dDN);
|
|
m_pDb->GetSelData(sSQL, valTable);
|
|
|
|
nSize = valTable.GetTableLogicSize();
|
|
for (i = 0; i < nSize; i++)
|
|
{
|
|
arVals.RemoveAll();
|
|
valTable.GetValueRecord(i, arVals);
|
|
|
|
if (arVals.GetSize() >= 3)
|
|
{
|
|
sDN1 = arVals.GetAt(0);
|
|
sDN2 = arVals.GetAt(1);
|
|
sL = arVals.GetAt(2);
|
|
|
|
sKey.Format(_T("%d-%d-%s"), __max(_ttoi(sDN1), _ttoi(sDN2)), __min(_ttoi(sDN1), _ttoi(sDN2)), sL);
|
|
if (lstDn2s.Find(sKey) == NULL)
|
|
{
|
|
int nItem = m_wndListCtrl.GetItemCount();
|
|
m_wndListCtrl.InsertItem(nItem, sDN1);
|
|
m_wndListCtrl.SetItemText(nItem, 1, sDN2);
|
|
m_wndListCtrl.SetItemText(nItem, 2, sL);
|
|
|
|
if (arVals.GetSize() >= 7)
|
|
{
|
|
for (int n = 3; n < arVals.GetSize(); n++)
|
|
{
|
|
m_wndListCtrl.SetItemText(nItem, n, arVals.GetAt(n));
|
|
}
|
|
}
|
|
lstDn2s.AddTail(sKey);
|
|
}
|
|
}
|
|
}
|
|
|
|
sSQL.Format(_T("select [公称直径L],[公称直径S],[长度] from %s")
|
|
_T(" where [外径系列]='%s' and [公称直径L]=%d and [长度] > 0 order by [公称直径S]"), sTbl, sDNo, (int)m_pPipeParam->m_dDN);
|
|
m_pDb->GetSelData(sSQL, valTable);
|
|
|
|
nSize = valTable.GetTableLogicSize();
|
|
for (i = 0; i < nSize; i++)
|
|
{
|
|
arVals.RemoveAll();
|
|
valTable.GetValueRecord(i, arVals);
|
|
|
|
if (arVals.GetSize() >= 3)
|
|
{
|
|
sDN1 = arVals.GetAt(0);
|
|
sDN2 = arVals.GetAt(1);
|
|
sL = arVals.GetAt(2);
|
|
|
|
sKey.Format(_T("%d-%d-%s"), __max(_ttoi(sDN1), _ttoi(sDN2)), __min(_ttoi(sDN1), _ttoi(sDN2)), sL);
|
|
if (lstDn2s.Find(sKey) == NULL)
|
|
{
|
|
int nItem = m_wndListCtrl.GetItemCount();
|
|
m_wndListCtrl.InsertItem(nItem, sDN1);
|
|
m_wndListCtrl.SetItemText(nItem, 1, sDN2);
|
|
m_wndListCtrl.SetItemText(nItem, 2, sL);
|
|
|
|
if (arVals.GetSize() >= 7)
|
|
{
|
|
for (int n = 3; n < arVals.GetSize(); n++)
|
|
{
|
|
m_wndListCtrl.SetItemText(nItem, n, arVals.GetAt(n));
|
|
}
|
|
}
|
|
lstDn2s.AddTail(sKey);
|
|
}
|
|
}
|
|
}
|
|
m_wndListCtrl.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED);
|
|
|
|
//曲率半径
|
|
sSQL = _T("select [曲率半径] from AecElbowradius order by [曲率半径]");
|
|
|
|
CString sRat;
|
|
arVals.RemoveAll();
|
|
arVals.Add(_BYGB_);
|
|
m_pDb->GetSelData(sSQL, arVals);
|
|
int nPos = 0;
|
|
for (int i = 0; i < arVals.GetSize(); i++)
|
|
{
|
|
m_wndElbowradList.InsertString(i, arVals.GetAt(i));
|
|
sRat = arVals.GetAt(i);
|
|
if (fabs(_ttof(sRat) - m_pPipeParam->m_dRRatio) < 1.e-6)
|
|
{
|
|
nPos = i;
|
|
if ((m_pPipeParam->m_dRRatio - g_minRadio) < 1.e-3)
|
|
nPos = 0;
|
|
}
|
|
}
|
|
m_wndElbowradList.SetCurSel(nPos);
|
|
}
|
|
|
|
void CReducerDlg::OnLvnItemchangedListreducer(NMHDR *pNMHDR, LRESULT *pResult)
|
|
{
|
|
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
|
|
|
|
int nItem = pNMLV->iItem;
|
|
if (nItem != -1)
|
|
{
|
|
double dDN = _ttof(m_wndListCtrl.GetItemText(nItem,1));
|
|
|
|
CString sSQL;
|
|
if (_tcslen(m_pPipeParam->szODSn) > 0)
|
|
{
|
|
sSQL.Format(_T("select [外径],[壁厚] from AecOD where [公称直径]=%d and [外径系列]='%s'"), (int)(dDN + 0.5), m_pPipeParam->szODSn);
|
|
}
|
|
else
|
|
{
|
|
sSQL.Format(_T("select [外径],[壁厚] from AecOD where [公称直径]=%d "), (int)(dDN + 0.5));
|
|
}
|
|
|
|
m_wndListODThk.DeleteAllItems();
|
|
CUIIValueTable table;
|
|
m_pDb->GetSelData(sSQL,table);
|
|
table.ShowToListCtrl(&m_wndListODThk);
|
|
|
|
m_wndListODThk.SetItemState(0,LVIS_SELECTED,LVIS_SELECTED);
|
|
}
|
|
*pResult = 0;
|
|
}
|
|
|
|
void CReducerDlg::OnBnClickedOk()
|
|
{
|
|
UpdateData();
|
|
|
|
POSITION ps = m_wndListCtrl.GetFirstSelectedItemPosition();
|
|
int nIntem = m_wndListCtrl.GetNextSelectedItem(ps);
|
|
if (nIntem == -1)
|
|
{
|
|
AfxMessageBox(_T("请选择变径系列!"));
|
|
return;
|
|
}
|
|
|
|
ps = m_wndListODThk.GetFirstSelectedItemPosition();
|
|
int nIntem2 = m_wndListODThk.GetNextSelectedItem(ps);
|
|
if (nIntem2 == -1)
|
|
{
|
|
AfxMessageBox(_T("请选择变径后续的管子的外径壁厚系列!"));
|
|
return;
|
|
}
|
|
|
|
int nSel = m_wndElbowradList.GetCurSel();
|
|
if (nSel == -1)
|
|
{
|
|
AfxMessageBox(_T("请选择管子弯头曲率半径!"));
|
|
return;
|
|
}
|
|
|
|
CString sText;
|
|
m_wndElbowradList.GetText(nSel,sText);
|
|
|
|
//曲率
|
|
if (nSel != -1)
|
|
{
|
|
m_wndElbowradList.GetText(nSel, sText);
|
|
if (sText.CompareNoCase(_BYGB_) == 0)
|
|
{
|
|
m_pPipeParam->m_nRadioOn = TRUE;//按国标结构长度
|
|
m_pPipeParam->m_dRRatio = g_minRadio;//最小
|
|
}
|
|
else
|
|
{
|
|
m_pPipeParam->m_dRRatio = _ttof(sText);
|
|
}
|
|
}
|
|
|
|
double dDNPre = _ttof(m_wndListCtrl.GetItemText(nIntem,0));
|
|
m_pPipeParam->m_dDN = _ttof(m_wndListCtrl.GetItemText(nIntem,1));
|
|
|
|
m_pPipeParam->m_dInterfaceL3 = _ttof(m_wndListCtrl.GetItemText(nIntem,2));
|
|
|
|
double dOD = _ttof(m_wndListODThk.GetItemText(nIntem2,0));
|
|
double dThk = _ttof(m_wndListODThk.GetItemText(nIntem2,1));
|
|
|
|
m_pPipeParam->m_dOD = dOD;
|
|
m_pPipeParam->m_dThick = dThk;
|
|
|
|
switch(m_pPipeParam->m_eD)
|
|
{
|
|
case WPipe::eDN:
|
|
{
|
|
m_pPipeParam->m_dD = m_pPipeParam->m_dDN;
|
|
break;
|
|
}
|
|
case WPipe::eOD:
|
|
{
|
|
m_pPipeParam->m_dD = m_pPipeParam->m_dOD;
|
|
break;
|
|
}
|
|
case WPipe::eID:
|
|
{
|
|
break;
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
|
|
m_ePos = (WPipe::EReducer)m_nPos;
|
|
m_pPipeParam->m_vtECCen.set(0.0,0.0,0.0);
|
|
|
|
if (m_ePos == WPipe::eUp)
|
|
m_vtECCen = AcGeVector3d::kYAxis;
|
|
|
|
if (m_ePos == WPipe::eDown)
|
|
m_vtECCen = -AcGeVector3d::kYAxis;
|
|
|
|
if (m_ePos == WPipe::eFr)
|
|
m_vtECCen = AcGeVector3d::kZAxis;
|
|
|
|
if (m_ePos == WPipe::eBk)
|
|
m_vtECCen = -AcGeVector3d::kZAxis;
|
|
|
|
m_pPipeParam->m_eRed = m_ePos;
|
|
m_pPipeParam->m_vtECCen = m_vtECCen;
|
|
|
|
EndDialog(IDOK);
|
|
}
|
|
|
|
void CReducerDlg::EnableOffsetRadio()
|
|
{
|
|
}
|
|
|
|
void CReducerDlg::OnBnClickedRadioc()
|
|
{
|
|
UpdateData();
|
|
}
|
|
|
|
void CReducerDlg::OnBnClickedRadiou()
|
|
{
|
|
UpdateData();
|
|
EnableOffsetRadio();
|
|
}
|
|
|
|
void CReducerDlg::OnBnClickedRadiod()
|
|
{
|
|
UpdateData();
|
|
EnableOffsetRadio();
|
|
}
|
|
|
|
void CReducerDlg::OnBnClckedButton2()
|
|
{
|
|
AfxMessageBox(_T("1.水平绘制时: 上-为绘制方向逆时针旋90度方向\n下-为绘制方向顺时针旋90度方向\n前-Y正向 后-Y负向\n2.立管绘制时: 上-为X方向 下-X负向 前-Y正向 后-Y负向"));
|
|
}
|
|
|
|
void CReducerDlg::OnDZSize()
|
|
{
|
|
CString sSQL, sODNo = _T("B");
|
|
|
|
CDZDXDlg dlg;
|
|
dlg.m_bIsPla = IsPlasticsMat(m_pPipeParam, sODNo);
|
|
dlg.m_nDN = (int)m_pPipeParam->m_dDN;
|
|
dlg.m_pDb = m_pDb;
|
|
dlg.m_sODNo = sODNo;
|
|
dlg.m_nConnectType = m_pPipeParam->m_nConnectType;
|
|
|
|
if (IDOK == dlg.DoModal() )
|
|
{
|
|
if (m_pPipeParam->m_nConnectType == 1)//承插
|
|
{
|
|
sSQL.Format(_T("insert into [AecReduceSData] ([公称直径L],[公称直径S],[长度],[承插长度L],[接口直径L],[承插长度S],[接口直径S],[外径系列]) values (%d,%d,%d,%.1f,%.1f,%.1f,%.1f,'%s')"),
|
|
dlg.m_nDN, dlg.m_nDN2, dlg.m_nL,dlg.m_dFL, dlg.m_dFD,dlg.m_dFL2,dlg.m_dFD2,sODNo);
|
|
m_pDb->ExecuteSQL(sSQL);
|
|
|
|
sSQL.Format(_T("insert into [AecReduceSData] ([公称直径L],[公称直径S],[长度],[承插长度L],[接口直径L],[承插长度S],[接口直径S],[外径系列]) values (%d,%d,%d,%.1f,%.1f,%.1f,%.1f,'%s')"),
|
|
dlg.m_nDN2,dlg.m_nDN, dlg.m_nL, dlg.m_dFL2, dlg.m_dFD2, dlg.m_dFL, dlg.m_dFD, sODNo);
|
|
m_pDb->ExecuteSQL(sSQL);
|
|
|
|
|
|
CString sDN1, sDN2, sL;
|
|
sDN1.Format(_T("%d"), dlg.m_nDN);
|
|
sDN2.Format(_T("%d"), dlg.m_nDN2);
|
|
sL.Format(_T("%d"), dlg.m_nL);
|
|
|
|
int nItem = m_wndListCtrl.GetItemCount();
|
|
m_wndListCtrl.InsertItem(nItem, sDN1);
|
|
m_wndListCtrl.SetItemText(nItem, 1, sDN2);
|
|
m_wndListCtrl.SetItemText(nItem, 2, sL);
|
|
|
|
if (dlg.m_nDN > dlg.m_nDN2)
|
|
{
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFD + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 3, sL);
|
|
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFL + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 4, sL);
|
|
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFD2 + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 5, sL);
|
|
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFL2 + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 6, sL);
|
|
}
|
|
else
|
|
{
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFD2 + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 3, sL);
|
|
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFL2 + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 4, sL);
|
|
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFD + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 5, sL);
|
|
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFL + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 6, sL);
|
|
}
|
|
m_wndListCtrl.SetItemState(nItem, LVIS_SELECTED, LVIS_SELECTED);
|
|
}
|
|
else if (m_pPipeParam->m_nConnectType == 2)//螺纹
|
|
{
|
|
sSQL.Format(_T("insert into AecReduceData ([公称直径L],[公称直径S],[长度],[螺纹长度L],[接口直径L],[螺纹长度S],[接口直径S],[外径系列]) values (%d,%d,%d,%.1f,%.1f,%.1f,%.1f,'%s')"),
|
|
dlg.m_nDN, dlg.m_nDN2, dlg.m_nL, dlg.m_dFL, dlg.m_dFD, dlg.m_dFL2,dlg.m_dFD2,sODNo);
|
|
m_pDb->ExecuteSQL(sSQL);
|
|
|
|
sSQL.Format(_T("insert into AecReduceData ([公称直径L],[公称直径S],[长度],[螺纹长度L],[接口直径L],[螺纹长度S],[接口直径S],[外径系列]) values (%d,%d,%d,%.1f,%.1f,%.1f,%.1f,'%s')"),
|
|
dlg.m_nDN2, dlg.m_nDN, dlg.m_nL, dlg.m_dFL2, dlg.m_dFD2, dlg.m_dFL, dlg.m_dFD, sODNo);
|
|
m_pDb->ExecuteSQL(sSQL);
|
|
|
|
CString sDN1, sDN2, sL;
|
|
sDN1.Format(_T("%d"), dlg.m_nDN);
|
|
sDN2.Format(_T("%d"), dlg.m_nDN2);
|
|
sL.Format(_T("%d"), dlg.m_nL);
|
|
|
|
int nItem = m_wndListCtrl.GetItemCount();
|
|
m_wndListCtrl.InsertItem(nItem, sDN1);
|
|
m_wndListCtrl.SetItemText(nItem, 1, sDN2);
|
|
m_wndListCtrl.SetItemText(nItem, 2, sL);
|
|
|
|
if (dlg.m_nDN > dlg.m_nDN2)
|
|
{
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFD + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 3, sL);
|
|
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFL + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 4, sL);
|
|
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFD2 + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 5, sL);
|
|
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFL2 + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 6, sL);
|
|
}
|
|
else
|
|
{
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFD2 + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 3, sL);
|
|
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFL2 + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 4, sL);
|
|
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFD + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 5, sL);
|
|
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFL + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 6, sL);
|
|
}
|
|
m_wndListCtrl.SetItemState(nItem, LVIS_SELECTED, LVIS_SELECTED);
|
|
}
|
|
else //焊接 其他按焊接
|
|
{
|
|
sSQL.Format(_T("insert into AecReduceData ([公称直径L],[公称直径S],[长度],H1,H2,[外径系列]) values (%d,%d,%d,%d,%d,'%s')"),
|
|
dlg.m_nDN, dlg.m_nDN2, dlg.m_nL, (int)dlg.m_dFL, (int)dlg.m_dFL2, sODNo);
|
|
m_pDb->ExecuteSQL(sSQL);
|
|
|
|
sSQL.Format(_T("insert into AecReduceData ([公称直径L],[公称直径S],[长度],H1,H2,[外径系列]) values (%d,%d,%d,%d,%d,'%s')"),
|
|
dlg.m_nDN2, dlg.m_nDN, dlg.m_nL,(int)dlg.m_dFL2, (int)dlg.m_dFL, sODNo);
|
|
m_pDb->ExecuteSQL(sSQL);
|
|
|
|
CString sDN1, sDN2, sL;
|
|
sDN1.Format(_T("%d"), dlg.m_nDN);
|
|
sDN2.Format(_T("%d"), dlg.m_nDN2);
|
|
sL.Format(_T("%d"), dlg.m_nL);
|
|
|
|
int nItem = m_wndListCtrl.GetItemCount();
|
|
m_wndListCtrl.InsertItem(nItem, sDN1);
|
|
m_wndListCtrl.SetItemText(nItem, 1, sDN2);
|
|
m_wndListCtrl.SetItemText(nItem, 2, sL);
|
|
|
|
if (dlg.m_nDN > dlg.m_nDN2)
|
|
{
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFL + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 4, sL);
|
|
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFL2 + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 6, sL);
|
|
}
|
|
else
|
|
{
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFL2 + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 4, sL);
|
|
|
|
sL.Format(_T("%d"), (int)(dlg.m_dFL + 0.5));
|
|
m_wndListCtrl.SetItemText(nItem, 6, sL);
|
|
}
|
|
|
|
m_wndListCtrl.SetItemState(nItem, LVIS_SELECTED, LVIS_SELECTED);
|
|
}
|
|
}
|
|
}
|
|
|
|
void CReducerDlg::OnAddPipe()
|
|
{
|
|
CGZCLDlg dlg;
|
|
|
|
POSITION ps = m_wndListCtrl.GetFirstSelectedItemPosition();
|
|
if (ps != NULL)
|
|
{
|
|
int nItem = m_wndListCtrl.GetNextSelectedItem(ps);
|
|
if (nItem != -1)
|
|
{
|
|
dlg.m_nDN = _ttoi(m_wndListCtrl.GetItemText(nItem, 1));
|
|
}
|
|
}
|
|
|
|
dlg.m_sMat = m_pPipeParam->szMertialFit;
|
|
dlg.m_sSCode = m_pPipeParam->szShtNo;
|
|
dlg.m_sODSN = m_pPipeParam->szODSn;
|
|
dlg.m_sStd = m_pPipeParam->szStdNo;
|
|
|
|
if (IDOK == dlg.DoModal())
|
|
{
|
|
CString sSQL;
|
|
sSQL.Format(_T("insert into AecOD ([公称直径],[外径],[表号],[壁厚],[重量],[外径系列],[标准]) values (%d,%d,'%s',%.1f,%.2f,'%s','%s')"),
|
|
dlg.m_nDN, (int)dlg.m_dOD, dlg.m_sSCode, dlg.m_dt, dlg.m_dWe, dlg.m_sODSN, dlg.m_sStd);
|
|
|
|
if (m_pDb->ExecuteSQL(sSQL))
|
|
{
|
|
|
|
double dDN = dlg.m_nDN;
|
|
|
|
CString sSQL;
|
|
if (_tcslen(m_pPipeParam->szODSn) > 0)
|
|
{
|
|
sSQL.Format(_T("select [外径],[壁厚] from AecOD where [公称直径]=%d and [外径系列]='%s'"), (int)(dDN + 0.5), m_pPipeParam->szODSn);
|
|
}
|
|
else
|
|
{
|
|
sSQL.Format(_T("select [外径],[壁厚] from AecOD where [公称直径]=%d "), (int)(dDN + 0.5));
|
|
}
|
|
|
|
m_wndListODThk.DeleteAllItems();
|
|
|
|
CUIIValueTable table;
|
|
m_pDb->GetSelData(sSQL, table);
|
|
table.ShowToListCtrl(&m_wndListODThk);
|
|
|
|
m_wndListODThk.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED);
|
|
}
|
|
}
|
|
} |