310 lines
7.5 KiB
C++
310 lines
7.5 KiB
C++
#include "stdafx.h"
|
|
#include "KTTracingDlg.h"
|
|
#include "KTModelLayoutXData.h"
|
|
#include "CoreTools.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
KTTracingDlg::KTTracingDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(KTTracingDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(KTTracingDlg)
|
|
//}}AFX_DATA_INIT
|
|
m_pPipePar = NULL;
|
|
m_pADOServer = NULL;
|
|
m_sProject = "";
|
|
}
|
|
|
|
void KTTracingDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(KTTracingDlg)
|
|
DDX_Control(pDX, IDC_COMBOPRESS, m_wndComboPress);
|
|
DDX_Control(pDX, IDC_COMBOMEDIA, m_wndComboMedia);
|
|
DDX_Control(pDX, IDC_COMBODN, m_wndComboDN);
|
|
DDX_Control(pDX, IDC_LISTTRAPIPE, m_wndListCtrl);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(KTTracingDlg, CDialog)
|
|
//{{AFX_MSG_MAP(KTTracingDlg)
|
|
ON_CBN_SELCHANGE(IDC_COMBOPRESS, OnSelchangeCombopress)
|
|
ON_CBN_SELCHANGE(IDC_COMBODN, OnSelchangeCombodn)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL KTTracingDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
m_ImageList.Create(IDB_BITMAPPIPE,16,1,ILC_COLOR16);
|
|
m_wndListCtrl.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
|
|
m_wndListCtrl.SetImageList(&m_ImageList,LVSIL_SMALL);
|
|
|
|
m_wndListCtrl.InsertColumn(0,_T("公称直径"),LVCFMT_LEFT,60);
|
|
m_wndListCtrl.InsertColumn(1,_T("等级名称"),LVCFMT_LEFT,60);
|
|
m_wndListCtrl.InsertColumn(2,_T("材质"),LVCFMT_LEFT,80);
|
|
m_wndListCtrl.InsertColumn(3,_T("外径"),LVCFMT_LEFT,80);
|
|
m_wndListCtrl.InsertColumn(4,_T("壁厚"),LVCFMT_LEFT,80);
|
|
m_wndListCtrl.InsertColumn(5,_T("标准号"),LVCFMT_LEFT,80);
|
|
m_wndListCtrl.InsertColumn(6,_T("描述"),LVCFMT_LEFT,80);
|
|
m_wndListCtrl.InsertColumn(7,_T("类别"),LVCFMT_LEFT,80);
|
|
m_wndListCtrl.InsertColumn(8,_T("类型"),LVCFMT_LEFT,80);
|
|
m_wndListCtrl.InsertColumn(9,_T("表号"),LVCFMT_LEFT,80);
|
|
m_wndListCtrl.InsertColumn(10,_T("外径系列"),LVCFMT_LEFT,80);
|
|
|
|
InitTraDataFromDb();
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void KTTracingDlg::UpdateParamDlgFromParam()
|
|
{
|
|
InitTraDataFromDb();
|
|
}
|
|
|
|
BOOL KTTracingDlg::OnCommand(WPARAM wParam, LPARAM lParam)
|
|
{
|
|
WORD lWord = 0;
|
|
switch (LOWORD(wParam))
|
|
{
|
|
case IDOK:
|
|
case IDCANCEL:
|
|
{
|
|
return TRUE;
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
return CDialog::OnCommand(wParam, lParam);
|
|
}
|
|
|
|
static void ParsalToArray(CString& sMtoAll,CStringArray& arValues)
|
|
{
|
|
int nIndex = -1;
|
|
CString sTemp = sMtoAll,sText;
|
|
|
|
while(TRUE)
|
|
{
|
|
nIndex = sTemp.Find(_T("^"),0);
|
|
if (nIndex != -1)
|
|
{
|
|
arValues.Add(sTemp.Mid(0,nIndex));
|
|
sText = sTemp.Mid(nIndex + 1,sTemp.GetLength() - nIndex - 1);
|
|
sTemp = sText;
|
|
}
|
|
else
|
|
{
|
|
if (!sTemp.IsEmpty())
|
|
{
|
|
arValues.Add(sTemp);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void KTTracingDlg::InitTraDataFromDb()
|
|
{
|
|
CStringArray arItems;
|
|
CString sMotInf = m_pPipePar->szTraMtoInfo;
|
|
ParsalToArray(sMotInf,arItems);
|
|
|
|
//公称
|
|
CString sSQL = _T("select [公制] from AecDn order by [公制]");
|
|
CStringArray arValues1;
|
|
m_pADOServer->GetSelData(sSQL,arValues1);
|
|
|
|
m_wndComboDN.ResetContent();
|
|
for (int i = 0;i < arValues1.GetSize();i++)
|
|
{
|
|
m_wndComboDN.AddString(arValues1.GetAt(i));
|
|
}
|
|
|
|
CString sDNTra;
|
|
if (arItems.GetSize() >= 10)
|
|
sDNTra = arItems.GetAt(4);
|
|
|
|
int nIndex = m_wndComboDN.FindString(-1,sDNTra);
|
|
if (nIndex == -1) nIndex = 0;
|
|
if (i > 0) m_wndComboDN.SetCurSel(nIndex);
|
|
i = 0;
|
|
|
|
//获取项目名称
|
|
m_sProject = CoreTools::GetCurrentProject();
|
|
sSQL.Format(_T("select [等级名称] from AecSpecname where [项目名称]='%s'"),m_sProject);
|
|
|
|
CStringArray arValues2;
|
|
m_pADOServer->GetSelData(sSQL,arValues2);
|
|
m_wndComboPress.ResetContent();
|
|
|
|
for (i = 0; i < arValues2.GetSize();i++)
|
|
{
|
|
m_wndComboPress.AddString(arValues2.GetAt(i));
|
|
}
|
|
|
|
CString sLevel;
|
|
if (arItems.GetSize() >= 10)
|
|
sLevel = arItems.GetAt(1);
|
|
|
|
nIndex = m_wndComboPress.FindString(-1,sLevel);
|
|
if (nIndex == -1) nIndex = 0;
|
|
if (i > 0) m_wndComboPress.SetCurSel(nIndex);
|
|
|
|
//3。介质描述
|
|
KTValueTable table;
|
|
CString sText,sDescr;
|
|
sSQL = _T("select [介质代号],[介质] from AecFluid order by ID");
|
|
m_pADOServer->GetSelData(sSQL,table);
|
|
m_wndComboMedia.ResetContent();
|
|
|
|
int nSpace = 0;
|
|
int nCount = table.GetTableLogicSize();
|
|
CStringArray arValue3;
|
|
for(i = 0;i<nCount;i++)
|
|
{
|
|
arValue3.RemoveAll();
|
|
table.GetValueRecord(i,arValue3);
|
|
|
|
if (arValue3.GetSize() >= 2)
|
|
{
|
|
sText = arValue3.GetAt(0);
|
|
nSpace = 8 - sText.GetLength();//8===代号最多为8个字符
|
|
sDescr= sText;
|
|
for (int j = 0;j < nSpace;j++)
|
|
{
|
|
sDescr += _T(" ");
|
|
}
|
|
sDescr += arValue3.GetAt(1);
|
|
m_wndComboMedia.AddString(sDescr);
|
|
}
|
|
}
|
|
if (nCount > 0) m_wndComboMedia.SetCurSel(0);
|
|
OnSelchangeCombopress();
|
|
}
|
|
|
|
void KTTracingDlg::OnSelchangeCombopress()
|
|
{
|
|
int nCursel = m_wndComboPress.GetCurSel();
|
|
if (nCursel != -1)
|
|
{
|
|
CString sPress;
|
|
m_wndComboPress.GetLBText(nCursel,sPress);
|
|
|
|
nCursel = m_wndComboDN.GetCurSel();
|
|
if (nCursel != -1)
|
|
{
|
|
CString sDN;
|
|
m_wndComboDN.GetLBText(nCursel,sDN);
|
|
ShowTraPipeQuery(_ttoi(sDN),sPress);
|
|
}
|
|
}
|
|
}
|
|
|
|
void KTTracingDlg::OnSelchangeCombodn()
|
|
{
|
|
int nCursel = m_wndComboPress.GetCurSel();
|
|
if (nCursel != -1)
|
|
{
|
|
CString sPress;
|
|
m_wndComboPress.GetLBText(nCursel,sPress);
|
|
|
|
nCursel = m_wndComboDN.GetCurSel();
|
|
if (nCursel != -1)
|
|
{
|
|
CString sDN;
|
|
m_wndComboDN.GetLBText(nCursel,sDN);
|
|
ShowTraPipeQuery(_ttoi(sDN),sPress);
|
|
}
|
|
}
|
|
}
|
|
|
|
void KTTracingDlg::ShowTraPipeQuery(int nDN,CString& sPress)
|
|
{
|
|
CString sSQL;
|
|
sSQL.Format(_T("select [公称直径],[等级名称],[材质],[外径],[壁厚],[标准号],[描述],[类别],[类型],[表号],[外径系列] from AecSpecPipe")
|
|
_T(" where [公称直径]=%d and [等级名称]='%s' and [项目名称]='%s' order by [公称直径]"),nDN,sPress,m_sProject);
|
|
|
|
KTValueTable table;
|
|
m_pADOServer->GetSelData(sSQL,table);
|
|
m_wndListCtrl.DeleteAllItems();
|
|
|
|
CStringArray arLable;
|
|
table.GetLableRecord(arLable);
|
|
|
|
for (int i = 0;i < table.GetTableLogicSize();i++)
|
|
{
|
|
arLable.RemoveAll();
|
|
table.GetValueRecord(i,arLable);
|
|
|
|
if (arLable.GetSize() >= 11)
|
|
{
|
|
for (int j = 0;j < arLable.GetSize();j++)
|
|
{
|
|
if (j == 0)
|
|
m_wndListCtrl.InsertItem(i,arLable.GetAt(j),2);
|
|
else
|
|
m_wndListCtrl.SetItemText(i,j,arLable.GetAt(j));
|
|
}
|
|
}
|
|
}
|
|
|
|
if (table.GetTableLogicSize() > 0)
|
|
m_wndListCtrl.SetItemState(0,LVIS_SELECTED,LVIS_SELECTED);
|
|
}
|
|
|
|
BOOL KTTracingDlg::UpdateDataEx()
|
|
{
|
|
POSITION ps = m_wndListCtrl.GetFirstSelectedItemPosition();
|
|
if (ps != NULL)
|
|
{
|
|
int nItem = m_wndListCtrl.GetNextSelectedItem(ps);
|
|
if (nItem != -1)
|
|
{
|
|
CString sDN = m_wndListCtrl.GetItemText(nItem,0);
|
|
CString sLevel = m_wndListCtrl.GetItemText(nItem,1);
|
|
CString sMater = m_wndListCtrl.GetItemText(nItem,2);
|
|
CString sOD = m_wndListCtrl.GetItemText(nItem,3);
|
|
CString sThick = m_wndListCtrl.GetItemText(nItem,4);
|
|
CString sGB = m_wndListCtrl.GetItemText(nItem,5);
|
|
CString sDesc = m_wndListCtrl.GetItemText(nItem,6);
|
|
CString sType = m_wndListCtrl.GetItemText(nItem,7);
|
|
CString sKind = m_wndListCtrl.GetItemText(nItem,8);
|
|
CString sTbl = m_wndListCtrl.GetItemText(nItem,9);
|
|
CString sODs = m_wndListCtrl.GetItemText(nItem,10);
|
|
|
|
CString sMotoInfo = m_sProject;
|
|
sMotoInfo += _T("^");
|
|
sMotoInfo += sLevel;
|
|
sMotoInfo += _T("^");
|
|
sMotoInfo += sType;
|
|
sMotoInfo += _T("^");
|
|
sMotoInfo += sKind;
|
|
sMotoInfo += _T("^");
|
|
sMotoInfo += sDN;
|
|
sMotoInfo += _T("^");
|
|
sMotoInfo += sMater;
|
|
sMotoInfo += _T("^");
|
|
sMotoInfo += sTbl;
|
|
sMotoInfo += _T("^");
|
|
sMotoInfo += sGB;
|
|
sMotoInfo += _T("^");
|
|
sMotoInfo += sOD;
|
|
sMotoInfo += _T("^");
|
|
sMotoInfo += sThick;
|
|
sMotoInfo += _T("^");
|
|
sMotoInfo += sODs;
|
|
|
|
if (m_pPipePar != NULL)
|
|
{
|
|
_tcscpy(m_pPipePar->szTraMtoInfo,sMotoInfo);
|
|
_tcscpy(m_pPipePar->szTraDescr,sDesc);
|
|
}
|
|
}
|
|
}
|
|
return TRUE;
|
|
} |