#include "stdafx.h" #include "KTInsulateExDlg.h" #include "TJBWBRDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif KTInsulateExDlg::KTInsulateExDlg(CWnd* pParent /*=NULL*/) : CDialog(KTInsulateExDlg::IDD, pParent) { //{{AFX_DATA_INIT(KTInsulateExDlg) m_sInsSpec = _T(""); m_sMaterial = _T(""); m_dInsThick = 20.0; //}}AFX_DATA_INIT m_pPipePar = NULL; m_pADOServer = NULL; } void KTInsulateExDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(KTInsulateExDlg) DDX_Control(pDX, IDC_LISTINS, m_wndListCtrl); DDX_Text(pDX, IDC_EDITINSSPEC, m_sInsSpec); DDX_Text(pDX, IDC_EDITMATERIAL, m_sMaterial); DDX_Text(pDX, IDC_EDITINSTHICK, m_dInsThick); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(KTInsulateExDlg, CDialog) //{{AFX_MSG_MAP(KTInsulateExDlg) ON_NOTIFY(NM_CLICK, IDC_LISTINS, OnClickListins) //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_BTADD, &KTInsulateExDlg::OnBnClickedBtadd) END_MESSAGE_MAP() BOOL KTInsulateExDlg::OnCommand(WPARAM wParam, LPARAM lParam) { WORD lWord = 0; switch (LOWORD(wParam)) { case IDOK: case IDCANCEL: { return TRUE; } default: break; } return CDialog::OnCommand(wParam, lParam); } void KTInsulateExDlg::OnClickListins(NMHDR* pNMHDR, LRESULT* pResult) { POSITION ps = m_wndListCtrl.GetFirstSelectedItemPosition(); if (ps != NULL) { int nItem = m_wndListCtrl.GetNextSelectedItem(ps); CString sCode = m_wndListCtrl.GetItemText(nItem,0); CString sDimT = m_wndListCtrl.GetItemText(nItem,1); if (m_pPipePar != NULL) { _tcscpy(m_pPipePar->szInsTag,(LPCTSTR)sCode); _tcscpy(m_pPipePar->szInsDim,(LPCTSTR)sDimT); } } *pResult = 0; } BOOL KTInsulateExDlg::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,80); m_wndListCtrl.InsertColumn(1,_T("标注文字"),LVCFMT_LEFT,80); m_wndListCtrl.InsertColumn(2,_T("说明文字"),LVCFMT_LEFT,150); InitInsDataFromDb(); if (m_pPipePar != NULL) { m_sInsSpec = m_pPipePar->szInsSpec; m_sMaterial = m_pPipePar->szInsMateral; m_dInsThick = m_pPipePar->m_dInsThk; } return TRUE; } void KTInsulateExDlg::UpdateParamDlgFromParam() { InitInsDataFromDb(); } void KTInsulateExDlg::InitInsDataFromDb() { CString sSQL; sSQL = _T("select [保温伴热代号],[标注文字],[说明文字] from AecHeat"); if (m_pADOServer != NULL) { KTValueTable table; m_pADOServer->GetSelData(sSQL,table); m_wndListCtrl.DeleteAllItems(); int nCount = 0,nPos = -1; CStringArray arValues; for (int i = 0;i < table.GetTableLogicSize();i++) { arValues.RemoveAll(); table.GetValueRecord(i,arValues); if (arValues.GetSize() >= 3) { int nCount = m_wndListCtrl.GetItemCount(); m_wndListCtrl.InsertItem(nCount,arValues.GetAt(0),2); m_wndListCtrl.SetItemText(nCount,1,arValues.GetAt(1)); m_wndListCtrl.SetItemText(nCount,2,arValues.GetAt(2)); if (arValues.GetAt(0).CompareNoCase(m_pPipePar->szInsTag) == 0) { nPos = i; } } } if (nPos == -1) nPos = 0; m_wndListCtrl.SetItemState(nPos,LVIS_SELECTED,LVIS_SELECTED); } m_sInsSpec = m_pPipePar->szInsSpec; m_sMaterial = m_pPipePar->szInsMateral; m_dInsThick = m_pPipePar->m_dInsThk; UpdateData(FALSE); } BOOL KTInsulateExDlg::UpdateDataEx() { UpdateData(); _tcscpy(m_pPipePar->szInsSpec,(LPCTSTR)m_sInsSpec); _tcscpy(m_pPipePar->szInsMateral,(LPCTSTR)m_sMaterial); m_pPipePar->m_dInsThk = m_dInsThick; _tcscpy(m_pPipePar->szInsMtr, (LPCTSTR)m_sMaterial); POSITION ps = m_wndListCtrl.GetFirstSelectedItemPosition(); if (ps != NULL) { int nItem = m_wndListCtrl.GetNextSelectedItem(ps); CString sCode = m_wndListCtrl.GetItemText(nItem,0); CString sDimT = m_wndListCtrl.GetItemText(nItem,1); if (m_pPipePar != NULL) { _tcscpy(m_pPipePar->szInsTag,(LPCTSTR)sCode); _tcscpy(m_pPipePar->szInsDim,(LPCTSTR)sDimT); } } return TRUE; } void KTInsulateExDlg::OnBnClickedBtadd() { CTJBWBRDlg dlg; if (IDOK == dlg.DoModal()) { CString sSQL; sSQL.Format(_T("select [保温伴热代号],[说明文字],[标注文字] from AecHeat")); CStringList lstVals; m_pADOServer->GetSelData(sSQL,lstVals); if ( lstVals.Find(dlg.m_sCode) != NULL || lstVals.Find(dlg.m_sRemTxt) != NULL || lstVals.Find(dlg.m_sDimTxt) != NULL) { AfxMessageBox(_T("输入的保温伴热代号或说明文字或标注文字已经存在!")); return; } sSQL.Format(_T("insert into AecHeat ([保温伴热代号],[说明文字],[标注文字]) values ('%s','%s','%s')"),dlg.m_sCode,dlg.m_sRemTxt,dlg.m_sDimTxt); m_pADOServer->ExecuteSQL(sSQL); int i = m_wndListCtrl.GetItemCount(); m_wndListCtrl.InsertItem(i,dlg.m_sCode,2); m_wndListCtrl.SetItemText(i,1,dlg.m_sDimTxt); m_wndListCtrl.SetItemText(i,2,dlg.m_sRemTxt); } }