Files
envi-code/SourceCode/Code2026/PIDLineCmd/ValveDlg.cpp
T
2026-09-28 15:28:50 +08:00

263 lines
5.5 KiB
C++

// 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;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;
//传入等级数据
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;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;
//传入等级数据
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;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));
}
}