Files
envi-code/SourceCode/Code2026/PipelineCmd/KTTracingDlg.cpp
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

310 lines
7.5 KiB
C++

#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<nCount;i++)
{
arValue3.RemoveAll();
table.GetValueRecord(i,arValue3);
if (arValue3.GetSize() >= 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;
}