472 lines
10 KiB
C++
472 lines
10 KiB
C++
#include "stdafx.h"
|
|
#include "CDKDDlg.h"
|
|
|
|
int g_nNozzY[] = {6,8,10,15,20,25,32,40,50,65,80,100,125,150,200,250,300,350,400,450,500,600,800,850,900,950,1000,1050,1100,1150,1200,1500,2000,0};
|
|
int g_nHoleNo = 1;
|
|
|
|
int g_nD5R[] = {200,220,235,255,290,315,375,435,495,545,600,650,705,820,910,1020,1120,1220,0};
|
|
int g_nD5F[] = {200,220,235,255,290,315,375,435,495,545,600,650,705,820,910,1020,1120,1220,0};
|
|
int g_nD2G[] = {95,105,110,120,135,150,210,230,260,320,375,475,525,575,630,680,830,920,1020,1220,0};
|
|
|
|
|
|
IMPLEMENT_DYNAMIC(CCDKDDlg, CDialog)
|
|
|
|
|
|
CCDKDDlg::CCDKDDlg(CWnd* pParent/* = NULL*/)
|
|
: CDialog(CCDKDDlg::IDD, pParent)
|
|
,m_dDL(500)
|
|
,m_dW(500)
|
|
,m_dE(0)
|
|
,m_nShape(0)
|
|
,m_nCurSel(10)
|
|
,m_bHasCase(FALSE)
|
|
,m_bHasNozz(TRUE)
|
|
,m_dT(6.0)
|
|
,m_sMertial(_T("PVC"))
|
|
,m_sNo(_T("H-001"))
|
|
,m_sPipeType(_T("A型刚性防水套管"))
|
|
, m_dHoleDeep(0)
|
|
, m_bHoleDeep(FALSE)
|
|
, m_bEnableRadio(TRUE)
|
|
, m_dTL(200.0)
|
|
, m_bMultiCurveUI(false)
|
|
, m_bExt(FALSE)
|
|
, m_dExt1(0)
|
|
, m_dExt2(0)
|
|
, m_nD2(2)
|
|
, m_sD2(_T(""))
|
|
, m_sForUse(_T("普通"))
|
|
{
|
|
m_bIsArrayKD = FALSE;
|
|
m_dBomEl = 0.0;
|
|
m_bBomEl = TRUE;
|
|
m_bFromPipe = FALSE;
|
|
|
|
GET_CACHE(CCDKDDlg
|
|
,%f%f%f%f%d%d%d%d%s%s
|
|
, &m_dDL
|
|
, &m_dW
|
|
, &m_dE
|
|
, &m_dT
|
|
, &m_nShape
|
|
, &m_nCurSel
|
|
, &m_bHasNozz
|
|
, &m_bHasCase
|
|
, &m_sMertial
|
|
, &m_sNo);
|
|
|
|
m_sNo.Format(_T("H-%d"),g_nHoleNo);
|
|
g_nHoleNo++;
|
|
}
|
|
|
|
CCDKDDlg::~CCDKDDlg(void)
|
|
{
|
|
}
|
|
|
|
void CCDKDDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_EDIT1, m_dDL);
|
|
DDX_Text(pDX, IDC_EDIT2, m_dW);
|
|
DDX_Text(pDX, IDC_EDIT3, m_dE);
|
|
DDX_Text(pDX, IDC_EDIT4, m_dT);
|
|
DDX_Radio(pDX, IDC_RADIO1, m_nShape);
|
|
DDX_CBIndex(pDX, IDC_COMBOINF, m_nCurSel);
|
|
DDX_Check(pDX, IDC_CHECK1, m_bHasNozz);
|
|
DDX_Check(pDX, IDC_CHECK2, m_bHasCase);
|
|
DDX_CBString(pDX, IDC_COMBO1, m_sMertial);
|
|
DDX_Text(pDX, IDC_EDIT6, m_sNo);
|
|
|
|
DDX_Control(pDX, IDC_COMBO1, m_wndComboMaters);
|
|
DDX_Control(pDX, IDC_COMBOINF, m_wndDnCombo);
|
|
DDX_CBString(pDX, IDC_COMBO3, m_sPipeType);
|
|
DDX_Control(pDX, IDC_COMBO3, m_wndPipeComboType);
|
|
DDX_Text(pDX, IDC_EDIT8, m_dHoleDeep);
|
|
DDX_Check(pDX, IDC_CHECK3, m_bHoleDeep);
|
|
|
|
DDX_Control(pDX, IDC_RADIO1, m_btnRadio1);
|
|
DDX_Control(pDX, IDC_RADIO2, m_btnRadio2);
|
|
DDX_Control(pDX, IDC_RADIO3, m_btnRadio3);
|
|
DDX_Text(pDX, IDC_EDIT9, m_dTL);
|
|
DDX_Check(pDX, IDC_CHECK6, m_bExt);
|
|
DDX_Text(pDX, IDC_EDIT10, m_dExt1);
|
|
DDX_Text(pDX, IDC_EDIT11, m_dExt2);
|
|
DDX_Control(pDX, IDC_EDIT10, m_wndExtEx1);
|
|
DDX_Control(pDX, IDC_EDIT11, m_wndEditExt2);
|
|
DDX_Text(pDX, IDC_EDIT12, m_nD2);
|
|
DDX_CBString(pDX, IDC_COMBO5, m_sD2);
|
|
DDX_Control(pDX, IDC_COMBO5, m_wndD2Combo);
|
|
DDX_Text(pDX, IDC_COMBO10, m_sForUse);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CCDKDDlg, CDialog)
|
|
ON_BN_CLICKED(IDOK, &CCDKDDlg::OnBnClickedOk)
|
|
ON_BN_CLICKED(IDC_RADIO1, &CCDKDDlg::OnBnClickedRadio1)
|
|
ON_BN_CLICKED(IDC_RADIO2, &CCDKDDlg::OnBnClickedRadio2)
|
|
ON_BN_CLICKED(IDC_CHECK2, &CCDKDDlg::OnBnClickedCheck2)
|
|
ON_BN_CLICKED(IDC_CHECK1, &CCDKDDlg::OnBnClickedCheck1)
|
|
ON_BN_CLICKED(IDC_RADIO3, &CCDKDDlg::OnBnClickedRadio3)
|
|
ON_BN_CLICKED(IDC_CHECK6, &CCDKDDlg::OnBnClickedCheck6)
|
|
ON_CBN_SELCHANGE(IDC_COMBO3, &CCDKDDlg::OnCbnSelchangeCombo3)
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CCDKDDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
m_dDLBk = m_dDL;
|
|
m_dWBk = m_dW;
|
|
|
|
UpdateData(FALSE);
|
|
|
|
CString path = FilePath::GetSysDir() + Plumbing_DB;
|
|
if (!m_dbSQLite.InitADOServer(path))
|
|
{
|
|
AfxMessageBox(CString(_T("数据库初始化失败,请检查 sys")) + Plumbing_DB + _T("文件是否存在."));
|
|
return FALSE;
|
|
}
|
|
|
|
InitMaterial();
|
|
InitComboDN();
|
|
|
|
OnBnClickedRadio1();
|
|
|
|
OnBnClickedCheck1();
|
|
|
|
if (m_bIsArrayKD)
|
|
{
|
|
GetDlgItem(IDC_STATIC_EL)->SetWindowText(_T("最低洞口中心标高(&E):") );
|
|
m_dE = m_dBomEl + 500;
|
|
}
|
|
|
|
//异形洞口的标高锁定.
|
|
GetDlgItem(IDC_EDIT3)->EnableWindow(m_bBomEl);
|
|
|
|
if (m_bFromPipe)
|
|
{
|
|
//GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE);
|
|
//GetDlgItem(IDC_EDIT2)->EnableWindow(FALSE);
|
|
}
|
|
|
|
int nSel = m_wndPipeComboType.FindString(0,m_sPipeType);
|
|
if (nSel == -1)
|
|
{
|
|
nSel = 0;
|
|
}
|
|
m_wndPipeComboType.SetCurSel(nSel);
|
|
|
|
//更新翼环数据
|
|
ShowYHCombo();
|
|
|
|
m_btnRadio1.EnableWindow(m_bEnableRadio);
|
|
m_btnRadio2.EnableWindow(m_bEnableRadio);
|
|
m_btnRadio3.EnableWindow(m_bEnableRadio);
|
|
|
|
UpdateData(FALSE);
|
|
|
|
if (m_bMultiCurveUI)
|
|
{
|
|
GetDlgItem(IDC_RADIO1)->EnableWindow(0);
|
|
GetDlgItem(IDC_RADIO2)->EnableWindow(0);
|
|
GetDlgItem(IDC_RADIO3)->EnableWindow(0);
|
|
|
|
GetDlgItem(IDC_EDIT1)->EnableWindow(0);
|
|
GetDlgItem(IDC_EDIT2)->EnableWindow(0);
|
|
GetDlgItem(IDC_EDIT3)->EnableWindow(0);
|
|
GetDlgItem(IDC_EDIT6)->EnableWindow(0);
|
|
GetDlgItem(IDC_EDIT8)->EnableWindow(0);
|
|
|
|
m_wndD2Combo.EnableWindow(0);
|
|
GetDlgItem(IDC_EDIT12)->EnableWindow(0);
|
|
}
|
|
|
|
m_wndExtEx1.EnableWindow(m_bExt);
|
|
m_wndEditExt2.EnableWindow(m_bExt);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CCDKDDlg::OnBnClickedOk()
|
|
{
|
|
UpdateData();
|
|
|
|
if (m_bIsArrayKD)
|
|
{
|
|
if (m_dE - m_dBomEl < 1.e-3)
|
|
{
|
|
AfxMessageBox(_T("请检查开洞的洞口标高是否合理!"));
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (m_bHoleDeep)
|
|
{
|
|
if (m_dHoleDeep < 5.0)//5毫米
|
|
{
|
|
AfxMessageBox(_T("请检查开洞的洞口深度是否合理!"));
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (m_bHasCase)
|
|
{
|
|
if (m_dTL < 1.e-2)
|
|
{
|
|
AfxMessageBox(_T("请检查套管的长度是否合理!"));
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (m_bFromPipe)//如果来自管子,则开洞尺寸必须大于外径
|
|
{
|
|
if ( (m_dDLBk - m_dDL) > 1.e-10 ||
|
|
(m_dWBk - m_dW) > 1.e-10)
|
|
{
|
|
AfxMessageBox(_T("穿管开洞,洞口尺寸不能小于管子外径!"));
|
|
return;
|
|
}
|
|
}
|
|
|
|
SET_CACHE(CCDKDDlg
|
|
, %f%f%f%f%d%d%d%d%s%s
|
|
, m_dDL
|
|
, m_dW
|
|
, m_dE
|
|
, m_dT
|
|
, m_nShape
|
|
, m_nCurSel
|
|
, m_bHasNozz
|
|
, m_bHasCase
|
|
, m_sMertial
|
|
, m_sNo);
|
|
OnOK();
|
|
}
|
|
|
|
void CCDKDDlg::GetHoleData(KHoleData& data) const
|
|
{
|
|
data.m_dDL = m_dDL;
|
|
data.m_dW = m_dW;
|
|
data.m_dE = m_dE;
|
|
data.m_dT = m_dT;
|
|
data.m_dTL = m_dTL;
|
|
data.m_dDeep = m_dHoleDeep;
|
|
data.m_bDeep = m_bHoleDeep;
|
|
data.m_nCurSel = m_nCurSel;
|
|
data.m_nShape = m_nShape;
|
|
data.m_bHasCase = m_bHasCase;
|
|
data.m_bHasNozz = m_bHasNozz;
|
|
data.m_nD2 = m_nD2;
|
|
_tcscpy(data.m_sHoles,m_sHoles);
|
|
_tcscpy(data.m_sMertial,m_sMertial);
|
|
_tcscpy(data.m_sPipeType,m_sPipeType);
|
|
_tcscpy(data.m_sD2,m_sD2);
|
|
_tcscpy(data.m_sNo,m_sNo);
|
|
_tcscpy(data.m_sForUser, m_sForUse);
|
|
}
|
|
|
|
void CCDKDDlg::InitMaterial()
|
|
{
|
|
//材质
|
|
CStringArray arVals;
|
|
CString sSQL = _T("select [材质] from AecMaterial where [类型]='管道'");
|
|
m_dbSQLite.GetSelData(sSQL,arVals);
|
|
|
|
int nSel = 0;
|
|
m_wndComboMaters.ResetContent();
|
|
for (int i = 0;i < arVals.GetSize();i++)
|
|
{
|
|
m_wndComboMaters.InsertString(i,arVals.GetAt(i));
|
|
|
|
if (m_sMertial.CompareNoCase(arVals.GetAt(i)) == 0)
|
|
{
|
|
nSel = i;
|
|
}
|
|
}
|
|
m_wndComboMaters.SetCurSel(nSel);
|
|
}
|
|
|
|
void CCDKDDlg::EnableRadioBtn(BOOL bEnable)
|
|
{
|
|
m_bEnableRadio = bEnable;
|
|
}
|
|
|
|
void CCDKDDlg::setMultiCurveUI()
|
|
{
|
|
m_bMultiCurveUI = true;
|
|
}
|
|
|
|
void CCDKDDlg::InitComboDN()
|
|
{
|
|
m_wndDnCombo.ResetContent();
|
|
|
|
int i = 0,nIndex = 0;
|
|
CString sText;
|
|
|
|
while(TRUE)
|
|
{
|
|
if (g_nNozzY[i] == 0)
|
|
break;
|
|
|
|
sText.Format(_T("%d"),g_nNozzY[i]);
|
|
nIndex = m_wndDnCombo.InsertString(i,sText);
|
|
m_wndDnCombo.SetItemData(nIndex,i);
|
|
i++;
|
|
}
|
|
|
|
if (m_wndDnCombo.GetCount() >= 10)
|
|
m_wndDnCombo.SetCurSel(10);
|
|
m_nCurSel = 10;
|
|
}
|
|
|
|
void CCDKDDlg::OnBnClickedRadio1()
|
|
{
|
|
UpdateData();
|
|
GetDlgItem(IDC_STATIC_W)->EnableWindow(m_nShape);
|
|
GetDlgItem(IDC_EDIT2)->EnableWindow(m_nShape);
|
|
GetDlgItem(IDC_STATIC_W2)->EnableWindow(m_nShape);
|
|
|
|
if (m_nShape == 0)
|
|
{
|
|
GetDlgItem(IDC_STATIC_DL)->SetWindowText(_T("直径(&D):"));
|
|
GetDlgItem(IDC_STATIC_Y)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_EDIT27)->EnableWindow(FALSE);
|
|
}
|
|
else
|
|
{
|
|
if (m_nShape == 1)
|
|
{
|
|
GetDlgItem(IDC_STATIC_Y)->EnableWindow(TRUE);
|
|
GetDlgItem(IDC_EDIT27)->EnableWindow(TRUE);
|
|
}
|
|
|
|
GetDlgItem(IDC_STATIC_DL)->SetWindowText(_T("高度(&H):"));
|
|
}
|
|
}
|
|
|
|
void CCDKDDlg::OnBnClickedRadio2()
|
|
{
|
|
UpdateData();
|
|
GetDlgItem(IDC_STATIC_W)->EnableWindow(m_nShape);
|
|
GetDlgItem(IDC_EDIT2)->EnableWindow(m_nShape);
|
|
GetDlgItem(IDC_STATIC_W2)->EnableWindow(m_nShape);
|
|
|
|
if (m_nShape == 0)
|
|
{
|
|
GetDlgItem(IDC_STATIC_DL)->SetWindowText(_T("直径(&D):"));
|
|
}
|
|
else if (m_nShape == 1)
|
|
{
|
|
GetDlgItem(IDC_STATIC_DL)->SetWindowText(_T("高度(&H):"));
|
|
|
|
GetDlgItem(IDC_STATIC_Y)->EnableWindow(TRUE);
|
|
GetDlgItem(IDC_EDIT27)->EnableWindow(TRUE);
|
|
}
|
|
}
|
|
|
|
void CCDKDDlg::OnBnClickedRadio3()
|
|
{
|
|
UpdateData();
|
|
|
|
if (m_nShape == 2)
|
|
{
|
|
GetDlgItem(IDC_STATIC_W)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_EDIT2)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_STATIC_W2)->EnableWindow(FALSE);
|
|
|
|
GetDlgItem(IDC_CHECK2)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_EDIT4)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_CHECK1)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_COMBOINF)->EnableWindow(FALSE);
|
|
}
|
|
else
|
|
{
|
|
GetDlgItem(IDC_STATIC_W)->EnableWindow(TRUE);
|
|
GetDlgItem(IDC_EDIT2)->EnableWindow(TRUE);
|
|
GetDlgItem(IDC_STATIC_W2)->EnableWindow(TRUE);
|
|
|
|
GetDlgItem(IDC_CHECK2)->EnableWindow(TRUE);
|
|
GetDlgItem(IDC_EDIT4)->EnableWindow(TRUE);
|
|
GetDlgItem(IDC_CHECK1)->EnableWindow(TRUE);
|
|
GetDlgItem(IDC_COMBOINF)->EnableWindow(TRUE);
|
|
|
|
OnBnClickedRadio2();
|
|
}
|
|
}
|
|
|
|
void CCDKDDlg::OnBnClickedCheck2()
|
|
{
|
|
UpdateData();
|
|
GetDlgItem(IDC_EDIT4)->EnableWindow(m_bHasCase);
|
|
}
|
|
|
|
void CCDKDDlg::OnBnClickedCheck1()
|
|
{
|
|
UpdateData();
|
|
m_wndDnCombo.EnableWindow(m_bHasNozz);
|
|
|
|
if (m_bHasNozz)
|
|
{
|
|
CString sText;
|
|
for (int i = 0;i < m_wndDnCombo.GetCount();i++)
|
|
{
|
|
m_wndDnCombo.GetLBText(i,sText);
|
|
|
|
if ( fabs(_ttof(sText) - m_dDL) < 1.e-3 )
|
|
{
|
|
m_wndDnCombo.SetCurSel(i);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void CCDKDDlg::OnBnClickedCheck6()
|
|
{
|
|
UpdateData();
|
|
m_wndExtEx1.EnableWindow(m_bExt);
|
|
m_wndEditExt2.EnableWindow(m_bExt);
|
|
}
|
|
|
|
void CCDKDDlg::OnCbnSelchangeCombo3()
|
|
{
|
|
UpdateData();
|
|
ShowYHCombo();
|
|
}
|
|
|
|
void CCDKDDlg::ShowYHCombo()
|
|
{
|
|
CString sTemp;
|
|
if (m_sPipeType.Find(_T("柔性")) != -1)
|
|
{
|
|
m_wndD2Combo.ResetContent();
|
|
for (int i = 0;i < 30;i++)
|
|
{
|
|
if (g_nD5R[i] == 0)
|
|
break;
|
|
sTemp.Format(_T("%d"),g_nD5R[i]);
|
|
m_wndD2Combo.AddString(sTemp);
|
|
}
|
|
}
|
|
else if ( m_sPipeType.Find(_T("法兰")) != -1)
|
|
{
|
|
m_wndD2Combo.ResetContent();
|
|
for (int i = 0;i < 30;i++)
|
|
{
|
|
if (g_nD5F[i] == 0)
|
|
break;
|
|
sTemp.Format(_T("%d"),g_nD5F[i]);
|
|
m_wndD2Combo.AddString(sTemp);
|
|
}
|
|
}
|
|
else if (m_sPipeType.Find(_T("刚性")) != -1)
|
|
{
|
|
m_wndD2Combo.ResetContent();
|
|
for (int i = 0;i < 30;i++)
|
|
{
|
|
if (g_nD2G[i] == 0)
|
|
break;
|
|
sTemp.Format(_T("%d"),g_nD2G[i]);
|
|
m_wndD2Combo.AddString(sTemp);
|
|
}
|
|
}
|
|
} |