118 lines
3.3 KiB
C++
118 lines
3.3 KiB
C++
#if !defined(AFX_RESIDENCEFEEDCALCDLG_H__BB101AC2_3B04_451E_B74A_4949BB42907F__INCLUDED_)
|
|||
|
|
#define AFX_RESIDENCEFEEDCALCDLG_H__BB101AC2_3B04_451E_B74A_4949BB42907F__INCLUDED_
|
||
|
|
|
||
|
|
#if _MSC_VER > 1000
|
||
|
|
#pragma once
|
||
|
|
#endif
|
||
|
|
|
||
|
|
class SCalcHouseData
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
SCalcHouseData(){m_ID=NULL;m_iRation=250;m_iDoorNum=1;m_nNg=4;m_nPeopleNum=3.5;m_nFactor=2.8;};
|
||
|
|
int m_iRation; //用水定额
|
||
|
|
int m_iDoorNum; //该户型户数
|
||
|
|
double m_nNg; //每户当量
|
||
|
|
double m_nPeopleNum; //每户人数
|
||
|
|
double m_nFactor; //小时变化系数
|
||
|
|
double m_nU0; //平均出流概率
|
||
|
|
double m_nU; //同时出流概率
|
||
|
|
double m_nAc;
|
||
|
|
AcDbObjectId m_ID; //入户水管
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
class SCalcFloorData
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
SCalcFloorData(){m_ID=NULL;m_csFloor="";};
|
||
|
|
CString m_csFloor; //楼层
|
||
|
|
CString m_csVPipeName; //立管编号
|
||
|
|
int m_iDn; //立管管径
|
||
|
|
double m_nNg; //本层总当量
|
||
|
|
double m_nAllNg; //本层以上总当量
|
||
|
|
double m_nSigmaU0; //本层U0之和
|
||
|
|
double m_nQ; //流量
|
||
|
|
double m_nV; //流速
|
||
|
|
double m_nRetU; //同时出流概率
|
||
|
|
double m_nI; //坡降
|
||
|
|
double m_nLost; //沿程损失
|
||
|
|
AcDbObjectId m_ID; //本层支管
|
||
|
|
AcDbObjectId m_IDMain; //本层立管
|
||
|
|
DList<SCalcHouseData> m_lstHouse;
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
#include "resource.h"
|
||
|
|
|
||
|
|
#include "WDGRID.h"
|
||
|
|
#include "map"
|
||
|
|
|
||
|
|
class CResidenceFeedGrid: public WDGrid
|
||
|
|
{
|
||
|
|
protected:
|
||
|
|
virtual void OnCellComboString(WDGridCell&cell,CComboBox&combo);//准备下拉列表内容
|
||
|
|
public:
|
||
|
|
CResidenceFeedGrid();
|
||
|
|
};
|
||
|
|
|
||
|
|
class CResidenceFeedCalcDlg : public CDialog
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
CResidenceFeedCalcDlg(CWnd* pParent = NULL);
|
||
|
|
|
||
|
|
void InitFeedData();
|
||
|
|
|
||
|
|
//转换数据函数 把链表转换为数组
|
||
|
|
BOOL TransformCalcFeedData(SSearchPipeList *pListAll, CString csCurFloor, CString csCurVPipeName);
|
||
|
|
//把立管加入SCalcFloorData结构中
|
||
|
|
void AddVerticalPipeToData(SSearchPipeList *pListAll, BOOL bFromDownToUp);
|
||
|
|
//计算函数
|
||
|
|
void DoCalcResidenceFeed(BOOL bFromDownToUp, BOOL bIsReCalc);
|
||
|
|
//出计算书
|
||
|
|
void CalcFeedImportWord();
|
||
|
|
//从图上读出数据
|
||
|
|
void ReadDataFromGraph();
|
||
|
|
void SetSearchPipeList(SSearchPipeList *pList);
|
||
|
|
//{{AFX_DATA(CResidenceFeedCalcDlg)
|
||
|
|
enum { IDD = IDD_RESIDENCE_FEEDCALC };
|
||
|
|
CButton m_btnSearch;
|
||
|
|
CResidenceFeedGrid m_listFeed;
|
||
|
|
CString m_strWndEdtAllLost;
|
||
|
|
//}}AFX_DATA
|
||
|
|
|
||
|
|
//{{AFX_VIRTUAL(CResidenceFeedCalcDlg)
|
||
|
|
protected:
|
||
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
||
|
|
//}}AFX_VIRTUAL
|
||
|
|
|
||
|
|
protected:
|
||
|
|
|
||
|
|
//{{AFX_MSG(CResidenceFeedCalcDlg)
|
||
|
|
virtual BOOL OnInitDialog();
|
||
|
|
afx_msg void OnBookBtn();
|
||
|
|
virtual void OnOK();
|
||
|
|
afx_msg void OnRepeartCalcBtn();
|
||
|
|
afx_msg void OnBtnSearch();
|
||
|
|
afx_msg void OnButtonSheet();
|
||
|
|
//}}AFX_MSG
|
||
|
|
DECLARE_MESSAGE_MAP()
|
||
|
|
|
||
|
|
private:
|
||
|
|
//从表上获得数据
|
||
|
|
void GetDataFromList();
|
||
|
|
//得到下一个导出WORD节点 根据节点计算顺序排序
|
||
|
|
|
||
|
|
void SetAllLost(); //cet 2010.11.23 add 设置总沿程损失
|
||
|
|
|
||
|
|
void DoCalcFeedWaterLost(SSearchPipeList *pDisadvantagestd, std::set<CString> &data, double &dAllLostRet); // cet 2010.11.23 add 计算总的沿程水头损失
|
||
|
|
|
||
|
|
public:
|
||
|
|
BOOL m_bFromDownToUp;
|
||
|
|
|
||
|
|
private:
|
||
|
|
DList<SCalcFloorData> m_lstFeedData;
|
||
|
|
SSearchPipeList *m_pListAll;
|
||
|
|
CBitmap m_bitSearchPipe;
|
||
|
|
};
|
||
|
|
|
||
|
|
#endif // !defined(AFX_RESIDENCEFEEDCALCDLG_H__BB101AC2_3B04_451E_B74A_4949BB42907F__INCLUDED_)
|