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

724 lines
19 KiB
C++

#include "stdafx.h"
#include "PipeMajDlg.h"
#include "KTModelLayoutXData.h"
#include "coretools.h"
#include "PipelineTools.h"
#ifndef _BYGB_
#define _BYGB_ _T("按执行标准")
#endif
extern double g_minRadio;
IMPLEMENT_DYNAMIC(CPipeMajDlg, CDialog)
CPipeMajDlg::CPipeMajDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPipeMajDlg::IDD, pParent)
, m_sMertialFit(_T("碳钢"))
, m_sMertial(_T("碳钢"))
{
m_pDb = NULL;
m_nDN = 100;
m_dOD = 107;
m_dt = 3.5;
m_dPress = 1.0;
m_sPress = _T("1.6A");
m_bPressureSel = TRUE;
m_bUpdateMat = FALSE;
m_nColorIndex = 256;
m_nOnlyDN = 0;
m_nRadioOn = 1;
}
CPipeMajDlg::~CPipeMajDlg()
{
}
void CPipeMajDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_PIPELIST, m_wndPipeList);
DDX_Control(pDX, IDC_LISTELBOWRAD, m_wndElbowradList);
DDX_Control(pDX, IDC_LIST1, m_wndPressList);
DDX_Control(pDX, IDC_LIST2, m_wndPressList2);
DDX_Control(pDX, IDC_COMBO_SYS, m_wndComboPipeSys);
DDX_Text(pDX,IDC_EDIT1,m_nDN);
DDX_Text(pDX,IDC_EDIT2,m_dOD);
DDX_Text(pDX,IDC_EDIT3,m_dt);
DDX_Text(pDX,IDC_EDIT4,m_sPress);
DDX_Text(pDX,IDC_EDIT5,m_dRatio);
DDX_Radio(pDX, IDC_RADIO6, m_nRadioOn);
DDX_Text(pDX,IDC_EDIT6,m_dPress);
DDX_Check(pDX,IDC_CHECK1,m_bPressureSel);
DDX_Check(pDX,IDC_CHECK2,m_bUpdateMat);
DDX_CBString(pDX, IDC_COMBOMATERS, m_sMertial);
DDX_Control(pDX, IDC_COMBOMATERS, m_wndComboMaters);
DDX_Control(pDX, IDC_COMBOMATERSFIT, m_wndComboMatersFit);
DDX_CBString(pDX, IDC_COMBOMATERSFIT, m_sMertialFit);
DDX_CBString(pDX, IDC_COMBO_SYS, m_sPipeSys);
}
BEGIN_MESSAGE_MAP(CPipeMajDlg, CDialog)
ON_BN_CLICKED(IDC_CHECK1,&CPipeMajDlg::OnCheckPressSwitch)
ON_BN_CLICKED(IDC_CHECK2,&CPipeMajDlg::OnCheckUpdateMat)
END_MESSAGE_MAP()
//UPVC CPVC PVC-C PP-H (PE) HDPE
bool CPipeMajDlg::IsPlasticsMat(int nPos, 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 (nPos == 0)
{
if (m_sMertial.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.Find(_T("(PE)")) == 0)
sODNo = _T("PE");
if (sODNo.CompareNoCase(_T("PE100")) == 0)
sODNo = _T("PE");
if (sODNo.CompareNoCase(_T("(PE100)")) == 0)
sODNo = _T("PE");
return true;
}
}
else
{
if (m_sMertialFit.Find(arTxts.GetAt(i)) != -1)
{
sODNo = arTxts.GetAt(i);
return true;
}
}
}
return false;
}
BOOL CPipeMajDlg::IsGSFMaterial(CString &sODNo)
{
//目前只能按照材质判断
if (m_sMertial.Find(_T("衬塑")) != -1 ||
m_sMertial.Find(_T("HG/T 20538")) != -1)
{
sODNo = _T("GSF");
return TRUE;
}
return FALSE;
}
BOOL CPipeMajDlg::IsRCPMaterial(CString &sODNo)
{
//目前只能按照材质判断
if (m_sMertial.Find(_T("混凝土")) != -1)
{
sODNo = _T("RCP");
return TRUE;
}
return FALSE;
}
BOOL CPipeMajDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//4K
int iWidth = GetSystemMetrics(SM_CXSCREEN);
int iHeight = GetSystemMetrics(SM_CYSCREEN);
int nAdd = 0;
if (iWidth >= 3800 && iHeight >= 2400)//4K
{
nAdd = 45;
}
//LIST
m_wndPipeList.SetExtendedStyle(LVS_EX_FULLROWSELECT);
m_wndPipeList.InsertColumn(0, _T("DN"), LVCFMT_LEFT, 70 + nAdd);
m_wndPipeList.InsertColumn(1, _T("外径"), LVCFMT_LEFT, 70 + nAdd);
m_wndPipeList.InsertColumn(2, _T("壁厚"), LVCFMT_LEFT, 60 + nAdd);
m_wndPipeList.InsertColumn(3, _T("重量"), LVCFMT_LEFT, 62 + nAdd);
m_wndPipeList.InsertColumn(4, _T("表号"), LVCFMT_LEFT, 65 + nAdd);
m_wndPipeList.InsertColumn(5, _T("外径系列"), LVCFMT_CENTER, 80 + nAdd);
//EXT
m_wndPipeList.InsertColumn(6, _T("执行标准"), LVCFMT_LEFT, 300 + nAdd);
//m_wndPipeList.InsertColumn(7, _T("物料描述"), LVCFMT_LEFT, 0);
//m_wndPipeList.InsertColumn(8, _T("规格型号"), LVCFMT_LEFT, 0);
if (m_pDb != NULL)
{
CString sODNo = m_param.szODSn;
//再次确认
IsGSFMaterial(sODNo);
IsPlasticsMat(0, sODNo);
InitPipeList(50000, sODNo);
InitPressFromDb();
CStringArray arVals;
PipelineTools::getPipeSysRecord(m_pDb, m_sPipeSys, arVals);
if (arVals.GetSize() >= 5)
{
m_nColorIndex = _ttoi(arVals.GetAt(2));
}
}
if (m_bPressureSel)
{
m_wndPressList2.ShowWindow(SW_SHOW);
m_wndPressList.ShowWindow(SW_HIDE);
}
else
{
m_wndPressList2.ShowWindow(SW_HIDE);
m_wndPressList.ShowWindow(SW_SHOW);
}
m_wndComboMatersFit.EnableWindow(m_bUpdateMat);
m_wndComboMaters.EnableWindow(m_bUpdateMat);
m_wndComboPipeSys.EnableWindow(m_bUpdateMat);
UpdateData(FALSE);
return TRUE;
}
void CPipeMajDlg::OnOK()
{
UpdateData();
POSITION ps = m_wndPipeList.GetFirstSelectedItemPosition();
if (ps != NULL)
{
int nItem = m_wndPipeList.GetNextSelectedItem(ps);
if (nItem != -1)
{
m_param.m_dDN = _ttof(m_wndPipeList.GetItemText(nItem,0));
m_param.m_dOD = _ttof(m_wndPipeList.GetItemText(nItem,1));
m_param.m_dThick = _ttof(m_wndPipeList.GetItemText(nItem,2));
_tcscpy(m_param.szODSn,m_wndPipeList.GetItemText(nItem, 5));
_tcscpy(m_param.szStdNo, m_wndPipeList.GetItemText(nItem, 6));
}
else
{
AfxMessageBox(_T("请选择管线规格系列!"));
return;
}
}
CString sText,sSQL;
int nSel = m_wndElbowradList.GetCurSel();
if (nSel != -1)
{
//曲率
m_wndElbowradList.GetText(nSel, sText);
if (sText.CompareNoCase(_BYGB_) == 0)
{
m_param.m_nRadioOn = TRUE;//按国标结构长度
m_param.m_dRRatio = g_minRadio;//最小
//根据ODSN查询数据库 默认曲率
sSQL.Format(_T("select distinct [弯头曲率] from [AecElbowData] where [外径系列]='%s' order by [弯头曲率]"), m_param.szODSn);
CStringArray arRad;
m_pDb->GetSelData(sSQL, arRad);
if (arRad.GetSize() > 0)
{
m_param.m_dRRatio = _ttof(arRad.GetAt(0));
}
}
else
{
m_param.m_dRRatio = _ttof(sText);
}
}
//不可变换等级
/*nSel = m_wndPressList.GetCurSel();
if (nSel != -1)
{
sText = _T("");
m_wndPressList.GetText(nSel,sText);
_tcscpy(m_param.szLevel,(LPCTSTR)sText);
}*/
m_dPress = 1.0;
nSel = m_wndPressList2.GetCurSel();
if (nSel != -1)
{
sText = _T("");
m_wndPressList2.GetText(nSel,sText);
m_dPress = _ttof(sText);
}
if (m_param.m_nConnectType == 3)//法兰管
{
//查询法兰管的法兰数据
QueryFlangOnPipe();
}
if (m_bUpdateMat)
{
CString sODNo = m_param.szODSn;
CString sBk = m_sMertial;
m_sMertial = m_param.szMertial;
BOOL bIsPla1 = IsPlasticsMat(0, sODNo);
BOOL bIsGasf1 = IsGSFMaterial(sODNo);
BOOL bIsRcp1 = IsRCPMaterial(sODNo);
m_sMertial = sBk;
BOOL bIsPla2 = IsPlasticsMat(0,m_sMertial);
BOOL bIsGasf2 = IsGSFMaterial(sODNo);
BOOL bIsRcp2 = IsRCPMaterial(sODNo);
//1.
if (bIsPla1 && !bIsPla2)
{
if (sBk.CompareNoCase(m_param.szMertial) != 0)
{
AfxMessageBox(_T("不可以从塑料管切换成非塑料管!"));
return;
}
}
if (!bIsPla1 && bIsPla2)
{
if (sBk.CompareNoCase(m_param.szMertial) != 0)
{
AfxMessageBox(_T("不可以从非塑料管切换成塑料管!"));
return;
}
}
//2.
if (bIsGasf1 && !bIsGasf2)
{
if (sBk.CompareNoCase(m_param.szMertial) != 0)
{
AfxMessageBox(_T("不可以从衬塑管切换成非衬塑管!"));
return;
}
}
if (!bIsGasf1 && bIsGasf2)
{
if (sBk.CompareNoCase(m_param.szMertial) != 0)
{
AfxMessageBox(_T("不可以从非衬塑管切换成衬塑管!"));
return;
}
}
//3.
if (bIsRcp1 && !bIsGasf2)
{
if (sBk.CompareNoCase(m_param.szMertial) != 0)
{
AfxMessageBox(_T("不可以从水泥管切换成非水泥管!"));
return;
}
}
if (!bIsRcp1 && bIsGasf2)
{
if (sBk.CompareNoCase(m_param.szMertial) != 0)
{
AfxMessageBox(_T("不可以从非水泥管切换成水泥管!"));
return;
}
}
_tcscpy(m_param.szMertial,m_sMertial);
_tcscpy(m_param.szMertialFit,m_sMertialFit);
if (m_sPipeSys != _T("不修改管线系统"))
{
_tcscpy(m_param.szSys, m_sPipeSys);
CStringArray arVals;
PipelineTools::getPipeSysRecord(m_pDb, m_sPipeSys, arVals);
if (arVals.GetSize() >= 5)
{
m_nColorIndex = _ttoi(arVals.GetAt(2));
}
}
}
EndDialog(IDOK);
}
void CPipeMajDlg::OnCheckPressSwitch()
{
UpdateData();
if (m_bPressureSel)
{
m_wndPressList2.ShowWindow(SW_SHOW);
m_wndPressList.ShowWindow(SW_HIDE);
}
else
{
m_wndPressList2.ShowWindow(SW_HIDE);
m_wndPressList.ShowWindow(SW_SHOW);
}
}
void CPipeMajDlg::OnCheckUpdateMat()
{
UpdateData();
m_wndComboMaters.EnableWindow(m_bUpdateMat);
m_wndComboMatersFit.EnableWindow(m_bUpdateMat);
m_wndComboPipeSys.EnableWindow(m_bUpdateMat);
}
void CPipeMajDlg::QueryFlangOnPipe()
{
double dWD, dWh, dd;
if (CoreTools::QueryFlangData(m_pDb
, m_param.m_dDN
, m_dPress
, dWD
, dWh
, dd
, dd
, CoreTools::GetCurrentProject()
, m_param.szLevel))
{
m_param.m_dInterfaceL = dWh;
m_param.m_dInterfaceD = dWD;
}
}
void CPipeMajDlg::SetDbServer(CUIISQLiteServer* pDb)
{
m_pDb = pDb;
}
void CPipeMajDlg::InitPipeList(int nMaxDN, CString sODNo)
{
if (m_pDb != NULL)
{
m_wndPipeList.DeleteAllItems();
//公称直径系列
bool bMODSN = false;
CString sSQL, sText, sODAWhere = _T("");
if (sODNo.CompareNoCase(_T("A")) == 0 || sODNo.CompareNoCase(_T("B")) == 0 || sODNo.IsEmpty())
{
sODAWhere = _T("([外径系列]='A' or [外径系列]='B' or [外径系列]='S')");
bMODSN = true;
}
else
{
sODAWhere.Format(_T("[外径系列]='%s'"), sODNo);
}
/*
//公称直径系列
CString sSQL, sText;
#ifdef HAITIAN
if (m_nOnlyDN == 0)
{
sSQL = _T("select [公称直径],[外径],[壁厚],[重量],[执行标准],[物料描述],[规格型号] from AecOD order by [公称直径],[壁厚]");
}
else
{
sSQL.Format(_T("select [公称直径],[外径],[壁厚],[重量],[执行标准],[物料描述],[规格型号] from AecOD where [公称直径]=%d order by [公称直径],[壁厚]"), m_nOnlyDN);
}
#else
if (m_nOnlyDN == 0)
{
sSQL.Format(_T("select [公称直径],[外径],[壁厚],[重量],[表号],[外径系列] from AecOD where [公称直径]<%d and [外径系列]='%s' order by [公称直径],[壁厚],[表号]"), nMaxDN, sODNo);
}
else
{
sSQL.Format(_T("select [公称直径],[外径],[壁厚],[重量],[表号],[外径系列] from AecOD where [公称直径]=%d and [外径系列]='%s' order by [公称直径],[壁厚],[表号]"), m_nOnlyDN, sODNo);
}
#endif
CUIIValueTable table;
m_pDb->GetSelData(sSQL, table);
if (table.GetTableLogicSize() == 0)
{
//按外径选
sSQL.Format(_T("select [公称直径],[外径],[壁厚],[重量],[表号],[外径系列] from AecOD where [外径]<=%d and [外径系列]='%s' order by [公称直径],[壁厚],[表号]"), m_nOnlyDN, sODNo);
m_pDb->GetSelData(sSQL, table);
}*/
if (m_nOnlyDN == 0)
{
//sSQL.Format(_T("select [公称直径],[外径],[壁厚],[重量],[表号],[外径系列] from AecOD where [公称直径]<%d and %s order by [公称直径],[壁厚],[外径系列],[表号]"), nMaxDN, sODAWhere);
if (bMODSN)
{
sSQL.Format(_T("select [公称直径],[外径],[壁厚],[重量],[表号],[外径系列],[标准] from AecOD where [公称直径]<=%d and %s order by [外径系列] desc"), nMaxDN, sODAWhere);
}
else
{
sSQL.Format(_T("select [公称直径],[外径],[壁厚],[重量],[表号],[外径系列],[标准] from AecOD where [公称直径]<=%d and %s order by [外径系列],[公称直径],[壁厚]"), nMaxDN, sODAWhere);
}
}
else
{
//sSQL.Format(_T("select [公称直径],[外径],[壁厚],[重量],[表号],[外径系列] from AecOD where [公称直径]=%d and %s order by [公称直径],[壁厚],[外径系列],[表号]"), m_nOnlyDN, sODAWhere);
sSQL.Format(_T("select [公称直径],[外径],[壁厚],[重量],[表号],[外径系列],[标准] from AecOD where [公称直径]=%d and %s order by [外径系列],[公称直径],[壁厚] desc"), m_nOnlyDN, sODAWhere);//
}
CUIIValueTable table;
m_pDb->GetSelData(sSQL, table);
if (table.GetTableLogicSize() == 0)
{
//按外径选
//sSQL.Format(_T("select [公称直径],[外径],[壁厚],[重量],[表号],[外径系列] from AecOD where [外径]<=%d and %s order by [公称直径],[壁厚],[外径系列],[表号]"), m_nOnlyDN, sODAWhere);
//按外径选
int nDN = (m_nOnlyDN == 0) ? nMaxDN : m_nOnlyDN;
if (bMODSN)
{
sSQL.Format(_T("select [公称直径],[外径],[壁厚],[重量],[表号],[外径系列],[标准] from AecOD where [外径]<=%d and %s order by [外径系列]"), nDN, sODAWhere);
}
else
{
sSQL.Format(_T("select [公称直径],[外径],[壁厚],[重量],[表号],[外径系列],[标准] from AecOD where [外径]<=%d and %s order by [外径系列],[公称直径],[壁厚]"), nDN, sODAWhere);
}
m_pDb->GetSelData(sSQL, table);
}
table.ShowToListCtrl(&m_wndPipeList);
CString sDnold, sThick,sODNo2;
sDnold.Format(_T("%d"), m_nDN);
int iStart = -1;
bool bFind = false;
for (int i = 0; i < m_wndPipeList.GetItemCount(); i++)
{
sText = m_wndPipeList.GetItemText(i, 0);
sThick = m_wndPipeList.GetItemText(i, 2);
sODNo2 = m_wndPipeList.GetItemText(i, 5);
if (sText.CompareNoCase(sDnold) == 0 && iStart == -1)
iStart = i;
if (sText.CompareNoCase(sDnold) == 0 && fabs(_ttof(sThick) - m_dt) < 1.e-6 && sODNo2.CompareNoCase(sODNo) == 0)
{
iStart = i;
m_wndPipeList.SetItemState(i, LVIS_SELECTED, LVIS_SELECTED);
m_wndPipeList.EnsureVisible(i, TRUE);
bFind = true;
break;
}
}
if (!bFind)
{
if (iStart == -1) iStart = 0;
if (m_wndPipeList.GetItemCount() > 0)
m_wndPipeList.SetItemState(iStart, LVIS_SELECTED, LVIS_SELECTED);
m_wndPipeList.EnsureVisible(iStart, TRUE);
}
//曲率半径
//sSQL = _T("select [曲率半径] from AecElbowradius order by [曲率半径]");
sSQL.Format(_T("select distinct [弯头曲率] from AecElbowData where %s order by [弯头曲率]"), sODAWhere);
int nSel = 0;
CString sRat;
CStringArray arVals;
arVals.Add(_BYGB_);
m_pDb->GetSelData(sSQL,arVals);
for ( i = 0;i < arVals.GetSize();i++)
{
m_wndElbowradList.InsertString(i,arVals.GetAt(i));
sRat = arVals.GetAt(i);
if ( fabs(_ttof(sRat) - m_param.m_dRRatio) < 1.e-6)
{
nSel = i;
if ((m_param.m_dRRatio - g_minRadio) < 1.e-3)
nSel = 0;
}
}
m_wndElbowradList.SetCurSel(nSel);
//材质
arVals.RemoveAll();
sSQL = _T("select [材质] from AecMaterial where [类型]='管道'");
m_pDb->GetSelData(sSQL,arVals);
for (i = 0;i < arVals.GetSize();i++)
{
m_wndComboMaters.InsertString(i,arVals.GetAt(i));
if (m_sMertial.CompareNoCase(arVals.GetAt(i)) == 0)
{
m_wndComboMaters.SetCurSel(i);
}
}
//材质
arVals.RemoveAll();
sSQL = _T("select [材质] from AecMaterial where [类型]='管件'");
m_pDb->GetSelData(sSQL,arVals);
for (i = 0;i < arVals.GetSize();i++)
{
m_wndComboMatersFit.InsertString(i,arVals.GetAt(i));
if (m_sMertialFit.CompareNoCase(arVals.GetAt(i)) == 0)
{
m_wndComboMatersFit.SetCurSel(i);
}
}
// 初始化管线系统
{
CString sStd(CoreTools::getCurrentPipeSysTblName()), sTemp;
//sSQL = _T("select tablename from wpipecfg where currstd=1");
//m_pDb->GetSelData(sSQL, sStd);
sSQL.Format(_T("select distinct system from %s"), sStd);
CStringArray arSyses;
m_pDb->GetSelData(sSQL, arSyses);
m_wndComboPipeSys.AddString(_T("不修改管线系统"));
for (int i = 0; i < arSyses.GetSize(); i++)
{
sTemp = arSyses.GetAt(i);
m_wndComboPipeSys.AddString(sTemp);
}
//再从图层中加一遍
m_wndComboPipeSys.SetCurSel(0);
}
}
}
void CPipeMajDlg::InitPressFromDb()
{
//获取项目名称
AecDbObjXDataMap xDataMap;
xDataMap.SetAt(DOC_TRADE, WPipe::ePetro); //应用行业,石油
xDataMap.SetAt(DOC_SCALE, _T("1:50")); //出图比例
xDataMap.SetAt(DOC_PLOTWIDTH, 0.5); //最小打印线宽
xDataMap.SetAt(DOC_DPLOTWIDTH, 0.5); //双线打印线宽
xDataMap.SetAt(DOC_WELDDIA, 1.0); //焊点直径
xDataMap.SetAt(DOC_PIPEMINDIA, 65.0); //最小管道直径
xDataMap.SetAt(DOC_PIPEMAXDIA, 200.0); //最大管线直径
xDataMap.SetAt(DOC_PERELBOWDIA, 40.0); //垂直弯头直径
xDataMap.SetAt(DOC_BREAKSPACE, 2.0); //交叉断线间距
xDataMap.SetAt(DOC_UNIT, 0); //单位
xDataMap.SetAt(DOC_DIMTERM, 0); //标注端符
xDataMap.SetAt(DOC_DIMTXTH, 2.0); //标注文字高度
xDataMap.SetAt(DOC_DIMTXTF, 0.7); //标注文字宽度系数
xDataMap.SetAt(DOC_EQPTXTH, 2.0); //设备标注文字高度
xDataMap.SetAt(DOC_EQPTXTF, 1.0); //设备标注文字宽度系数
xDataMap.SetAt(DOC_STRTXTH, 2.0); //结构标注文字高度
xDataMap.SetAt(DOC_STRTXTF, 0.7); //结构标注文字宽度系数
xDataMap.SetAt(DOC_SCRIPTT, _T("{0}{-}{1}{-}{2}{-}{3}"));//上标脚本
xDataMap.SetAt(DOC_SCRIPTB, _T("{4}{-}{5}"));//下标脚本
xDataMap.SetAt(DOC_ELTYPE, 0); //标高设置
xDataMap.SetAt(DOC_ELDESCR, _T("--")); //标高文本
if (!KTModelLayoutXData::ReadModelXData(KT_PIPEINIT,xDataMap))
{
acedAlert(_T("\n系统未初始化!"));
return;
}
CString sProject;
xDataMap.GetAt(DOC_PIDPROJECT,sProject);
CString sSQL;
sSQL.Format(_T("select [等级名称] from AecSpecname where [项目名称]='%s'"),sProject);
CStringArray arValues;
m_pDb->GetSelData(sSQL,arValues);
m_wndPressList.ResetContent();
for (int i = 0;i < arValues.GetSize();i++)
{
m_wndPressList.InsertString(i,arValues.GetAt(i));
}
int nIndex = m_wndPressList.FindString(0,m_param.szLevel);//压力等级
if (nIndex != -1)
{
m_wndPressList.SetCurSel(nIndex);
}
else
{
m_wndPressList.SetCurSel(0);
}
//压力表
sSQL.Format(_T("select [压力] from aecpressure order by [压力]"));
arValues.RemoveAll();
m_pDb->GetSelData(sSQL,arValues);
m_wndPressList2.ResetContent();
for (int i = 0;i < arValues.GetSize();i++)
{
m_wndPressList2.InsertString(i,arValues.GetAt(i));
if ( fabs(_ttof(arValues.GetAt(i)) - m_dPress) < 1.e-3)
{
m_wndPressList2.SetCurSel(i);
}
}
}
void CPipeMajDlg::SetShowParam(WPipe::PipeParam* pParam)
{
if (pParam != NULL)
{
double dScale = CoreTools::IsMetersUnit() ? 1000. : 1;
memcpy(&m_param,pParam,sizeof(WPipe::PipeParam));
m_nDN = (int)(pParam->m_dDN * dScale + 0.5);
m_dOD = pParam->m_dOD * dScale;
m_dt = pParam->m_dThick * dScale;
m_dRatio = pParam->m_dRRatio;
m_nRadioOn = 1;// pParam->m_nRadioOn;
m_sPress = pParam->szLevel;
m_dPress = pParam->m_dPress;
m_sMertial = pParam->szMertial;
m_sMertialFit = pParam->szMertialFit;
//兼容
if (m_sMertial.Find(_T("衬塑")) != -1)
{
m_sMertial = _T("衬塑管");
m_sMertialFit = _T("衬塑管");
_tcscpy(m_param.szMertial, m_sMertial);
_tcscpy(m_param.szMertialFit, m_sMertialFit);
}
}
}
void CPipeMajDlg::GetPipeParam(WPipe::PipeParam* pParam) const
{
if (pParam != NULL)
{
memcpy(pParam,&m_param,sizeof(WPipe::PipeParam));
}
}