1179 lines
26 KiB
C++
1179 lines
26 KiB
C++
#include "stdafx.h"
|
|
#include "DJGXDlg.h"
|
|
#include "uiiado.h"
|
|
#include "PipelineTools.h"
|
|
#include "KTInsulateMainDlg.h"
|
|
#include "AecPipeSupport.h"
|
|
#include "CoreTools.h"
|
|
#include "KTModelLayoutXData.h"
|
|
#include "SpecIndexDlg.h"
|
|
|
|
const LPCTSTR g_pszAecSpecPipe[] = {_T("公称直径"),_T("外径"),_T("壁厚"),_T("类型"),_T("端面"),_T("材质"),_T("表号"),_T("标准号"),_T("外径系列"),_T("描述"),_T("制造类型"),_T("元件代码"),NULL};
|
|
const int g_nColWidths[] = { 90, 60, 60, 120, 60, 180, 80, 180, 80, 180, 80, 140, 0};
|
|
|
|
const LPCTSTR g_pszAecPipeSpecIndex[] = {_T("介质"),_T("介质代号"),_T("最大口径"),_T("设计温度"),_T("设计压力"),_T("法兰等级"),_T("材质"),_T("腐蚀裕度"),NULL};
|
|
const int g_nColWidths2[] = { 200, 80, 80, 80, 80, 80, 140, 80, 0};
|
|
|
|
extern void DLLIMPEXP XDataMapToPipeParam(const AecDbObjXDataMap *pXDataMapSrc, WPipe::PipeParam *pParamL);
|
|
extern void DLLIMPEXP PipeParamConvert2UnitMeters(WPipe::PipeParam *pParam);
|
|
extern void DLLIMPEXP PipeParamConvert2UnitMmeters(WPipe::PipeParam *pParam);
|
|
|
|
double g_minRadio = 1.0;
|
|
|
|
IMPLEMENT_DYNAMIC(CDJGXDlg, CDialog)
|
|
|
|
CDJGXDlg::CDJGXDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CDJGXDlg::IDD, pParent)
|
|
, m_nElSel(0)
|
|
, m_dEl(1000)
|
|
, m_nDDir(0)
|
|
, m_sSerNo(_T("1000"))
|
|
, m_sZoneNo(_T("A"))
|
|
, m_sPipeNo(_T(""))
|
|
, m_dFPLen(10000)
|
|
, m_sParamSetting(_T(""))
|
|
, m_sUnit(_T("00"))
|
|
{
|
|
m_nConnectType = 0;
|
|
m_pDb = NULL;
|
|
m_sCurrSys = _T("");
|
|
m_bLockEl = FALSE;
|
|
m_bFilled = false;
|
|
memset(&m_pipeParam,0,sizeof(WPipe::PipeParam));
|
|
}
|
|
|
|
CDJGXDlg::~CDJGXDlg()
|
|
{
|
|
}
|
|
|
|
void CDJGXDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Control(pDX, IDC_COMBO2, m_wndProCombo);
|
|
DDX_Control(pDX, IDC_COMBO1, m_wndSpecCombo);
|
|
DDX_Control(pDX, IDC_COMBO4, m_wndRadioCombo);
|
|
DDX_Control(pDX, IDC_LIST2, m_wndPipeSpecList);
|
|
DDX_Control(pDX, IDC_LIST1, m_wndPipeSpecIdxList);
|
|
DDX_Radio(pDX, IDC_RADIO3, m_nElSel);
|
|
DDX_Text(pDX, IDC_EDIT5, m_dEl);
|
|
DDX_Radio(pDX, IDC_RADIO1, m_nDDir);
|
|
DDX_Text(pDX, IDC_EDIT1, m_sSerNo);
|
|
DDX_Text(pDX, IDC_EDIT2, m_sZoneNo);
|
|
DDX_Text(pDX, IDC_EDIT3, m_sPipeNo);
|
|
DDX_Text(pDX, IDC_EDIT4, m_dFPLen);
|
|
DDX_Control(pDX, IDC_COMBO3, m_wndComboSys);
|
|
DDX_Text(pDX, IDC_EDIT6, m_sParamSetting);
|
|
DDX_Text(pDX, IDC_EDIT7, m_sUnit);
|
|
DDX_Control(pDX, IDC_EDIT5, m_wndEditEl);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CDJGXDlg, CDialog)
|
|
ON_BN_CLICKED(IDOK, &CDJGXDlg::OnBnClickedOk)
|
|
ON_CBN_SELCHANGE(IDC_COMBO2, &CDJGXDlg::OnCbnSelchangeCombo2)
|
|
ON_CBN_SELCHANGE(IDC_COMBO1, &CDJGXDlg::OnCbnSelchangeCombo1)
|
|
ON_BN_CLICKED(IDC_BUTTON2, &CDJGXDlg::OnBnClickedButton2)
|
|
ON_BN_CLICKED(IDC_BUTTON3, &CDJGXDlg::OnBnClickedButton3)
|
|
ON_BN_CLICKED(IDC_BTADDSPECIDX,&CDJGXDlg::OnBnClickedAddSpecIdx)
|
|
ON_EN_CHANGE(IDC_EDIT2, &CDJGXDlg::OnEnChangeEdit2)
|
|
ON_EN_CHANGE(IDC_EDIT7, &CDJGXDlg::OnEnChangeEdit2)
|
|
ON_CBN_SELCHANGE(IDC_COMBOSYSLAY, &CDJGXDlg::OnCbnSelchangeComboSys)
|
|
ON_NOTIFY(NM_CLICK, IDC_LIST1, &CDJGXDlg::OnNMClickList1)
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CDJGXDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
InitListCtrlStyle();
|
|
|
|
ShowProSpec();
|
|
|
|
ShowRadio();
|
|
|
|
InitLayerSys();
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CDJGXDlg::InitListCtrlStyle()
|
|
{
|
|
CBitmap bmp;
|
|
if (!bmp.LoadBitmap(IDB_BMPSPEC))
|
|
{
|
|
AfxMessageBox(_T("Can't load bitmap: %x\n"), IDB_BMPSPEC);
|
|
ASSERT(FALSE);
|
|
return FALSE;
|
|
}
|
|
|
|
BITMAP bmpObj;
|
|
bmp.GetBitmap(&bmpObj);
|
|
|
|
UINT nFlags = ILC_COLOR24 | ILC_MASK;
|
|
|
|
m_imageList.Create(16, bmpObj.bmHeight, nFlags, 0, 0);
|
|
m_imageList.Add(&bmp, RGB(255, 0, 0));
|
|
|
|
m_wndPipeSpecList.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_SINGLEROW);
|
|
m_wndPipeSpecList.SetImageList(&m_imageList, LVSIL_SMALL);
|
|
|
|
m_wndPipeSpecIdxList.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_SINGLEROW);
|
|
m_wndPipeSpecIdxList.SetImageList(&m_imageList, LVSIL_SMALL);
|
|
|
|
int n = 0;
|
|
while(g_nColWidths[n] > 0)
|
|
{
|
|
m_wndPipeSpecList.InsertColumn(n,g_pszAecSpecPipe[n],LVCFMT_LEFT,g_nColWidths[n]);
|
|
n++;
|
|
}
|
|
|
|
n = 0;
|
|
while(g_nColWidths2[n] > 0)
|
|
{
|
|
m_wndPipeSpecIdxList.InsertColumn(n,g_pszAecPipeSpecIndex[n],LVCFMT_LEFT,g_nColWidths2[n]);
|
|
n++;
|
|
}
|
|
|
|
m_wndEditEl.EnableWindow(!m_bLockEl);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CDJGXDlg::SetOnlyByDN(int nDN)
|
|
{
|
|
}
|
|
|
|
bool CDJGXDlg::ShowProSpec()
|
|
{
|
|
AecDbObjXDataMap xDataMap;
|
|
if (!KTModelLayoutXData::ReadModelXData(KT_PIPEINIT, xDataMap))
|
|
{
|
|
acedAlert(_T("\n系统未初始化!请执行设置带单下初始设置!"));
|
|
return false;
|
|
}
|
|
|
|
CString sPro;
|
|
xDataMap.GetAt(DOC_PIDPROJECT, sPro);
|
|
|
|
CString sSQL;
|
|
sSQL.Format(_T("select distinct [项目名称] from [AecSpecname]"));
|
|
|
|
CStringArray arVals;
|
|
m_pDb->GetSelData(sSQL,arVals);
|
|
|
|
for(int i = 0;i < arVals.GetSize();i++)
|
|
{
|
|
m_wndProCombo.AddString(arVals.GetAt(i));
|
|
}
|
|
|
|
int nSel = 0;
|
|
if ((nSel = m_wndProCombo.FindString(0, sPro)) != -1)
|
|
{
|
|
m_wndProCombo.SetCurSel(nSel);
|
|
}
|
|
else
|
|
{
|
|
m_wndProCombo.SetCurSel(0);
|
|
sPro = arVals.GetAt(0);
|
|
}
|
|
|
|
arVals.RemoveAll();
|
|
sSQL.Format(_T("select distinct [等级名称] from [AecSpecname] where [项目名称]='%s'"),sPro);
|
|
m_pDb->GetSelData(sSQL,arVals);
|
|
|
|
for(int n = 0;n < arVals.GetSize();n++)
|
|
{
|
|
m_wndSpecCombo.AddString(arVals.GetAt(n));
|
|
}
|
|
|
|
nSel = -1;
|
|
if (m_bFilled)
|
|
{
|
|
if ((nSel = m_wndSpecCombo.FindString(0, m_pipeParam.szLevel)) == -1)
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
CString sSpec;
|
|
if (nSel != -1)
|
|
{
|
|
m_wndSpecCombo.SetCurSel(nSel);
|
|
sSpec = arVals.GetAt(nSel);
|
|
}
|
|
else
|
|
{
|
|
sSQL.Format(_T("select [项目名称],[等级名称] from [AecSpecname] where [等级名称]='%s'"), m_pipeParam.szLevel);
|
|
arVals.RemoveAll();
|
|
m_pDb->GetSelData(sSQL, arVals);
|
|
|
|
if (arVals.GetSize() >= 2)
|
|
{
|
|
sPro = arVals.GetAt(0);
|
|
sSpec = arVals.GetAt(1);
|
|
int nPro = m_wndProCombo.FindString(0, sPro);
|
|
if (nPro != -1)
|
|
{
|
|
m_wndProCombo.SetCurSel(nPro);
|
|
OnCbnSelchangeCombo2();
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (nSel == -1 && m_wndSpecCombo.GetCount() > 0)
|
|
{
|
|
m_wndSpecCombo.SetCurSel(0);
|
|
m_wndSpecCombo.GetLBText(0, sSpec);
|
|
}
|
|
|
|
ShowPipeSpecList(sPro,sSpec);
|
|
|
|
return true;
|
|
}
|
|
|
|
bool CDJGXDlg::InitLayerSys()
|
|
{
|
|
//显示当前图层系统
|
|
CStringArray arSyses;
|
|
for (int i = 0;i < m_wndPipeSpecIdxList.GetItemCount();i++)
|
|
{
|
|
//介质
|
|
arSyses.Add(m_wndPipeSpecIdxList.GetItemText(i, 0));
|
|
if (i == 0)
|
|
{
|
|
m_sCurrSys = m_wndPipeSpecIdxList.GetItemText(i, 0);
|
|
}
|
|
}
|
|
|
|
m_wndComboSys.ResetContent();
|
|
|
|
CString sTemp;
|
|
int nCursel = 0;
|
|
for (int i = 0;i < arSyses.GetSize();i++)
|
|
{
|
|
sTemp = arSyses.GetAt(i);
|
|
m_wndComboSys.AddString(sTemp);
|
|
|
|
if (m_sCurrSys.CompareNoCase(sTemp) == 0)
|
|
{
|
|
nCursel = i;
|
|
}
|
|
}
|
|
m_wndComboSys.SetCurSel(nCursel);
|
|
|
|
//获取分系统信息
|
|
//select layname,pipesys,color,linetype,linewidth
|
|
//LAYKEY LAYNAME PIPESYS SYSTEM COLOR LINETYPE LINEWIDTH
|
|
//11 废水管线中心线 管线中心线 废水 4 Continuous:________ 0
|
|
CStringArray arVals;
|
|
PipelineTools::getPipeSysRecord(m_pDb,m_sCurrSys,arVals);
|
|
if (arVals.GetSize() >= 5)
|
|
{
|
|
m_pipeParam.m_nPipeColor = _ttoi(arVals.GetAt(2));
|
|
}
|
|
|
|
m_idCurSys = CoreTools::getLyForPipe(m_sCurrSys);
|
|
|
|
OnCbnSelchangeComboSys();
|
|
|
|
return true;
|
|
}
|
|
|
|
void CDJGXDlg::OnCbnSelchangeComboSys()
|
|
{
|
|
UpdateData();
|
|
|
|
FormatParamSettingAndSpec();
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CDJGXDlg::OnCbnSelchangeCombo2()
|
|
{
|
|
int nCur = m_wndProCombo.GetCurSel();
|
|
if (nCur != -1)
|
|
{
|
|
CString sPro;
|
|
m_wndProCombo.GetLBText(nCur,sPro);
|
|
|
|
m_wndSpecCombo.ResetContent();
|
|
|
|
CStringArray arVals;
|
|
CString sSQL;
|
|
sSQL.Format(_T("select distinct [等级名称] from [AecSpecname] where [项目名称]='%s'"),sPro);
|
|
|
|
m_pDb->GetSelData(sSQL,arVals);
|
|
|
|
for(int n = 0;n < arVals.GetSize();n++)
|
|
{
|
|
m_wndSpecCombo.AddString(arVals.GetAt(n));
|
|
}
|
|
m_wndSpecCombo.SetCurSel(0);
|
|
CString sSpec = arVals.GetAt(0);
|
|
|
|
ShowPipeSpecList(sPro,sSpec);
|
|
}
|
|
}
|
|
|
|
void CDJGXDlg::OnCbnSelchangeCombo1()
|
|
{
|
|
int nCur = m_wndProCombo.GetCurSel();
|
|
if (nCur != -1)
|
|
{
|
|
CString sPro;
|
|
m_wndProCombo.GetLBText(nCur,sPro);
|
|
|
|
nCur = m_wndSpecCombo.GetCurSel();
|
|
if (nCur != -1)
|
|
{
|
|
CString sSpec;
|
|
m_wndSpecCombo.GetLBText(nCur,sSpec);
|
|
|
|
ShowPipeSpecList(sPro,sSpec);
|
|
}
|
|
}
|
|
}
|
|
|
|
bool CDJGXDlg::ShowPipeSpecList(CString& sPro,CString& sSpec)
|
|
{
|
|
m_wndPipeSpecList.DeleteAllItems();
|
|
m_wndPipeSpecIdxList.DeleteAllItems();
|
|
|
|
CString sFields = _T("");
|
|
int n = 0;
|
|
while(g_nColWidths[n] > 0)
|
|
{
|
|
sFields += _T("[");
|
|
sFields += g_pszAecSpecPipe[n];
|
|
sFields += _T("],");
|
|
n++;
|
|
}
|
|
sFields.TrimRight(_T(','));
|
|
|
|
CString sSQL,sDN;
|
|
sSQL.Format(_T("select %s from [AecSpecPipe] where [项目名称]='%s' and [等级名称]='%s' and [短代码]='PIP' order by [公称直径]"),sFields,sPro,sSpec);
|
|
|
|
CUIIValueTable valueTable;
|
|
m_pDb->GetSelData(sSQL,valueTable);
|
|
|
|
int nSel = 0;
|
|
CStringArray arVals;
|
|
for(int i = 0;i < valueTable.GetTableLogicSize();i++)
|
|
{
|
|
arVals.RemoveAll();
|
|
valueTable.GetValueRecord(i,arVals);
|
|
|
|
//DN
|
|
sDN = arVals.GetAt(0);
|
|
m_wndPipeSpecList.InsertItem(i,sDN,0);
|
|
if (m_bFilled)
|
|
{
|
|
if (_ttoi(sDN) == m_pipeParam.m_dDN)
|
|
nSel = i;
|
|
}
|
|
|
|
for(int n = 1;n < arVals.GetSize();n++)
|
|
{
|
|
m_wndPipeSpecList.SetItemText(i,n,arVals.GetAt(n));
|
|
}
|
|
}
|
|
|
|
m_wndPipeSpecList.SetItemState(nSel,LVIS_SELECTED,LVIS_SELECTED);
|
|
|
|
n = 0;
|
|
sFields = _T("");
|
|
while(g_nColWidths2[n] > 0)
|
|
{
|
|
sFields += _T("[");
|
|
sFields += g_pszAecPipeSpecIndex[n];
|
|
sFields += _T("],");
|
|
n++;
|
|
}
|
|
sFields.TrimRight(_T(','));
|
|
|
|
/*
|
|
[等级号] VARCHAR(50),
|
|
[介质] VARCHAR(256),
|
|
[介质代号] VARCHAR(256),
|
|
[最大口径] INTEGER,
|
|
[设计温度] INTEGER,
|
|
[设计压力] FLOAT,
|
|
[法兰等级] VARCHAR(50),
|
|
[材质] varchar(256),
|
|
[腐蚀裕度] float);
|
|
*/
|
|
|
|
sSQL.Format(_T("select %s from [AecPipeSpecIndex] where [等级号]='%s'"),sFields,sSpec);
|
|
|
|
valueTable.RemoveAll(TRUE);
|
|
m_pDb->GetSelData(sSQL,valueTable);
|
|
|
|
CString sMedia;
|
|
nSel = 0;
|
|
for(int i = 0;i < valueTable.GetTableLogicSize();i++)
|
|
{
|
|
arVals.RemoveAll();
|
|
valueTable.GetValueRecord(i,arVals);
|
|
|
|
sMedia = arVals.GetAt(0);
|
|
m_wndPipeSpecIdxList.InsertItem(i,sMedia,0);
|
|
|
|
if (m_bFilled)
|
|
{
|
|
if (sMedia.CompareNoCase(m_pipeParam.szSys) == 0)
|
|
nSel = i;
|
|
}
|
|
|
|
for(int n = 1;n < arVals.GetSize();n++)
|
|
{
|
|
m_wndPipeSpecIdxList.SetItemText(i,n,arVals.GetAt(n));
|
|
}
|
|
}
|
|
|
|
m_wndPipeSpecIdxList.SetItemState(nSel,LVIS_SELECTED,LVIS_SELECTED);
|
|
|
|
|
|
ShowPipeSpecLayer();
|
|
|
|
InitLayerSys();
|
|
|
|
return true;
|
|
}
|
|
|
|
//8-200 之间
|
|
int randint_range(int n, int m) {//产生n~m间的随机数(包括m和n)
|
|
double base = ((double)rand()) / RAND_MAX;
|
|
int res = n + (base * (double)(m - n + 1));
|
|
return res;
|
|
}
|
|
|
|
void CDJGXDlg::ShowPipeSpecLayer()
|
|
{
|
|
int nColor = -1;
|
|
CString sName,sLayer,sDimTxt,sSQL,sFields,sSys;
|
|
/*
|
|
[LAYKEY] varchar(50),
|
|
[LAYNAME] varchar(50),
|
|
[PIPESYS] varchar(50),
|
|
[SYSTEM] varchar(50),
|
|
[COLOR] varchar(50),
|
|
[LINETYPE] varchar(50),
|
|
[LINEWIDTH] varchar(50),
|
|
[DIMKEY] varchar(50),
|
|
[MATERIAL] varchar(50));
|
|
*/
|
|
sFields = _T("LAYKEY,LAYNAME,PIPESYS,[SYSTEM],COLOR,LINETYPE,LINEWIDTH,DIMKEY,MATERIAL");
|
|
int nRes = 0;
|
|
|
|
for (int i = 0;i < m_wndPipeSpecIdxList.GetItemCount();i++)
|
|
{
|
|
/*
|
|
[介质] VARCHAR(256),
|
|
[介质代号] VARCHAR(256),
|
|
[最大口径] INTEGER,
|
|
[设计温度] INTEGER,
|
|
[设计压力] FLOAT,
|
|
[法兰等级] VARCHAR(50),
|
|
[材质] varchar(256),
|
|
[腐蚀裕度] float);
|
|
*/
|
|
|
|
sName = m_wndPipeSpecIdxList.GetItemText(i, 0); //[介质]
|
|
sDimTxt = m_wndPipeSpecIdxList.GetItemText(i, 1);//[介质代号]
|
|
|
|
if (i == 0)
|
|
m_sCurrSys = sSys;
|
|
|
|
sLayer.Format(_T("%s边线"),sName);
|
|
sSQL.Format(_T("select * from [WConfig_CN] where [LAYNAME]='%s'"),sLayer);
|
|
|
|
if ( m_pDb->IsSelEmpty(sSQL))
|
|
{
|
|
/*
|
|
[LAYKEY] varchar(50),
|
|
[LAYNAME] varchar(50),
|
|
[PIPESYS] varchar(50),
|
|
[SYSTEM] varchar(50),
|
|
[COLOR] varchar(50),
|
|
[LINETYPE] varchar(50),
|
|
[LINEWIDTH] varchar(50),
|
|
[DIMKEY] varchar(50),
|
|
[MATERIAL] varchar(50));
|
|
*/
|
|
|
|
nColor = randint_range(8, 200);
|
|
|
|
//边线
|
|
sSys = _T("管线外边线");
|
|
sSQL.Format(_T("insert into [WConfig_CN] (%s) values ('%d','%s','%s','%s','%d','%s','%s','%s','%s' )"),
|
|
sFields,nColor, sLayer, sSys, sName,nColor,_T("Continuous"),_T("0.0"), sDimTxt,sDimTxt);
|
|
nRes = m_pDb->ExecuteSQL(sSQL);
|
|
|
|
//中心线
|
|
nColor = randint_range(1, 7);
|
|
sLayer.Format(_T("%s中心线"), sName);
|
|
sSys = _T("管线中心线");
|
|
|
|
sSQL.Format(_T("insert into [WConfig_CN] (%s) values ('%d','%s','%s','%s','%d','%s','%s','%s','%s' )"),
|
|
sFields,nColor, sLayer, sSys, sName, nColor, _T("CENTER2"), _T("0.0"), sDimTxt, sDimTxt);
|
|
nRes = m_pDb->ExecuteSQL(sSQL);
|
|
}
|
|
}
|
|
}
|
|
|
|
bool CDJGXDlg::ShowRadio()
|
|
{
|
|
CString sSQL;
|
|
sSQL.Format(_T("select [曲率半径] from [AecElbowradius] order by [曲率半径]"));
|
|
|
|
CStringArray arVals;
|
|
m_pDb->GetSelData(sSQL,arVals);
|
|
|
|
for(int i = 0;i < arVals.GetSize();i++)
|
|
{
|
|
m_wndRadioCombo.AddString(arVals.GetAt(i));
|
|
}
|
|
m_wndRadioCombo.SetCurSel(2);
|
|
return true;
|
|
}
|
|
|
|
static void TextToApp(WPipe::PipeParam& pparam, const CString& sText)
|
|
{
|
|
//BE 坡口焊
|
|
//BW 对焊
|
|
//MNPT
|
|
//MGE
|
|
//SW 承插
|
|
//PE 平端
|
|
//SCRD 螺纹
|
|
//SAWH 螺旋埋弧焊
|
|
//TE 螺纹端
|
|
//ISNS 内螺纹,暗杆
|
|
//ISRS 内螺纹, 明杆
|
|
|
|
//FLGD 法兰型
|
|
|
|
pparam.m_app = WPipe::eButtweld;
|
|
pparam.m_nConnectType = 0;//焊接
|
|
|
|
if (sText.CompareNoCase(_T("SW") ) == 0)
|
|
{
|
|
pparam.m_app = WPipe::eSanitary;
|
|
pparam.m_nConnectType = 1;//承插
|
|
}
|
|
else if(sText.CompareNoCase(_T("SCRD") ) == 0 ||
|
|
sText.CompareNoCase(_T("SAWH")) == 0 ||
|
|
sText.CompareNoCase(_T("TE")) == 0 ||
|
|
sText.CompareNoCase(_T("ISNS")) == 0 ||
|
|
sText.CompareNoCase(_T("ISRS")) == 0)
|
|
{
|
|
pparam.m_app = WPipe::eVictaulic;
|
|
pparam.m_nConnectType = 2;//螺纹
|
|
}
|
|
else if(sText.CompareNoCase(_T("FLGD") ) == 0 ||
|
|
sText.CompareNoCase(_T("FG")) == 0)
|
|
{
|
|
pparam.m_app = WPipe::eFlange;
|
|
pparam.m_nConnectType = 3;//法兰
|
|
}
|
|
}
|
|
|
|
static BOOL IsGSFMaterial(CString& sMaterial,CString &sODNo)
|
|
{
|
|
//目前只能按照材质判断
|
|
if (sMaterial.Find(_T("衬塑")) != -1 ||
|
|
sMaterial.Find(_T("HG/T 20538")) != -1)
|
|
{
|
|
sODNo = _T("GSF");
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
static bool IsPlasticsMat(CString &sMaterial, CString &sODNo)
|
|
{
|
|
const CString sPlastic = _T("UPVC CPVC PVC-C PP-H (PE) PE100 HDPE");
|
|
|
|
CStringArray arTxts;
|
|
CoreTools::SplitStrintToArray(sPlastic, arTxts, _T(' '));
|
|
|
|
for (int i = 0; i < arTxts.GetSize(); i++)
|
|
{
|
|
if (sMaterial.Find(arTxts.GetAt(i)) != -1)
|
|
{
|
|
sODNo = arTxts.GetAt(i);
|
|
//以下 PVC-C PP-H PE100 的国标数据 替代 PVC
|
|
if (sODNo.CompareNoCase(_T("PVC-C")) == 0)
|
|
sODNo = _T("CPVC");
|
|
|
|
if (sODNo.CompareNoCase(_T("(PE)")) == 0)
|
|
sODNo = _T("PE");
|
|
|
|
if (sODNo.CompareNoCase(_T("PE100")) == 0)
|
|
sODNo = _T("PE");
|
|
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static BOOL IsSRPEMaterial(CString &sMaterial, CString &sODNo)
|
|
{
|
|
//目前只能按照材质判断
|
|
if (sMaterial.Find(_T("钢骨架")) != -1 ||
|
|
sMaterial.Find(_T("CJ/T 123")) != -1)
|
|
{
|
|
sODNo = _T("SRPE");
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
void CDJGXDlg::QueryFlangOnPipe()
|
|
{
|
|
if (m_pipeParam.m_nConnectType == 3 ||
|
|
m_pipeParam.m_nConnectType == 5)
|
|
{
|
|
double dWD = 0, dWh = 0, dThk = 0, dN = 0;
|
|
if (TDbPipeSupport::QueryFlangData(m_pDb
|
|
, m_pipeParam.m_dDN
|
|
, m_pipeParam.m_dPress
|
|
, dWD
|
|
, dWh
|
|
, dThk
|
|
, dN
|
|
, CoreTools::GetCurrentProject()
|
|
, m_pipeParam.szLevel))
|
|
{
|
|
m_pipeParam.m_dInterfaceL = dWh;
|
|
m_pipeParam.m_dInterfaceD = dWD;
|
|
}
|
|
}
|
|
else if (m_pipeParam.m_nConnectType == 1)//承插
|
|
{
|
|
//
|
|
}
|
|
else if (m_pipeParam.m_nConnectType == 2)//螺纹
|
|
{
|
|
//
|
|
}
|
|
}
|
|
|
|
void CDJGXDlg::OnBnClickedOk()
|
|
{
|
|
UpdateData();
|
|
|
|
m_bFilled = false;
|
|
FillPipeParam();
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void CDJGXDlg::FillPipeParam()
|
|
{
|
|
memset(&m_pipeParam,0,sizeof(WPipe::PipeParam));
|
|
|
|
CStringArray arVals;
|
|
int nItem = -1;
|
|
POSITION ps = m_wndPipeSpecList.GetFirstSelectedItemPosition();
|
|
if (ps != NULL)
|
|
{
|
|
nItem = m_wndPipeSpecList.GetNextSelectedItem(ps);
|
|
if (nItem == -1)
|
|
{
|
|
AfxMessageBox(_T("请选择公称直径行!"));
|
|
return;
|
|
}
|
|
}
|
|
|
|
//SQL查询条件
|
|
//[公称直径]=%d and [等级名称]='%s' and [项目]='%s'
|
|
CString sWhere,sPro;
|
|
int nSel = m_wndProCombo.GetCurSel();
|
|
if (nSel != -1)
|
|
{
|
|
m_wndProCombo.GetLBText(nSel, sPro);
|
|
|
|
}
|
|
|
|
//等级
|
|
CString sSpec;
|
|
int nCur = m_wndSpecCombo.GetCurSel();
|
|
if (nCur != -1)
|
|
{
|
|
m_wndSpecCombo.GetLBText(nCur,sSpec);
|
|
_tcscpy(m_pipeParam.szLevel,sSpec);
|
|
}
|
|
|
|
//公称
|
|
CString sText,sSQL;
|
|
sText = m_wndPipeSpecList.GetItemText(nItem,0);
|
|
m_pipeParam.m_dDN = _ttof(sText);
|
|
m_pipeParam.m_dD = m_pipeParam.m_dDN;
|
|
|
|
sWhere.Format(_T("[公称直径]=%d and [等级名称]='%s' and [项目名称]='%s'"),(int)(m_pipeParam.m_dDN+0.5),m_pipeParam.szLevel,sPro);
|
|
|
|
//外径
|
|
sText = m_wndPipeSpecList.GetItemText(nItem,1);
|
|
m_pipeParam.m_dOD = _ttof(sText);
|
|
|
|
//壁厚
|
|
sText = m_wndPipeSpecList.GetItemText(nItem,2);
|
|
m_pipeParam.m_dThick = _ttof(sText);
|
|
|
|
switch(m_nDDir)
|
|
{
|
|
case 0:
|
|
{
|
|
m_pipeParam.m_dD = m_pipeParam.m_dDN;
|
|
m_pipeParam.m_eD = WPipe::eDN;
|
|
break;
|
|
}
|
|
case 1:
|
|
{
|
|
m_pipeParam.m_dD = m_pipeParam.m_dOD;
|
|
m_pipeParam.m_eD = WPipe::eOD;
|
|
break;
|
|
}
|
|
case 2:
|
|
{
|
|
m_pipeParam.m_dD = m_pipeParam.m_dOD - 2.0 * m_pipeParam.m_dThick;
|
|
m_pipeParam.m_eD = WPipe::eID;
|
|
break;
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
|
|
//标高
|
|
switch(m_nElSel)
|
|
{
|
|
case 0://中心线
|
|
{
|
|
break;
|
|
}
|
|
case 1: //顶参考基准
|
|
{
|
|
m_dEl -= m_pipeParam.m_dOD / 2.0;
|
|
break;
|
|
}
|
|
case 2://底参考基准
|
|
{
|
|
m_dEl += m_pipeParam.m_dOD / 2.0;
|
|
break;
|
|
}
|
|
}
|
|
m_pipeParam.m_dEl = m_dEl;
|
|
|
|
//曲率半径
|
|
m_pipeParam.m_dRRatio = 3.0;//默认
|
|
m_pipeParam.m_nRadioOn = 0;//按曲率
|
|
nSel = m_wndRadioCombo.GetCurSel();
|
|
if (nSel != -1)
|
|
{
|
|
m_wndRadioCombo.GetLBText(nSel, sText);
|
|
m_pipeParam.m_dRRatio = _ttof(sText);
|
|
}
|
|
|
|
//管道类型
|
|
//根据端面确定 焊接 承插 螺纹 法兰 卡箍
|
|
m_pipeParam.m_app = WPipe::eButtweld;
|
|
TextToApp(m_pipeParam, m_wndPipeSpecList.GetItemText(nItem, 4));
|
|
|
|
//法兰端面
|
|
_tcscpy(m_pipeParam.m_szEndF, _T("PE"));
|
|
sSQL.Format(_T("select distinct [端面] from [AecSpecFlange] where %s"), sWhere);
|
|
arVals.RemoveAll();
|
|
m_pDb->GetSelData(sSQL, arVals);
|
|
if (arVals.GetSize() > 0)
|
|
{
|
|
_tcscpy(m_pipeParam.m_szEndF, arVals.GetAt(0));
|
|
}
|
|
|
|
//垫片信息 --> //[材质],[压力],[垫片厚度],[描述]
|
|
sSQL.Format(_T("select distinct [材质],[压力],[垫片厚度],[描述] from [AecSpecGasket] where %s"), sWhere);
|
|
arVals.RemoveAll();
|
|
m_pDb->GetSelData(sSQL, arVals);
|
|
if (arVals.GetSize() >= 4)
|
|
{
|
|
CString sGaskets;
|
|
for (int ii = 0; ii < arVals.GetSize(); ii++)
|
|
{
|
|
sGaskets += arVals.GetAt(ii);
|
|
if (ii < arVals.GetSize() - 1)
|
|
sGaskets += _T('/');
|
|
}
|
|
_tcscpy(m_pipeParam.m_szGastInf, sGaskets);
|
|
m_pipeParam.m_dPress = _ttof(arVals.GetAt(1));//取垫片压力
|
|
}
|
|
|
|
//法兰管分段长度
|
|
m_pipeParam.m_dInterfaceL3 = m_dFPLen;
|
|
|
|
//查询变径 由使用过程查询
|
|
|
|
//管号
|
|
_tcscpy(m_pipeParam.szPipeno, m_sPipeNo);
|
|
|
|
//管道材质
|
|
sText = m_wndPipeSpecList.GetItemText(nItem, 5);
|
|
_tcscpy(m_pipeParam.szMertial, (LPCTSTR)sText);
|
|
|
|
//管件材质
|
|
sSQL.Format(_T("select distinct [材质] from [AecSpecFit] where [公称直径]=%d and [类别]='管件' and [等级名称]='%s'"), (int)(m_pipeParam.m_dDN + 0.5), m_pipeParam.szLevel);
|
|
arVals.RemoveAll();
|
|
m_pDb->GetSelData(sSQL, arVals);
|
|
|
|
if (arVals.GetSize() > 0)
|
|
{
|
|
_tcscpy(m_pipeParam.szMertialFit, arVals.GetAt(0));
|
|
}
|
|
|
|
CString sODNo = _T("");
|
|
sODNo = m_wndPipeSpecList.GetItemText(nItem,8);
|
|
|
|
//确认是衬塑管,衬塑管法兰连接
|
|
if (IsGSFMaterial(sText,sODNo))
|
|
{
|
|
//sODNo = _T("GSF");
|
|
m_pipeParam.m_nRadioOn = 1;//必须按结构长度
|
|
m_pipeParam.m_eD = WPipe::eDN;//DN
|
|
m_pipeParam.m_nConnectType = 3;//必须法兰
|
|
m_pipeParam.m_dRRatio = 1.5;//默认
|
|
}
|
|
else if (IsPlasticsMat(sText, sODNo))
|
|
{
|
|
m_pipeParam.m_nRadioOn = 1;//必须按结构长度
|
|
m_pipeParam.m_eD = WPipe::eOD;//DN
|
|
m_pipeParam.m_nConnectType = 1;//必须承插
|
|
}
|
|
else if (IsSRPEMaterial(sText, sODNo))
|
|
{
|
|
|
|
}
|
|
|
|
_tcscpy(m_pipeParam.szODSn, sODNo);
|
|
|
|
//区号
|
|
_tcscpy(m_pipeParam.szZoneNo, m_sZoneNo);
|
|
_tcscpy(m_pipeParam.szUnitNo, m_sUnit);
|
|
|
|
int nItem2 = 0;
|
|
ps = m_wndPipeSpecIdxList.GetFirstSelectedItemPosition();
|
|
if (ps != NULL)
|
|
{
|
|
nItem2 = m_wndPipeSpecIdxList.GetNextSelectedItem(ps);
|
|
if (nItem2 == -1)
|
|
{
|
|
AfxMessageBox(_T("请选择管道等级索引!"));
|
|
return;
|
|
}
|
|
}
|
|
|
|
//表号
|
|
sText = m_wndPipeSpecList.GetItemText(nItem, 6);
|
|
_tcscpy(m_pipeParam.szShtNo, sText);
|
|
|
|
//描述
|
|
sText = m_wndPipeSpecList.GetItemText(nItem, 9);
|
|
_tcscpy(m_pipeParam.szDescr, sText);
|
|
|
|
//介质 代号
|
|
sText = m_wndPipeSpecIdxList.GetItemText(nItem2, 1);
|
|
_tcscpy(m_pipeParam.szMedia, sText);
|
|
|
|
//上面已经取了垫片压了,
|
|
//再次确认转为法兰压力,
|
|
if (m_pipeParam.m_dPress < 1.e-2)
|
|
{
|
|
sSQL.Format(_T("select distinct [压力] from [AecSpecFlange] where %s"), sWhere);
|
|
arVals.RemoveAll();
|
|
m_pDb->GetSelData(sSQL,arVals);
|
|
if (arVals.GetSize() > 0)
|
|
{
|
|
m_pipeParam.m_dPress = _ttof(arVals.GetAt(0));
|
|
}
|
|
}
|
|
|
|
//压力
|
|
if (m_pipeParam.m_dPress < 1.e-3)
|
|
{
|
|
sText = m_wndPipeSpecIdxList.GetItemText(nItem2, 5);
|
|
sText.TrimLeft(_T("PN"));
|
|
m_pipeParam.m_dPress = _ttof(sText);
|
|
}
|
|
|
|
|
|
//系统
|
|
//确认创建图层
|
|
int nCursel = m_wndComboSys.GetCurSel();
|
|
if (nCursel == -1)
|
|
{
|
|
AfxMessageBox(_T("请选择绘制管线的系统!"));
|
|
return;
|
|
}
|
|
|
|
m_wndComboSys.GetLBText(nCursel,m_sCurrSys);
|
|
|
|
//创建图层 外,中
|
|
CoreTools::getLyByPipeSys(m_sCurrSys, true);
|
|
CoreTools::getLyByPipeSys(m_sCurrSys, false);
|
|
CoreTools::getLyForPipe(m_sCurrSys);
|
|
|
|
//获取分系统信息
|
|
//select layname,pipesys,color,linetype,linewidth
|
|
//LAYKEY LAYNAME PIPESYS SYSTEM COLOR LINETYPE LINEWIDTH
|
|
//11 废水管线中心线 管线中心线 废水 4 Continuous:________ 0
|
|
arVals.RemoveAll();
|
|
PipelineTools::getPipeSysRecord(m_pDb, m_sCurrSys, arVals);
|
|
if (arVals.GetSize() >= 5)
|
|
{
|
|
m_pipeParam.m_nPipeColor = _ttoi(arVals.GetAt(2));
|
|
}
|
|
|
|
_tcscpy(m_pipeParam.szSys,m_sCurrSys);
|
|
m_idCurSys = CoreTools::getLyForPipe(m_sCurrSys);
|
|
|
|
//保温伴热
|
|
|
|
//查询接口 信息
|
|
QueryFlangOnPipe();
|
|
|
|
m_bFilled = true;
|
|
}
|
|
|
|
//保温伴热
|
|
void CDJGXDlg::OnBnClickedButton2()
|
|
{
|
|
UpdateData();
|
|
|
|
KTInsulateMainDlg dlg;
|
|
dlg.SetADOServer(m_pDb);
|
|
|
|
WPipe::PipeParam param;
|
|
memset(¶m,0,sizeof(WPipe::PipeParam));
|
|
|
|
FillPipeParam();
|
|
GetPipeParam(¶m);
|
|
|
|
dlg.SetPipeParam(¶m);
|
|
if (IDOK == dlg.DoModal())
|
|
{
|
|
_tcscpy(m_pipeParam.szInsMtr,param.szInsMtr);
|
|
m_pipeParam.m_dInsThk = param.m_dInsThk;
|
|
m_pipeParam.m_nInsAndHead = param.m_nInsAndHead;
|
|
|
|
_tcscpy(m_pipeParam.szInsSpec,param.szInsSpec);
|
|
_tcscpy(m_pipeParam.szInsMateral,param.szInsMateral);
|
|
_tcscpy(m_pipeParam.szInsTag,param.szInsTag);
|
|
_tcscpy(m_pipeParam.szInsDim,param.szInsDim);
|
|
_tcscpy(m_pipeParam.szTraMtoInfo,param.szTraMtoInfo);
|
|
|
|
FormatParamSettingAndSpec();
|
|
UpdateData(FALSE);
|
|
}
|
|
}
|
|
|
|
void CDJGXDlg::FormatParamSettingAndSpec()
|
|
{
|
|
//介质压力
|
|
CString sZone, sDN, sPP, sNo, sGrade;
|
|
CString sText;
|
|
sText.Format(_T("%s"), m_pipeParam.szMedia);
|
|
sPP = sText;
|
|
m_sParamSetting = sText + _T("-");
|
|
|
|
sText.Format(_T("%s"), m_pipeParam.szLevel);
|
|
sGrade = sText;
|
|
m_sParamSetting += sText + _T("-");
|
|
|
|
sText.Format(_T("%d"), (int)m_pipeParam.m_dDN);
|
|
sDN = sText;
|
|
m_sParamSetting += sText + _T("-");
|
|
|
|
sText.Format(_T("%.1f"), m_pipeParam.m_dRRatio);
|
|
m_sParamSetting += sText + _T("-");
|
|
|
|
sText.Format(_T("%s"), m_pipeParam.szInsMtr);
|
|
sText.TrimRight(_T('-'));
|
|
if (!sText.IsEmpty())
|
|
{
|
|
m_sParamSetting += sText + _T("-");
|
|
}
|
|
|
|
sText.Format(_T("%.1f"), m_pipeParam.m_dInsThk);
|
|
|
|
//参数=介质-等级-DN-曲率-保温-保温厚度
|
|
m_sParamSetting += sText;
|
|
|
|
CString sAdd;
|
|
if ( _tcslen(m_pipeParam.szInsMtr) > 0 ) sAdd = _T("保温");
|
|
if ( _tcslen(m_pipeParam.szTraMtoInfo) > 0 ) sAdd += _T("伴热");
|
|
|
|
//管线号= 区号-单元号-顺序号-DN-等级-保温伴热
|
|
m_sPipeNo.Format(_T("%s-%s-%s-%s-%s-%s"), m_sZoneNo,m_sUnit, m_sSerNo,sDN,sGrade, sAdd);
|
|
m_sPipeNo.TrimRight(_T('-'));
|
|
}
|
|
|
|
//分系统设置
|
|
void CDJGXDlg::OnBnClickedButton3()
|
|
{
|
|
CStringArray arSyses;
|
|
if (!PipelineTools::setLayerSys(m_pDb, arSyses))
|
|
{
|
|
return;
|
|
}
|
|
|
|
m_wndComboSys.ResetContent();
|
|
for (int i = 0; i < arSyses.GetSize(); i++)
|
|
{
|
|
m_wndComboSys.AddString(arSyses.GetAt(i));
|
|
}
|
|
|
|
if (arSyses.GetSize() > 0)
|
|
{
|
|
m_wndComboSys.SetCurSel(0);
|
|
m_wndComboSys.GetLBText(0, m_sCurrSys);
|
|
}
|
|
}
|
|
|
|
void CDJGXDlg::OnBnClickedAddSpecIdx()
|
|
{
|
|
//等级
|
|
CString sSpec,sSQL,sPro;
|
|
int nCur = m_wndSpecCombo.GetCurSel();
|
|
if (nCur != -1)
|
|
{
|
|
m_wndSpecCombo.GetLBText(nCur, sSpec);
|
|
}
|
|
else
|
|
{
|
|
AfxMessageBox(_T("请选择等级!"));
|
|
return;
|
|
}
|
|
|
|
int nPro = m_wndProCombo.GetCurSel();
|
|
if (nPro != -1)
|
|
{
|
|
m_wndProCombo.GetLBText(nPro, sPro);
|
|
}
|
|
else
|
|
{
|
|
AfxMessageBox(_T("请选择项目!"));
|
|
return;
|
|
}
|
|
|
|
CSpecIndexDlg dlg;
|
|
if (m_wndPipeSpecIdxList.GetItemCount() > 0)
|
|
{
|
|
dlg.m_sMaterial = m_wndPipeSpecIdxList.GetItemText(0, 6);
|
|
dlg.m_nMaxD = _ttoi(m_wndPipeSpecIdxList.GetItemText(0,2));
|
|
dlg.m_sFlgPN = m_wndPipeSpecIdxList.GetItemText(0, 5);
|
|
}
|
|
|
|
dlg.m_pDb = m_pDb;
|
|
if (IDOK == dlg.DoModal())
|
|
{
|
|
//[等级号] VARCHAR(50),
|
|
//[介质] VARCHAR(256),
|
|
//[介质代号] VARCHAR(256),
|
|
//[最大口径] INTEGER,
|
|
//[设计温度] INTEGER,
|
|
//[设计压力] FLOAT,
|
|
//[法兰等级] VARCHAR(50),
|
|
//[材质] varchar(256),
|
|
//[腐蚀裕度] float);
|
|
|
|
sSQL.Format(_T("insert into [AecPipeSpecIndex] ([等级号],[介质],[介质代号],[最大口径],[设计温度],[设计压力],[法兰等级],[材质],[腐蚀裕度])\
|
|
values ('%s','%s','%s',%d,%d,%.2f,'%s','%s',%.1f)"),
|
|
sSpec, dlg.m_sMedia, dlg.m_sMediaCode, dlg.m_nMaxD, dlg.m_nTmp, dlg.m_dPress, dlg.m_sFlgPN, dlg.m_sMaterial, dlg.m_dFsYd);
|
|
|
|
if (m_pDb->ExecuteSQL(sSQL))
|
|
{
|
|
ShowPipeSpecList(sPro, sSpec);
|
|
}
|
|
}
|
|
}
|
|
|
|
void CDJGXDlg::SetFromXDataMap(AecDbObjXDataMap *pXDataMap)
|
|
{
|
|
if (pXDataMap != NULL)
|
|
{
|
|
pXDataMap->GetAt(PIPE_ZONE, m_sZoneNo);
|
|
pXDataMap->GetAt(KEY_NO, m_sSerNo);
|
|
|
|
//*-*-*-*-*-
|
|
pXDataMap->GetAt(PIPE_NO, m_sPipeNo);
|
|
|
|
//管线号= 区号-单元号-顺序号-DN-等级-保温伴热
|
|
CStringArray arTxts;
|
|
CoreTools::SplitString(m_sPipeNo, _T('-'), arTxts);
|
|
if (arTxts.GetSize() > 2)
|
|
m_sUnit = arTxts.GetAt(1);
|
|
|
|
WPipe::PipeParam param;
|
|
memset(¶m, 0, sizeof(WPipe::PipeParam));
|
|
XDataMapToPipeParam(pXDataMap, ¶m);
|
|
|
|
SetShowParam(¶m);
|
|
}
|
|
}
|
|
|
|
void CDJGXDlg::SetShowParam(WPipe::PipeParam* pParam)
|
|
{
|
|
if (pParam != NULL)
|
|
{
|
|
memcpy(&m_pipeParam,pParam,sizeof(WPipe::PipeParam));
|
|
m_bFilled = true;
|
|
m_dEl = pParam->m_dEl;
|
|
}
|
|
}
|
|
|
|
bool CDJGXDlg::GetPipeParam(WPipe::PipeParam* pParam) const
|
|
{
|
|
if (pParam != NULL)
|
|
{
|
|
memcpy(pParam,&m_pipeParam,sizeof(WPipe::PipeParam));
|
|
pParam->nPIPCmd = 1;
|
|
//如果是米单位
|
|
PipeParamConvert2UnitMeters(pParam);
|
|
|
|
}
|
|
return m_bFilled;
|
|
}
|
|
|
|
void CDJGXDlg::OnEnChangeEdit2()
|
|
{
|
|
UpdateData();
|
|
FillPipeParam();
|
|
FormatParamSettingAndSpec();
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
|
|
void CDJGXDlg::OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult)
|
|
{
|
|
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
|
|
if ( pNMItemActivate->iItem != -1 )
|
|
{
|
|
CString sText;
|
|
CString sMedia = m_wndPipeSpecIdxList.GetItemText(pNMItemActivate->iItem,0);
|
|
for(int i = 0;i < m_wndComboSys.GetCount();i++)
|
|
{
|
|
m_wndComboSys.GetLBText(i,sText);
|
|
if (sMedia.Find(sText) != -1)
|
|
{
|
|
m_wndComboSys.SetCurSel(i);
|
|
break;
|
|
}
|
|
}
|
|
|
|
UpdateData();
|
|
FillPipeParam();
|
|
FormatParamSettingAndSpec();
|
|
UpdateData(FALSE);
|
|
}
|
|
*pResult = 0;
|
|
}
|