// ValveDlg.cpp : implementation file // #include "StdAfx.h" #include "resource.h" #include "ValveDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CValveDlg dialog CValveDlg::CValveDlg(CWnd* pParent /*=NULL*/) : CDialog(CValveDlg::IDD, pParent) { //{{AFX_DATA_INIT(CValveDlg) m_sLineno = _T(""); m_sValvename = _T(""); m_nInterF = 0; m_sValveType = _T(""); m_dScale = 0.0; //}}AFX_DATA_INIT } void CValveDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CValveDlg) DDX_Control(pDX, IDC_LIST1, m_CLsValve); DDX_Control(pDX, IDC_COMBO2, m_CDn); DDX_Control(pDX, IDC_COMBO1, m_CSpec); DDX_Text(pDX, IDC_EDIT1, m_sLineno); DDX_Text(pDX, IDC_EDIT2, m_sValvename); DDX_Radio(pDX, IDC_RADIOBW, m_nInterF); DDX_Text(pDX, IDC_EDIT3, m_sValveType); DDX_Text(pDX, IDC_EDIT4, m_dScale); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CValveDlg, CDialog) //{{AFX_MSG_MAP(CValveDlg) ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1) ON_CBN_SELENDOK(IDC_COMBO1, OnSelendokCombo1) ON_CBN_SELENDOK(IDC_COMBO2, OnSelendokCombo2) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CValveDlg message handlers void CValveDlg::OnOK() { // TODO: Add extra validation here CDialog::OnOK(); } void CValveDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) { POSITION pos = m_CLsValve.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox(_T("没有行选中")); } else { int nItem = m_CLsValve.GetNextSelectedItem(pos); m_sValvename=m_CLsValve.GetItemText(nItem,1); m_sFace=m_CLsValve.GetItemText(nItem,2); m_dPress=_ttof(m_CLsValve.GetItemText(nItem,3)); } *pResult = 0; UpdateData(FALSE); } void CValveDlg::OnSelendokCombo1() { // TODO: Add your control notification handler code here m_CSpec.GetLBText(m_CSpec.GetCurSel(),m_sSpec); ValveList(); } void CValveDlg::OnSelendokCombo2() { // TODO: Add your control notification handler code here m_CDn.GetLBText(m_CDn.GetCurSel(),m_sDn); ValveList(); } void CValveDlg::SetADOServer(CUIISQLiteServer * pADOServer) { this->m_pADOServer = pADOServer; } BOOL CValveDlg::OnInitDialog() { CDialog::OnInitDialog(); // HBITMAP hmp; CButton * pPicture; m_Bitmap.LoadBitmap(IDB_ValveBW); pPicture = (CButton *)GetDlgItem(IDC_RADIOBW); pPicture->SetBitmap((HBITMAP)m_Bitmap); m_Bitmap1.LoadBitmap(IDB_ValveFG); pPicture = (CButton *)GetDlgItem(IDC_RADIOFG); pPicture->SetBitmap((HBITMAP)m_Bitmap1); m_Bitmap2.LoadBitmap(IDB_ValveSW); pPicture = (CButton *)GetDlgItem(IDC_RADIOSW); pPicture->SetBitmap((HBITMAP)m_Bitmap2); ComboxSpec(); ComboxDn(); //传入阀门数据 CString sSQL,sText; m_CLsValve.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); m_CLsValve.InsertColumn(0,_T("直径"),LVCFMT_LEFT,50,100); m_CLsValve.InsertColumn(1,_T("类型"),LVCFMT_LEFT,100,100); m_CLsValve.InsertColumn(2,_T("端面"),LVCFMT_LEFT,50,100); m_CLsValve.InsertColumn(3,_T("压力"),LVCFMT_LEFT,50,100); m_CLsValve.InsertColumn(4,_T("描述"),LVCFMT_LEFT,150,100); ValveList(); SetWindowText(m_sValveType); m_sDn.TrimRight(_T('.')); int nSel = m_CDn.FindString(0, m_sDn); if (nSel != -1) { m_CDn.SetCurSel(nSel); } return TRUE; } void CValveDlg::ValveList() { CString sSQL,sText; CStringArray arValue; int nCount=0; CUIIValueTable valueTable; m_CLsValve.DeleteAllItems(); sSQL.Format (_T("SELECT [公称直径],[类型],[端面],[压力],[描述] FROM [AecSpecValve] where 项目名称='%s' and 等级名称='%s' and 公称直径=%d and 类别='%s'"),m_sProname,m_sSpec,_ttoi(m_sDn),m_sValveType); m_pADOServer->GetSelData(sSQL,valueTable,TRUE); nCount = valueTable.GetTableLogicSize(); int i = 0,nSize = 0,j = 0; for(i = 0;im_CLsValve.InsertItem(i,sText); } else { this->m_CLsValve.SetItemText(i,j,sText); } } if (0 == i) { m_CLsValve.SetItemState(i,LVIS_SELECTED,LVIS_SELECTED); valueTable.GetValueRecord(i,arValue); m_sValvename = arValue.GetAt(1); UpdateData(FALSE); } } valueTable.RemoveAll(); } void CValveDlg::ComboxSpec() { CString sSQL=_T(""),sText=_T(""); CStringArray arValue; int nCount=0; CUIIValueTable valueTable; //传入等级数据 sSQL.Format(_T("SELECT [等级名称] FROM [AecSpecname] where [项目名称]='%s' order by [等级名称]"),m_sProname); valueTable.RemoveAll(); m_pADOServer->GetSelData(sSQL,valueTable,TRUE); nCount = valueTable.GetTableLogicSize(); m_CSpec.ResetContent(); for(int i = 0;im_CSpec.SetCurSel(m_CSpec.FindString(-1,m_sSpec)); } } void CValveDlg::ComboxDn() { CString sSQL=_T(""),sText=_T(""); CStringArray arValue; int nCount=0; CUIIValueTable valueTable; //传入等级数据 sSQL.Format(_T("SELECT [公制] FROM [AecDn] order by [公制]")); valueTable.RemoveAll(); m_pADOServer->GetSelData(sSQL,valueTable,TRUE); nCount = valueTable.GetTableLogicSize(); m_CDn.ResetContent(); for(int i = 0;im_CDn.SetCurSel(m_CDn.FindString(-1,m_sDn)); } }