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