#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 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 &data, double &dAllLostRet); // cet 2010.11.23 add 计算总的沿程水头损失 public: BOOL m_bFromDownToUp; private: DList m_lstFeedData; SSearchPipeList *m_pListAll; CBitmap m_bitSearchPipe; }; #endif // !defined(AFX_RESIDENCEFEEDCALCDLG_H__BB101AC2_3B04_451E_B74A_4949BB42907F__INCLUDED_)