2026-10-04 00:04:20 +08:00
#include "stdafx.h"
2026-09-28 15:28:50 +08:00
#include "DJGXDlg.h"
#include "uiiado.h"
#include "PipelineTools.h"
#include "KTInsulateMainDlg.h"
#include "AecPipeSupport.h"
#include "CoreTools.h"
#include "KTModelLayoutXData.h"
#include "SpecIndexDlg.h"
2026-10-04 00:04:20 +08:00
const LPCTSTR g_pszAecSpecPipe [] = { _T ( "公称直径" ), _T ( "外径" ), _T ( "壁厚" ), _T ( "类型" ), _T ( "端面" ), _T ( "材质" ), _T ( "表号" ), _T ( "标准号" ), _T ( "外径系列" ), _T ( "描述" ), _T ( "制造类型" ), _T ( "元件代码" ), NULL };
2026-09-28 15:28:50 +08:00
const int g_nColWidths [] = { 90 , 60 , 60 , 120 , 60 , 180 , 80 , 180 , 80 , 180 , 80 , 140 , 0 };
2026-10-04 00:04:20 +08:00
const LPCTSTR g_pszAecPipeSpecIndex [] = { _T ( "介质" ), _T ( "介质代号" ), _T ( "最大口径" ), _T ( "设计温度" ), _T ( "设计压力" ), _T ( "法兰等级" ), _T ( "材质" ), _T ( "腐蚀裕度" ), NULL };
2026-09-28 15:28:50 +08:00
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 ))
{
2026-10-04 00:04:20 +08:00
acedAlert ( _T ( " \n 系统未初始化!请执行设置带单下初始设置!" ));
2026-09-28 15:28:50 +08:00
return false ;
}
CString sPro ;
xDataMap . GetAt ( DOC_PIDPROJECT , sPro );
CString sSQL ;
2026-10-04 00:04:20 +08:00
sSQL . Format ( _T ( "select distinct [项目名称] from [AecSpecname]" ));
2026-09-28 15:28:50 +08:00
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 ();
2026-10-04 00:04:20 +08:00
sSQL . Format ( _T ( "select distinct [等级名称] from [AecSpecname] where [项目名称]='%s'" ), sPro );
2026-09-28 15:28:50 +08:00
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
{
2026-10-04 00:04:20 +08:00
sSQL . Format ( _T ( "select [项目名称],[等级名称] from [AecSpecname] where [等级名称]='%s'" ), m_pipeParam . szLevel );
2026-09-28 15:28:50 +08:00
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 ()
{
2026-10-04 00:04:20 +08:00
//显示当前图层系统
2026-09-28 15:28:50 +08:00
CStringArray arSyses ;
for ( int i = 0 ; i < m_wndPipeSpecIdxList . GetItemCount (); i ++ )
{
2026-10-04 00:04:20 +08:00
//介质
2026-09-28 15:28:50 +08:00
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 );
2026-10-04 00:04:20 +08:00
//获取分系统信息
2026-09-28 15:28:50 +08:00
//select layname,pipesys,color,linetype,linewidth
//LAYKEY LAYNAME PIPESYS SYSTEM COLOR LINETYPE LINEWIDTH
2026-10-04 00:04:20 +08:00
//11 废水管线中心线 管线中心线 废水 4 Continuous:________ 0
2026-09-28 15:28:50 +08:00
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 ;
2026-10-04 00:04:20 +08:00
sSQL . Format ( _T ( "select distinct [等级名称] from [AecSpecname] where [项目名称]='%s'" ), sPro );
2026-09-28 15:28:50 +08:00
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 ;
2026-10-04 00:04:20 +08:00
sSQL . Format ( _T ( "select %s from [AecSpecPipe] where [项目名称]='%s' and [等级名称]='%s' and [短代码]='PIP' order by [公称直径]" ), sFields , sPro , sSpec );
2026-09-28 15:28:50 +08:00
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 ( ',' ));
/*
2026-10-04 00:04:20 +08:00
[等级号] VARCHAR(50),
[介质] VARCHAR(256),
[介质代号] VARCHAR(256),
[最大口径] INTEGER,
[设计温度] INTEGER,
[设计压力] FLOAT,
[法兰等级] VARCHAR(50),
[材质] varchar(256),
[腐蚀裕度] float);
2026-09-28 15:28:50 +08:00
*/
2026-10-04 00:04:20 +08:00
sSQL . Format ( _T ( "select %s from [AecPipeSpecIndex] where [等级号]='%s'" ), sFields , sSpec );
2026-09-28 15:28:50 +08:00
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 ;
}
2026-10-04 00:04:20 +08:00
//8-200 之间
int randint_range ( int n , int m ) { //产生n~m间的随机数(包括m和n)
2026-09-28 15:28:50 +08:00
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 ++ )
{
/*
2026-10-04 00:04:20 +08:00
[介质] VARCHAR(256),
[介质代号] VARCHAR(256),
[最大口径] INTEGER,
[设计温度] INTEGER,
[设计压力] FLOAT,
[法兰等级] VARCHAR(50),
[材质] varchar(256),
[腐蚀裕度] float);
2026-09-28 15:28:50 +08:00
*/
2026-10-04 00:04:20 +08:00
sName = m_wndPipeSpecIdxList . GetItemText ( i , 0 ); //[介质]
sDimTxt = m_wndPipeSpecIdxList . GetItemText ( i , 1 ); //[介质代号]
2026-09-28 15:28:50 +08:00
if ( i == 0 )
m_sCurrSys = sSys ;
2026-10-04 00:04:20 +08:00
sLayer . Format ( _T ( "%s边线" ), sName );
2026-09-28 15:28:50 +08:00
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 );
2026-10-04 00:04:20 +08:00
//边线
sSys = _T ( "管线外边线" );
2026-09-28 15:28:50 +08:00
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 );
2026-10-04 00:04:20 +08:00
//中心线
2026-09-28 15:28:50 +08:00
nColor = randint_range ( 1 , 7 );
2026-10-04 00:04:20 +08:00
sLayer . Format ( _T ( "%s中心线" ), sName );
sSys = _T ( "管线中心线" );
2026-09-28 15:28:50 +08:00
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 ;
2026-10-04 00:04:20 +08:00
sSQL . Format ( _T ( "select [曲率半径] from [AecElbowradius] order by [曲率半径]" ));
2026-09-28 15:28:50 +08:00
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 )
{
2026-10-04 00:04:20 +08:00
//BE 坡口焊
//BW 对焊
2026-09-28 15:28:50 +08:00
//MNPT
//MGE
2026-10-04 00:04:20 +08:00
//SW 承插
//PE 平端
//SCRD 螺纹
//SAWH 螺旋埋弧焊
//TE 螺纹端
//ISNS 内螺纹,暗杆
//ISRS 内螺纹, 明杆
2026-09-28 15:28:50 +08:00
2026-10-04 00:04:20 +08:00
//FLGD 法兰型
2026-09-28 15:28:50 +08:00
pparam . m_app = WPipe :: eButtweld ;
2026-10-04 00:04:20 +08:00
pparam . m_nConnectType = 0 ; //焊接
2026-09-28 15:28:50 +08:00
if ( sText . CompareNoCase ( _T ( "SW" ) ) == 0 )
{
pparam . m_app = WPipe :: eSanitary ;
2026-10-04 00:04:20 +08:00
pparam . m_nConnectType = 1 ; //承插
2026-09-28 15:28:50 +08:00
}
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 ;
2026-10-04 00:04:20 +08:00
pparam . m_nConnectType = 2 ; //螺纹
2026-09-28 15:28:50 +08:00
}
else if ( sText . CompareNoCase ( _T ( "FLGD" ) ) == 0 ||
sText . CompareNoCase ( _T ( "FG" )) == 0 )
{
pparam . m_app = WPipe :: eFlange ;
2026-10-04 00:04:20 +08:00
pparam . m_nConnectType = 3 ; //法兰
2026-09-28 15:28:50 +08:00
}
}
static BOOL IsGSFMaterial ( CString & sMaterial , CString & sODNo )
{
2026-10-04 00:04:20 +08:00
//目前只能按照材质判断
if ( sMaterial . Find ( _T ( "衬塑" )) != - 1 ||
2026-09-28 15:28:50 +08:00
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 );
2026-10-04 00:04:20 +08:00
//以下 PVC-C PP-H PE100 的国标数据 替代 PVC
2026-09-28 15:28:50 +08:00
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 )
{
2026-10-04 00:04:20 +08:00
//目前只能按照材质判断
if ( sMaterial . Find ( _T ( "钢骨架" )) != - 1 ||
2026-09-28 15:28:50 +08:00
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 ;
}
}
2026-10-04 00:04:20 +08:00
else if ( m_pipeParam . m_nConnectType == 1 ) //承插
2026-09-28 15:28:50 +08:00
{
//
}
2026-10-04 00:04:20 +08:00
else if ( m_pipeParam . m_nConnectType == 2 ) //螺纹
2026-09-28 15:28:50 +08:00
{
//
}
}
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 )
{
2026-10-04 00:04:20 +08:00
AfxMessageBox ( _T ( "请选择公称直径行!" ));
2026-09-28 15:28:50 +08:00
return ;
}
}
2026-10-04 00:04:20 +08:00
//SQL查询条件
//[公称直径]=%d and [等级名称]='%s' and [项目]='%s'
2026-09-28 15:28:50 +08:00
CString sWhere , sPro ;
int nSel = m_wndProCombo . GetCurSel ();
if ( nSel != - 1 )
{
m_wndProCombo . GetLBText ( nSel , sPro );
}
2026-10-04 00:04:20 +08:00
//等级
2026-09-28 15:28:50 +08:00
CString sSpec ;
int nCur = m_wndSpecCombo . GetCurSel ();
if ( nCur != - 1 )
{
m_wndSpecCombo . GetLBText ( nCur , sSpec );
_tcscpy ( m_pipeParam . szLevel , sSpec );
}
2026-10-04 00:04:20 +08:00
//公称
2026-09-28 15:28:50 +08:00
CString sText , sSQL ;
sText = m_wndPipeSpecList . GetItemText ( nItem , 0 );
m_pipeParam . m_dDN = _ttof ( sText );
m_pipeParam . m_dD = m_pipeParam . m_dDN ;
2026-10-04 00:04:20 +08:00
sWhere . Format ( _T ( "[公称直径]=%d and [等级名称]='%s' and [项目名称]='%s'" ),( int )( m_pipeParam . m_dDN + 0.5 ), m_pipeParam . szLevel , sPro );
2026-09-28 15:28:50 +08:00
2026-10-04 00:04:20 +08:00
//外径
2026-09-28 15:28:50 +08:00
sText = m_wndPipeSpecList . GetItemText ( nItem , 1 );
m_pipeParam . m_dOD = _ttof ( sText );
2026-10-04 00:04:20 +08:00
//壁厚
2026-09-28 15:28:50 +08:00
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 ;
}
2026-10-04 00:04:20 +08:00
//标高
2026-09-28 15:28:50 +08:00
switch ( m_nElSel )
{
2026-10-04 00:04:20 +08:00
case 0 : //中心线
2026-09-28 15:28:50 +08:00
{
break ;
}
2026-10-04 00:04:20 +08:00
case 1 : //顶参考基准
2026-09-28 15:28:50 +08:00
{
m_dEl -= m_pipeParam . m_dOD / 2.0 ;
break ;
}
2026-10-04 00:04:20 +08:00
case 2 : //底参考基准
2026-09-28 15:28:50 +08:00
{
m_dEl += m_pipeParam . m_dOD / 2.0 ;
break ;
}
}
m_pipeParam . m_dEl = m_dEl ;
2026-10-04 00:04:20 +08:00
//曲率半径
m_pipeParam . m_dRRatio = 3.0 ; //默认
m_pipeParam . m_nRadioOn = 0 ; //按曲率
2026-09-28 15:28:50 +08:00
nSel = m_wndRadioCombo . GetCurSel ();
if ( nSel != - 1 )
{
m_wndRadioCombo . GetLBText ( nSel , sText );
m_pipeParam . m_dRRatio = _ttof ( sText );
}
2026-10-04 00:04:20 +08:00
//管道类型
//根据端面确定 焊接 承插 螺纹 法兰 卡箍
2026-09-28 15:28:50 +08:00
m_pipeParam . m_app = WPipe :: eButtweld ;
TextToApp ( m_pipeParam , m_wndPipeSpecList . GetItemText ( nItem , 4 ));
2026-10-04 00:04:20 +08:00
//法兰端面
2026-09-28 15:28:50 +08:00
_tcscpy ( m_pipeParam . m_szEndF , _T ( "PE" ));
2026-10-04 00:04:20 +08:00
sSQL . Format ( _T ( "select distinct [端面] from [AecSpecFlange] where %s" ), sWhere );
2026-09-28 15:28:50 +08:00
arVals . RemoveAll ();
m_pDb -> GetSelData ( sSQL , arVals );
if ( arVals . GetSize () > 0 )
{
_tcscpy ( m_pipeParam . m_szEndF , arVals . GetAt ( 0 ));
}
2026-10-04 00:04:20 +08:00
//垫片信息 --> //[材质],[压力],[垫片厚度],[描述]
sSQL . Format ( _T ( "select distinct [材质],[压力],[垫片厚度],[描述] from [AecSpecGasket] where %s" ), sWhere );
2026-09-28 15:28:50 +08:00
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 );
2026-10-04 00:04:20 +08:00
m_pipeParam . m_dPress = _ttof ( arVals . GetAt ( 1 )); //取垫片压力
2026-09-28 15:28:50 +08:00
}
2026-10-04 00:04:20 +08:00
//法兰管分段长度
2026-09-28 15:28:50 +08:00
m_pipeParam . m_dInterfaceL3 = m_dFPLen ;
2026-10-04 00:04:20 +08:00
//查询变径 由使用过程查询
2026-09-28 15:28:50 +08:00
2026-10-04 00:04:20 +08:00
//管号
2026-09-28 15:28:50 +08:00
_tcscpy ( m_pipeParam . szPipeno , m_sPipeNo );
2026-10-04 00:04:20 +08:00
//管道材质
2026-09-28 15:28:50 +08:00
sText = m_wndPipeSpecList . GetItemText ( nItem , 5 );
_tcscpy ( m_pipeParam . szMertial , ( LPCTSTR ) sText );
2026-10-04 00:04:20 +08:00
//管件材质
sSQL . Format ( _T ( "select distinct [材质] from [AecSpecFit] where [公称直径]=%d and [类别]='管件' and [等级名称]='%s'" ), ( int )( m_pipeParam . m_dDN + 0.5 ), m_pipeParam . szLevel );
2026-09-28 15:28:50 +08:00
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 );
2026-10-04 00:04:20 +08:00
//确认是衬塑管,衬塑管法兰连接
2026-09-28 15:28:50 +08:00
if ( IsGSFMaterial ( sText , sODNo ))
{
//sODNo = _T("GSF");
2026-10-04 00:04:20 +08:00
m_pipeParam . m_nRadioOn = 1 ; //必须按结构长度
2026-09-28 15:28:50 +08:00
m_pipeParam . m_eD = WPipe :: eDN ; //DN
2026-10-04 00:04:20 +08:00
m_pipeParam . m_nConnectType = 3 ; //必须法兰
m_pipeParam . m_dRRatio = 1.5 ; //默认
2026-09-28 15:28:50 +08:00
}
else if ( IsPlasticsMat ( sText , sODNo ))
{
2026-10-04 00:04:20 +08:00
m_pipeParam . m_nRadioOn = 1 ; //必须按结构长度
2026-09-28 15:28:50 +08:00
m_pipeParam . m_eD = WPipe :: eOD ; //DN
2026-10-04 00:04:20 +08:00
m_pipeParam . m_nConnectType = 1 ; //必须承插
2026-09-28 15:28:50 +08:00
}
else if ( IsSRPEMaterial ( sText , sODNo ))
{
}
_tcscpy ( m_pipeParam . szODSn , sODNo );
2026-10-04 00:04:20 +08:00
//区号
2026-09-28 15:28:50 +08:00
_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 )
{
2026-10-04 00:04:20 +08:00
AfxMessageBox ( _T ( "请选择管道等级索引!" ));
2026-09-28 15:28:50 +08:00
return ;
}
}
2026-10-04 00:04:20 +08:00
//表号
2026-09-28 15:28:50 +08:00
sText = m_wndPipeSpecList . GetItemText ( nItem , 6 );
_tcscpy ( m_pipeParam . szShtNo , sText );
2026-10-04 00:04:20 +08:00
//描述
2026-09-28 15:28:50 +08:00
sText = m_wndPipeSpecList . GetItemText ( nItem , 9 );
_tcscpy ( m_pipeParam . szDescr , sText );
2026-10-04 00:04:20 +08:00
//介质 代号
2026-09-28 15:28:50 +08:00
sText = m_wndPipeSpecIdxList . GetItemText ( nItem2 , 1 );
_tcscpy ( m_pipeParam . szMedia , sText );
2026-10-04 00:04:20 +08:00
//上面已经取了垫片压了,
//再次确认转为法兰压力,
2026-09-28 15:28:50 +08:00
if ( m_pipeParam . m_dPress < 1.e-2 )
{
2026-10-04 00:04:20 +08:00
sSQL . Format ( _T ( "select distinct [压力] from [AecSpecFlange] where %s" ), sWhere );
2026-09-28 15:28:50 +08:00
arVals . RemoveAll ();
m_pDb -> GetSelData ( sSQL , arVals );
if ( arVals . GetSize () > 0 )
{
m_pipeParam . m_dPress = _ttof ( arVals . GetAt ( 0 ));
}
}
2026-10-04 00:04:20 +08:00
//压力
2026-09-28 15:28:50 +08:00
if ( m_pipeParam . m_dPress < 1.e-3 )
{
sText = m_wndPipeSpecIdxList . GetItemText ( nItem2 , 5 );
sText . TrimLeft ( _T ( "PN" ));
m_pipeParam . m_dPress = _ttof ( sText );
}
2026-10-04 00:04:20 +08:00
//系统
//确认创建图层
2026-09-28 15:28:50 +08:00
int nCursel = m_wndComboSys . GetCurSel ();
if ( nCursel == - 1 )
{
2026-10-04 00:04:20 +08:00
AfxMessageBox ( _T ( "请选择绘制管线的系统!" ));
2026-09-28 15:28:50 +08:00
return ;
}
m_wndComboSys . GetLBText ( nCursel , m_sCurrSys );
2026-10-04 00:04:20 +08:00
//创建图层 外,中
2026-09-28 15:28:50 +08:00
CoreTools :: getLyByPipeSys ( m_sCurrSys , true );
CoreTools :: getLyByPipeSys ( m_sCurrSys , false );
CoreTools :: getLyForPipe ( m_sCurrSys );
2026-10-04 00:04:20 +08:00
//获取分系统信息
2026-09-28 15:28:50 +08:00
//select layname,pipesys,color,linetype,linewidth
//LAYKEY LAYNAME PIPESYS SYSTEM COLOR LINETYPE LINEWIDTH
2026-10-04 00:04:20 +08:00
//11 废水管线中心线 管线中心线 废水 4 Continuous:________ 0
2026-09-28 15:28:50 +08:00
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 );
2026-10-04 00:04:20 +08:00
//保温伴热
2026-09-28 15:28:50 +08:00
2026-10-04 00:04:20 +08:00
//查询接口 信息
2026-09-28 15:28:50 +08:00
QueryFlangOnPipe ();
m_bFilled = true ;
}
2026-10-04 00:04:20 +08:00
//保温伴热
2026-09-28 15:28:50 +08:00
void CDJGXDlg :: OnBnClickedButton2 ()
{
UpdateData ();
KTInsulateMainDlg dlg ;
dlg . SetADOServer ( m_pDb );
WPipe :: PipeParam param ;
memset ( & param , 0 , sizeof ( WPipe :: PipeParam ));
FillPipeParam ();
GetPipeParam ( & param );
dlg . SetPipeParam ( & param );
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 ()
{
2026-10-04 00:04:20 +08:00
//介质压力
2026-09-28 15:28:50 +08:00
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 );
2026-10-04 00:04:20 +08:00
//参数=介质-等级-DN-曲率-保温-保温厚度
2026-09-28 15:28:50 +08:00
m_sParamSetting += sText ;
CString sAdd ;
2026-10-04 00:04:20 +08:00
if ( _tcslen ( m_pipeParam . szInsMtr ) > 0 ) sAdd = _T ( "保温" );
if ( _tcslen ( m_pipeParam . szTraMtoInfo ) > 0 ) sAdd += _T ( "伴热" );
2026-09-28 15:28:50 +08:00
2026-10-04 00:04:20 +08:00
//管线号= 区号-单元号-顺序号-DN-等级-保温伴热
2026-09-28 15:28:50 +08:00
m_sPipeNo . Format ( _T ( "%s-%s-%s-%s-%s-%s" ), m_sZoneNo , m_sUnit , m_sSerNo , sDN , sGrade , sAdd );
m_sPipeNo . TrimRight ( _T ( '-' ));
}
2026-10-04 00:04:20 +08:00
//分系统设置
2026-09-28 15:28:50 +08:00
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 ()
{
2026-10-04 00:04:20 +08:00
//等级
2026-09-28 15:28:50 +08:00
CString sSpec , sSQL , sPro ;
int nCur = m_wndSpecCombo . GetCurSel ();
if ( nCur != - 1 )
{
m_wndSpecCombo . GetLBText ( nCur , sSpec );
}
else
{
2026-10-04 00:04:20 +08:00
AfxMessageBox ( _T ( "请选择等级!" ));
2026-09-28 15:28:50 +08:00
return ;
}
int nPro = m_wndProCombo . GetCurSel ();
if ( nPro != - 1 )
{
m_wndProCombo . GetLBText ( nPro , sPro );
}
else
{
2026-10-04 00:04:20 +08:00
AfxMessageBox ( _T ( "请选择项目!" ));
2026-09-28 15:28:50 +08:00
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 ())
{
2026-10-04 00:04:20 +08:00
//[等级号] VARCHAR(50),
//[介质] VARCHAR(256),
//[介质代号] VARCHAR(256),
//[最大口径] INTEGER,
//[设计温度] INTEGER,
//[设计压力] FLOAT,
//[法兰等级] VARCHAR(50),
//[材质] varchar(256),
//[腐蚀裕度] float);
2026-09-28 15:28:50 +08:00
2026-10-04 00:04:20 +08:00
sSQL . Format ( _T ( "insert into [AecPipeSpecIndex] ([等级号],[介质],[介质代号],[最大口径],[设计温度],[设计压力],[法兰等级],[材质],[腐蚀裕度])\
2026-09-28 15:28:50 +08:00
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 );
2026-10-04 00:04:20 +08:00
//管线号= 区号-单元号-顺序号-DN-等级-保温伴热
2026-09-28 15:28:50 +08:00
CStringArray arTxts ;
CoreTools :: SplitString ( m_sPipeNo , _T ( '-' ), arTxts );
if ( arTxts . GetSize () > 2 )
m_sUnit = arTxts . GetAt ( 1 );
WPipe :: PipeParam param ;
memset ( & param , 0 , sizeof ( WPipe :: PipeParam ));
XDataMapToPipeParam ( pXDataMap , & param );
SetShowParam ( & param );
}
}
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 ;
2026-10-04 00:04:20 +08:00
//如果是米单位
2026-09-28 15:28:50 +08:00
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 ;
}