2026-10-04 00:04:20 +08:00
// ValveDlg.cpp : implementation file
2026-09-28 15:28:50 +08:00
//
#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 )
{
2026-10-04 00:04:20 +08:00
AfxMessageBox ( _T ( "没有行选中" ));
2026-09-28 15:28:50 +08:00
}
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 ();
2026-10-04 00:04:20 +08:00
//传入阀门数据
2026-09-28 15:28:50 +08:00
CString sSQL , sText ;
m_CLsValve . SetExtendedStyle ( LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT );
2026-10-04 00:04:20 +08:00
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 );
2026-09-28 15:28:50 +08:00
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 ();
2026-10-04 00:04:20 +08:00
sSQL . Format ( _T ( "SELECT [公称直径],[类型],[端面],[压力],[描述] FROM [AecSpecValve] where 项目名称='%s' and 等级名称='%s' and 公称直径=%d and 类别='%s'" ), m_sProname , m_sSpec , _ttoi ( m_sDn ), m_sValveType );
2026-09-28 15:28:50 +08:00
m_pADOServer -> GetSelData ( sSQL , valueTable , TRUE );
nCount = valueTable . GetTableLogicSize ();
int i = 0 , nSize = 0 , j = 0 ;
for ( i = 0 ; i < nCount ; i ++ )
{
arValue . RemoveAll ();
valueTable . GetValueRecord ( i , arValue );
nSize = arValue . GetSize ();
for ( j = 0 ; j < nSize ; j ++ )
{
sText = arValue . GetAt ( j );
if ( j == 0 )
{
this -> m_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 ;
2026-10-04 00:04:20 +08:00
//传入等级数据
2026-09-28 15:28:50 +08:00
2026-10-04 00:04:20 +08:00
sSQL . Format ( _T ( "SELECT [等级名称] FROM [AecSpecname] where [项目名称]='%s' order by [等级名称]" ), m_sProname );
2026-09-28 15:28:50 +08:00
valueTable . RemoveAll ();
m_pADOServer -> GetSelData ( sSQL , valueTable , TRUE );
nCount = valueTable . GetTableLogicSize ();
m_CSpec . ResetContent ();
for ( int i = 0 ; i < nCount ; i ++ )
{
arValue . RemoveAll ();
valueTable . GetValueRecord ( i , arValue );
sText = arValue . GetAt ( 0 );
m_CSpec . AddString ( sText );
}
valueTable . RemoveAll ();
if ( nCount != 0 )
{
this -> m_CSpec . SetCurSel ( m_CSpec . FindString ( - 1 , m_sSpec ));
}
}
void CValveDlg :: ComboxDn ()
{
CString sSQL = _T ( "" ), sText = _T ( "" );
CStringArray arValue ;
int nCount = 0 ;
CUIIValueTable valueTable ;
2026-10-04 00:04:20 +08:00
//传入等级数据
2026-09-28 15:28:50 +08:00
2026-10-04 00:04:20 +08:00
sSQL . Format ( _T ( "SELECT [公制] FROM [AecDn] order by [公制]" ));
2026-09-28 15:28:50 +08:00
valueTable . RemoveAll ();
m_pADOServer -> GetSelData ( sSQL , valueTable , TRUE );
nCount = valueTable . GetTableLogicSize ();
m_CDn . ResetContent ();
for ( int i = 0 ; i < nCount ; i ++ )
{
arValue . RemoveAll ();
valueTable . GetValueRecord ( i , arValue );
sText = arValue . GetAt ( 0 );
m_CDn . AddString ( sText );
}
valueTable . RemoveAll ();
if ( nCount != 0 )
{
this -> m_CDn . SetCurSel ( m_CDn . FindString ( - 1 , m_sDn ));
}
}