723 lines
30 KiB
C++
723 lines
30 KiB
C++
// ExtinguisherCalcDlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "ExtinguisherCalcDlg.h"
|
|
#include <MSWORD8.h>
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CExtinguisherCalcDlg dialog
|
|
|
|
void ExtinguisherCalc()
|
|
{
|
|
CTemporaryResourceOverride vTemp;
|
|
CExtinguisherCalcDlg dlg;
|
|
dlg.DoModal();
|
|
}
|
|
|
|
CExtinguisherCalcDlg::CExtinguisherCalcDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CExtinguisherCalcDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CExtinguisherCalcDlg)
|
|
m_nArea = 500;
|
|
m_csRet1 = _T("");
|
|
m_csRet2 = _T("");
|
|
m_iArch = 0;
|
|
m_iEnviroment = 1;
|
|
m_iFire = 0;
|
|
m_iLevel = 1;
|
|
m_csCalc = _T("计算过程:");
|
|
//}}AFX_DATA_INIT
|
|
|
|
m_dUnitArea = 0.0; //单位灭火级别最大保护面积
|
|
m_dK = 0.0; //修正系数
|
|
m_dQ = 0.0; //灭火级别
|
|
}
|
|
|
|
|
|
void CExtinguisherCalcDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CExtinguisherCalcDlg)
|
|
DDX_Text(pDX, IDC_EDIT_AREA, m_nArea);
|
|
DDX_Text(pDX, IDC_EDIT_LEVEL1, m_csRet1);
|
|
DDX_Text(pDX, IDC_EDIT_LEVEL2, m_csRet2);
|
|
DDX_Radio(pDX, IDC_RADIO_ARCH1, m_iArch);
|
|
DDX_Radio(pDX, IDC_RADIO_ENVIRONMENT1, m_iEnviroment);
|
|
DDX_Radio(pDX, IDC_RADIO_FIREA, m_iFire);
|
|
DDX_Radio(pDX, IDC_RADIO_LEVEL1, m_iLevel);
|
|
DDX_Text(pDX, IDC_STATIC_CALC, m_csCalc);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CExtinguisherCalcDlg, CDialog)
|
|
//{{AFX_MSG_MAP(CExtinguisherCalcDlg)
|
|
ON_BN_CLICKED(IDC_BUTTON_HELPFIRE, OnButtonHelpfire)
|
|
ON_BN_CLICKED(IDC_BUTTON_HELPLEVEL, OnButtonHelplevel)
|
|
ON_BN_CLICKED(IDC_BUTTON_TYPE, OnButtonType)
|
|
ON_BN_CLICKED(IDC_BUTTON_TYPE2, OnButtonType2)
|
|
ON_BN_CLICKED(IDC_BTN_BOOK, OnBtnBook)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CExtinguisherCalcDlg message handlers
|
|
|
|
BOOL CExtinguisherCalcDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
//6.5采用《技术措施P220》 7.0参数变化很大,采用《灭火器配置规范》2005年
|
|
void CExtinguisherCalcDlg::OnOK()
|
|
{
|
|
UpdateData(TRUE);
|
|
CString csTmp, csUnit;
|
|
double U(0), Q(0), K(0);
|
|
if(m_iFire == 0){ //A类火灾
|
|
csUnit = _T("A");
|
|
|
|
if(m_iLevel == 0) { //轻度危险
|
|
U = 100;
|
|
m_csRet2 = _T("1A");
|
|
}
|
|
else if(m_iLevel == 1){ //中度危险
|
|
U = 75;
|
|
m_csRet2 = _T("2A");
|
|
}
|
|
else if(m_iLevel == 2){ //严重危险度
|
|
U = 50;
|
|
m_csRet2 = _T("3A");
|
|
}
|
|
}
|
|
else if(m_iFire == 1){ //B类火灾
|
|
csUnit = _T("B");
|
|
|
|
if(m_iLevel == 0){ //轻度危险
|
|
U = 1.5;
|
|
m_csRet2 = _T("21B");
|
|
}
|
|
else if(m_iLevel == 1){ //中度危险
|
|
U = 1.0;
|
|
m_csRet2 = _T("55B");
|
|
}
|
|
else if(m_iLevel == 2){ //严重危险度
|
|
U = 0.5;
|
|
m_csRet2 = _T("89B");
|
|
}
|
|
}
|
|
if(m_iEnviroment == 0) //无消火栓和灭火系统
|
|
{
|
|
K = 1.0;
|
|
m_sFireControl = _T("无消火栓和灭火系统");
|
|
}
|
|
else if(m_iEnviroment == 1)//只有消火栓
|
|
{
|
|
K = 0.9;
|
|
m_sFireControl = _T("只有消火栓");
|
|
}
|
|
else if(m_iEnviroment == 2)//只有灭火系统
|
|
{
|
|
K = 0.7;
|
|
m_sFireControl = _T("只有灭火系统");
|
|
}
|
|
else if(m_iEnviroment == 3)//有消火栓和灭火系统
|
|
{
|
|
K = 0.5;
|
|
m_sFireControl = _T("有消火栓和灭火系统");
|
|
}
|
|
else if(m_iEnviroment == 4)//可燃物露天堆场、甲乙丙类液体储罐区、可燃气体储罐区
|
|
{
|
|
K = 0.3;
|
|
m_sFireControl = _T("可燃物露天堆场、甲乙丙类液体储罐区、可燃气体储罐区");
|
|
}
|
|
|
|
|
|
if(m_iArch == 0){ //地上建筑
|
|
csTmp = _T("Q=K*S/U");
|
|
//公式: Q = K * S/U Q:灭火等级,S:保护面积,U:(每A,B最大保护面积) K:修正系数
|
|
Q = K*m_nArea/U;
|
|
}
|
|
else{ //地下建筑
|
|
//公式: Q = 1.3*K * S/U Q:灭火等级,S:保护面积,U:(每A,B最大保护面积) K:修正系数
|
|
Q = 1.3*K*m_nArea/U;
|
|
csTmp = _T("Q=1.3*K*S/U");
|
|
}
|
|
m_csRet1.Format(_T("%.2f %s"), Q, csUnit);
|
|
|
|
m_dUnitArea = U;
|
|
m_dK = K;
|
|
m_dQ = Q;
|
|
m_csCalc.Format(_T("计算过程:建筑保护面积S=%.1f平方米 配置基准U=%.1f 修正系数K=%.1f %s"), m_nArea, U, K, csTmp);
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CExtinguisherCalcDlg::OnButtonHelpfire()
|
|
{
|
|
UpdateData();
|
|
CString csMsg;
|
|
if(m_iFire == 0){
|
|
csMsg = _T("A类火灾:指含碳固体可染物,如木材、棉、毛、麻、纸张等燃烧的火灾\n\n");
|
|
csMsg += _T("存在A类火灾危险的工业建筑场所举例\n");
|
|
csMsg += _T("1:木工厂房和竹、藤加工厂房\n");
|
|
csMsg += _T("2:针织、纺织、化纤生产厂房\n");
|
|
csMsg += _T("3:服装加工厂和印染厂房\n");
|
|
csMsg += _T("4:毛纺厂粗加工厂房和毛涤厂选毛厂房\n");
|
|
csMsg += _T("5:谷物加工厂房\n");
|
|
csMsg += _T("6:卷烟厂的切丝、卷制、包装厂房\n");
|
|
csMsg += _T("7:印刷厂印刷厂房\n");
|
|
csMsg += _T("8:纸张、竹木、及其制品的库房\n");
|
|
csMsg += _T("9:人造纤维及其织物的库房,棉、毛、丝、麻及其织物的库房\n");
|
|
csMsg += _T("10:火柴、香烟、糖、茶叶库房\n");
|
|
csMsg += _T("11:中药材库房\n");
|
|
csMsg += _T("12:橡胶、塑料及其制品的库房\n\n");
|
|
|
|
csMsg += _T("存在A类火灾危险的民用建筑场所举例\n");
|
|
csMsg += _T("1:资料室、档案室\n");
|
|
csMsg += _T("2:旅馆客房\n");
|
|
csMsg += _T("3:电影院、剧院、会堂、礼堂的舞台及后台\n");
|
|
csMsg += _T("4:医院的病历室\n");
|
|
csMsg += _T("5:博物馆\n");
|
|
csMsg += _T("6:电影、电视摄影棚\n");
|
|
csMsg += _T("7:图书馆、美术馆\n");
|
|
csMsg += _T("8:百货楼、营业厅、商场\n");
|
|
csMsg += _T("9:邮政信函和包裹分检房、邮袋库\n");
|
|
csMsg += _T("10:文物保护场所\n");
|
|
csMsg += _T("11:教学楼\n");
|
|
csMsg += _T("12:办公楼\n");
|
|
}
|
|
else{
|
|
csMsg = _T("B类火灾:指甲乙丙类液体,如汽油、煤油、柴油、甲醇、乙醚、丙酮等燃烧的火灾\n\n");
|
|
csMsg += _T("存在B类火灾危险的工业建筑场所举例\n");
|
|
csMsg += _T("1:甲、乙、丙类油品和有机溶剂的提炼、回收、洗涤部位及其泵房、罐桶间\n");
|
|
csMsg += _T("2:甲醇、乙醇、丙酮、丁酮、异丙醇、醋酸乙酯、苯的合成或精制厂房\n");
|
|
csMsg += _T("3:植物油加工厂的浸出厂房和精练厂房\n");
|
|
csMsg += _T("4:白酒库房\n");
|
|
csMsg += _T("5:工业用燃油锅炉房\n");
|
|
csMsg += _T("6:柴油、机器油或变压器油罐桶间\n");
|
|
csMsg += _T("7:油淬火处理车间\n");
|
|
csMsg += _T("8:汽车加油库、修车间\n\n");
|
|
|
|
csMsg += _T("存在B类火灾危险的民用建筑场所举例\n");
|
|
csMsg += _T("1:民用燃油锅炉房\n");
|
|
csMsg += _T("2:使用甲、乙、丙类液体和有机溶剂、试剂的理化实验室及库房\n");
|
|
csMsg += _T("3:房修公司的油漆间及其库房\n");
|
|
csMsg += _T("4:厨房的烹调油锅灶\n");
|
|
csMsg += _T("5:民用的油浸变压器室、充油电容器室、注油开关室\n");
|
|
csMsg += _T("6:汽车加油站\n");
|
|
}
|
|
|
|
AfxMessageBox(csMsg);
|
|
}
|
|
|
|
void CExtinguisherCalcDlg::OnButtonHelplevel()
|
|
{
|
|
UpdateData();
|
|
CString csMsg;
|
|
csMsg = _T("民用建筑危险等级的分级举例\n\n");
|
|
if(m_iLevel == 2){
|
|
csMsg += _T("严重危险级\n");
|
|
csMsg += _T("1:重要的资料室、档案室\n");
|
|
csMsg += _T("2:设备贵重或可燃物多的实验室\n");
|
|
csMsg += _T("3:广播电视演播室、道具间\n");
|
|
csMsg += _T("4:电子计算机房及数据库\n");
|
|
csMsg += _T("5:重要的电信机房及数据库\n");
|
|
csMsg += _T("6:高级旅馆的公共活动用房及大厨房\n");
|
|
csMsg += _T("7:电影院、剧院、会堂、礼堂的舞台及后台部位\n");
|
|
csMsg += _T("8:医院的手术室、药房和病历室\n");
|
|
csMsg += _T("9:博物馆、图书馆的珍藏室、复印室\n");
|
|
csMsg += _T("10:电影电视摄影棚\n");
|
|
}
|
|
else if(m_iLevel == 1){
|
|
csMsg += _T("中危险级\n");
|
|
csMsg += _T("1:设有空调设备、电子计算机、复印机等的办公室\n");
|
|
csMsg += _T("2:学校或科研单位的理化实验室\n");
|
|
csMsg += _T("3:广播、电视的录音室、播音室\n");
|
|
csMsg += _T("4:高级旅馆的其它部位\n");
|
|
csMsg += _T("5:电影院、剧院、会堂、礼堂、体育馆的放映室\n");
|
|
csMsg += _T("6:百货楼、营业厅、综合商场\n");
|
|
csMsg += _T("7:图书馆、书库\n");
|
|
csMsg += _T("8:多功能厅、餐厅、及厨房\n");
|
|
csMsg += _T("9:展览厅\n");
|
|
csMsg += _T("10:医院的理疗室、透视室、心电图室\n");
|
|
csMsg += _T("11:重点文物保护场所\n");
|
|
csMsg += _T("12:邮政信函和包裹分检房、邮袋库\n");
|
|
csMsg += _T("13:高级住宅\n");
|
|
csMsg += _T("14:燃油、燃气锅炉房\n");
|
|
csMsg += _T("15:民用的油浸变压器室和高、低压配电室\n");
|
|
}
|
|
else if(m_iLevel == 0){
|
|
csMsg += _T("轻危险级\n\n");
|
|
csMsg += _T("1:电影院、剧院、会堂、礼堂、体育馆的观众厅\n");
|
|
csMsg += _T("2:医院门诊部、住院部\n");
|
|
csMsg += _T("3:学校教学楼、幼儿园与托儿所的活动室\n");
|
|
csMsg += _T("4:办公楼\n");
|
|
csMsg += _T("5:车站、码头、机场的候车、候船、候机厅\n");
|
|
csMsg += _T("6:普通旅馆\n");
|
|
csMsg += _T("7:商店\n");
|
|
csMsg += _T("8:10层及10层以上的普通住宅\n");
|
|
}
|
|
AfxMessageBox(csMsg);
|
|
|
|
}
|
|
|
|
void CExtinguisherCalcDlg::OnButtonType()
|
|
{
|
|
UpdateData();
|
|
CString csMsg;
|
|
csMsg = _T("灭火器的灭火级别\n\n");
|
|
csMsg += _T("灭火器类别 灭火级别 型号规格\n");
|
|
/* if(m_iFire == 0){
|
|
csMsg += _T("水(手提式) 5A MS7(MSQ7)\n");
|
|
csMsg += _T("水(手提式) 8A MS9(MSQ9)\n");
|
|
csMsg += _T("化学泡沫(手提式) 5A MP6\n");
|
|
csMsg += _T("化学泡沫(手提式) 8A MP9\n");
|
|
csMsg += _T("化学泡沫(推车式) 13A MPT40\n");
|
|
csMsg += _T("化学泡沫(推车式) 21A MPT65\n");
|
|
csMsg += _T("化学泡沫(推车式) 27A MPT90\n");
|
|
csMsg += _T("干粉-磷酸铵盐(手提式) 3A MFAC1\n");
|
|
csMsg += _T("干粉-磷酸铵盐(手提式) 5A MFAC2\n");
|
|
csMsg += _T("干粉-磷酸铵盐(手提式) 5A MFAC3\n");
|
|
csMsg += _T("干粉-磷酸铵盐(手提式) 8A MFAC4\n");
|
|
csMsg += _T("干粉-磷酸铵盐(手提式) 8A MFAC5\n");
|
|
csMsg += _T("干粉-磷酸铵盐(手提式) 13A MFAC6\n");
|
|
csMsg += _T("干粉-磷酸铵盐(手提式) 13A MFAC8\n");
|
|
csMsg += _T("干粉-磷酸铵盐(手提式) 21A MFAC10\n");
|
|
csMsg += _T("干粉-磷酸铵盐(推车式) 21A MFAT25\n");
|
|
csMsg += _T("干粉-磷酸铵盐(推车式) 27A MFAT35\n");
|
|
csMsg += _T("干粉-磷酸铵盐(推车式) 34A MFAT50\n");
|
|
csMsg += _T("干粉-磷酸铵盐(推车式) 43A MFAT70\n");
|
|
csMsg += _T("干粉-磷酸铵盐(推车式) 55A MFAT100\n");
|
|
}
|
|
else{
|
|
csMsg += _T("化学泡沫(手提式) 2B MP6\n");
|
|
csMsg += _T("化学泡沫(手提式) 4B MP9\n");
|
|
csMsg += _T("化学泡沫(推车式) 18B MPT40\n");
|
|
csMsg += _T("化学泡沫(推车式) 25B MPT65\n");
|
|
csMsg += _T("化学泡沫(推车式) 35B MPT90\n");
|
|
csMsg += _T("干粉-碳酸氢钠(手提式) 2B MFN1\n");
|
|
csMsg += _T("干粉-碳酸氢钠(手提式) 5B MFN2\n");
|
|
csMsg += _T("干粉-碳酸氢钠(手提式) 7B MFN3\n");
|
|
csMsg += _T("干粉-碳酸氢钠(手提式) 10B MFN4\n");
|
|
csMsg += _T("干粉-碳酸氢钠(手提式) 12B MFN5\n");
|
|
csMsg += _T("干粉-碳酸氢钠(手提式) 14B MFN6\n");
|
|
csMsg += "干粉-碳酸氢钠(手提式) 18B MFN8\n";
|
|
csMsg += "干粉-碳酸氢钠(手提式) 20B MFN10\n";
|
|
csMsg += "干粉-碳酸氢钠(推车式) 35B MFNCT25\n";
|
|
csMsg += "干粉-碳酸氢钠(推车式) 45B MFNCT35\n";
|
|
csMsg += "干粉-碳酸氢钠(推车式) 65B MFNCT50\n";
|
|
csMsg += "干粉-碳酸氢钠(推车式) 90B MFNCT70\n";
|
|
csMsg += "干粉-碳酸氢钠(推车式) 120B MFNCT100\n";
|
|
csMsg += "干粉-磷酸铵盐(手提式) 2B MFAC1\n";
|
|
csMsg += "干粉-磷酸铵盐(手提式) 5B MFAC2\n";
|
|
csMsg += "干粉-磷酸铵盐(手提式) 7B MFAC3\n";
|
|
csMsg += "干粉-磷酸铵盐(手提式) 10B MFAC4\n";
|
|
csMsg += "干粉-磷酸铵盐(手提式) 12B MFAC5\n";
|
|
csMsg += "干粉-磷酸铵盐(手提式) 14B MFAC6\n";
|
|
csMsg += "干粉-磷酸铵盐(手提式) 18B MFAC8\n";
|
|
csMsg += "干粉-磷酸铵盐(手提式) 20B MFAC10\n";
|
|
csMsg += "干粉-磷酸铵盐(推车式) 35B MFAT25\n";
|
|
csMsg += "干粉-磷酸铵盐(推车式) 45B MFAT35\n";
|
|
csMsg += "干粉-磷酸铵盐(推车式) 65B MFAT50\n";
|
|
csMsg += "干粉-磷酸铵盐(推车式) 90B MFAT70\n";
|
|
csMsg += "干粉-磷酸铵盐(推车式) 120B MFAT100\n";
|
|
csMsg += "二氧化碳(手提式) 1B MT2\n";
|
|
csMsg += "二氧化碳(手提式) 2B MT3\n";
|
|
csMsg += "二氧化碳(手提式) 3B MT5\n";
|
|
csMsg += "二氧化碳(手提式) 4B MT7\n";
|
|
csMsg += "二氧化碳(推车式) 8B MTT20\n";
|
|
csMsg += "二氧化碳(推车式) 10B MTT25\n";
|
|
}
|
|
*/
|
|
//7.0 新参数
|
|
if(m_iFire == 0){
|
|
csMsg += _T("水 1A MS/Q3\n");
|
|
csMsg += _T("水 1A MS/T3\n");
|
|
csMsg += _T("水 1A MS/Q6\n");
|
|
csMsg += _T("水 1A MS/T6\n");
|
|
csMsg += _T("水 2A MS/Q9\n");
|
|
csMsg += _T("水 2A MS/T9\n");
|
|
csMsg += _T("泡沫 1A MP3、MP/AR3\n");
|
|
csMsg += _T("泡沫 1A MP4、MP/AR4\n");
|
|
csMsg += _T("泡沫 1A MP6、MP/AR6\n");
|
|
csMsg += _T("泡沫 2A MP9、MP/AR9\n");
|
|
csMsg += _T("干粉-磷酸铵盐 1A MF/ABC1\n");
|
|
csMsg += _T("干粉-磷酸铵盐 1A MF/ABC2\n");
|
|
csMsg += _T("干粉-磷酸铵盐 2A MF/ABC3\n");
|
|
csMsg += _T("干粉-磷酸铵盐 2A MF/ABC4\n");
|
|
csMsg += _T("干粉-磷酸铵盐 3A MF/ABC5\n");
|
|
csMsg += _T("干粉-磷酸铵盐 3A MF/ABC6\n");
|
|
csMsg += _T("干粉-磷酸铵盐 4A MF/ABC8\n");
|
|
csMsg += _T("干粉-磷酸铵盐 6A MF/ABC10\n");
|
|
csMsg += _T("卤代烷 0.5A MY2\n");
|
|
csMsg += _T("卤代烷 0.5A MY3\n");
|
|
csMsg += _T("卤代烷 1A MY4\n");
|
|
csMsg += _T("卤代烷 1A MY6\n");
|
|
}
|
|
else{
|
|
csMsg += _T("水 55B MS/T3\n");
|
|
csMsg += _T("水 55B MS/T6\n");
|
|
csMsg += _T("水 89B MS/T9\n");
|
|
|
|
csMsg += _T("泡沫 55B MP3、MP/AR3\n");
|
|
csMsg += _T("泡沫 55B MP4、MP/AR4\n");
|
|
csMsg += _T("泡沫 55B MP6、MP/AR6\n");
|
|
csMsg += _T("泡沫 89B MP9、MP/AR9\n");
|
|
|
|
csMsg += _T("干粉-碳酸氢钠 21B MF1\n");
|
|
csMsg += _T("干粉-碳酸氢钠 21B MF2\n");
|
|
csMsg += _T("干粉-碳酸氢钠 34B MF3\n");
|
|
csMsg += _T("干粉-碳酸氢钠 55B MF4\n");
|
|
csMsg += _T("干粉-碳酸氢钠 89B MF5\n");
|
|
csMsg += _T("干粉-碳酸氢钠 89B MF6\n");
|
|
csMsg += _T("干粉-碳酸氢钠 144B MF8\n");
|
|
csMsg += _T("干粉-碳酸氢钠 144B MF10\n");
|
|
|
|
csMsg += _T("干粉-磷酸铵盐 21B MF/ABC1\n");
|
|
csMsg += _T("干粉-磷酸铵盐 21B MF/ABC2\n");
|
|
csMsg += _T("干粉-磷酸铵盐 34B MF/ABC3\n");
|
|
csMsg += _T("干粉-磷酸铵盐 55B MF/ABC4\n");
|
|
csMsg += _T("干粉-磷酸铵盐 89B MF/ABC5\n");
|
|
csMsg += _T("干粉-磷酸铵盐 89B MF/ABC6\n");
|
|
csMsg += _T("干粉-磷酸铵盐 144B MF/ABC8\n");
|
|
csMsg += _T("干粉-磷酸铵盐 144B MF/ABC10\n");
|
|
|
|
csMsg += _T("卤代烷 21B MY1\n");
|
|
csMsg += _T("卤代烷 21B MY2\n");
|
|
csMsg += _T("卤代烷 34B MY3\n");
|
|
csMsg += _T("卤代烷 34B MY4\n");
|
|
csMsg += _T("卤代烷 55B MY6\n");
|
|
|
|
csMsg += _T("二氧化碳 21B MT2\n");
|
|
csMsg += _T("二氧化碳 21B MT3\n");
|
|
csMsg += _T("二氧化碳 34B MT5\n");
|
|
csMsg += _T("二氧化碳 55B MT7\n");
|
|
}
|
|
|
|
AfxMessageBox(csMsg);
|
|
|
|
}
|
|
|
|
void CExtinguisherCalcDlg::OnButtonType2()
|
|
{
|
|
UpdateData();
|
|
CString csMsg;
|
|
csMsg = _T("灭火器的灭火级别\n\n");
|
|
csMsg += _T("灭火器类别 灭火级别 型号规格\n");
|
|
|
|
if(m_iFire == 0){
|
|
csMsg += _T("水 4A MST20\n");
|
|
csMsg += _T("水 4A MST40\n");
|
|
csMsg += _T("水 4A MST60\n");
|
|
csMsg += _T("水 6A MST125\n");
|
|
csMsg += _T("泡沫 4A MPT20、MPT/AR20\n");
|
|
csMsg += _T("泡沫 4A MPT40、MPT/AR40\n");
|
|
csMsg += _T("泡沫 4A MPT60、MPT/AR60\n");
|
|
csMsg += _T("泡沫 6A MPT125、MPT/AR125\n");
|
|
csMsg += _T("干粉-磷酸铵盐 6A MFT/ABC20\n");
|
|
csMsg += _T("干粉-磷酸铵盐 8A MFT/ABC50\n");
|
|
csMsg += _T("干粉-磷酸铵盐 10A MFT/ABC100\n");
|
|
csMsg += _T("干粉-磷酸铵盐 10A MFT/ABC125\n");
|
|
}
|
|
else{
|
|
|
|
csMsg += _T("泡沫 113B MPT20、MPT/AR20\n");
|
|
csMsg += _T("泡沫 144B MPT40、MPT/AR40\n");
|
|
csMsg += _T("泡沫 233B MPT60、MPT/AR60\n");
|
|
csMsg += _T("泡沫 297B MPT125、MPT/AR125\n");
|
|
|
|
csMsg += _T("干粉-碳酸氢钠 183B MFT20\n");
|
|
csMsg += _T("干粉-碳酸氢钠 297B MFT50\n");
|
|
csMsg += _T("干粉-碳酸氢钠 297B MFT100\n");
|
|
csMsg += _T("干粉-碳酸氢钠 297B MFT125\n");
|
|
|
|
|
|
csMsg += _T("干粉-磷酸铵盐 183B MFT/ABC20\n");
|
|
csMsg += _T("干粉-磷酸铵盐 297B MFT/ABC50\n");
|
|
csMsg += _T("干粉-磷酸铵盐 297B MFT/ABC100\n");
|
|
csMsg += _T("干粉-磷酸铵盐 297B MFT/ABC125\n");
|
|
|
|
|
|
csMsg += _T("卤代烷 70B MYT10\n");
|
|
csMsg += _T("卤代烷 144B MYT20\n");
|
|
csMsg += _T("卤代烷 183B MYT30\n");
|
|
csMsg += _T("卤代烷 297B MYT50\n");
|
|
|
|
csMsg += _T("二氧化碳 55B MTT10\n");
|
|
csMsg += _T("二氧化碳 70B MTT20\n");
|
|
csMsg += _T("二氧化碳 113B MTT30\n");
|
|
csMsg += _T("二氧化碳 183B MTT50\n");
|
|
}
|
|
|
|
AfxMessageBox(csMsg);
|
|
}
|
|
|
|
void CExtinguisherCalcDlg::OnBtnBook()
|
|
{
|
|
if (fabs(m_dQ) < 1e-3)
|
|
{
|
|
AfxMessageBox(_T("请先进行计算!"));
|
|
return;
|
|
}
|
|
|
|
COleVariant vtOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR), vtTrue((short)TRUE), vtFalse((short)FALSE);
|
|
_Application wordApplication;
|
|
Documents wordDocuments;
|
|
_Document activeDocument;
|
|
Paragraphs wordParagraphs;
|
|
Selection wordSelection;
|
|
|
|
if (!wordApplication.CreateDispatch(_T("Word.Application")))
|
|
{
|
|
AfxMessageBox(_T("不能执行Microsoft Word 8.0!"));
|
|
return;
|
|
}
|
|
wordApplication.SetVisible(TRUE);
|
|
wordDocuments = wordApplication.GetDocuments();
|
|
activeDocument = wordDocuments.Add(vtOptional,vtOptional);
|
|
|
|
//写一行字
|
|
wordSelection = wordApplication.GetSelection();
|
|
wordParagraphs = wordSelection.GetParagraphs();
|
|
wordParagraphs.SetAlignment(1); // 0: 居左 1:居中 2:居右
|
|
wordSelection.TypeText(_T("灭火器的灭火等级计算\n"));
|
|
wordParagraphs.SetAlignment(0); // 0: 居左 1:居中 2:居右
|
|
|
|
wordSelection.TypeText(_T("\n依据<<建筑灭火器配置设计规范(GB50140-2005)>>\n"));
|
|
if (m_iArch == 0)
|
|
{
|
|
wordSelection.TypeText(_T("地面以上建筑计算单元的最小需配灭火级别计算公式:\n"));
|
|
wordSelection.TypeText(_T("Q = K * (S / U)\n"));
|
|
}
|
|
else
|
|
{
|
|
wordSelection.TypeText(_T("地面以下场所计算单元的最小需配灭火级别计算公式:\n"));
|
|
wordSelection.TypeText(_T("Q = 1.3 * K * (S / U)\n"));
|
|
}
|
|
|
|
wordSelection.TypeText(_T("Q - 计算单元的最小需配灭火级别(A或B)\n"));
|
|
wordSelection.TypeText(_T("S - 计算单元的保护面积(m2)\n"));
|
|
wordSelection.TypeText(_T("U - A类或B类火灾场所单位灭火级别最大保护面积(m2/A 或 m2/B)\n"));
|
|
wordSelection.TypeText(_T("K - 修正系数\n"));
|
|
wordSelection.TypeText(_T("\n修正系数\n"));
|
|
|
|
//修正系数表
|
|
int rows(6), columns(2);
|
|
Selection wSelection = wordApplication.GetSelection();
|
|
Range oRange = wSelection.GetRange();
|
|
Tables oTables = activeDocument.GetTables();
|
|
_Table oTable = oTables.Add(oRange, rows, columns);
|
|
// cet 2010.3.25 add
|
|
Borders oBorders = oTable.GetBorders();
|
|
oBorders.SetInsideLineStyle(1); // 设置表格线型
|
|
oBorders.SetOutsideLineStyle(1);
|
|
|
|
Columns oColumns;
|
|
Column oColumn;
|
|
oColumns = oTable.GetColumns();
|
|
oColumn = oColumns.Item(1);
|
|
oColumn.SetWidth(190, 0); // 0 = wdAdjustNone
|
|
oColumn = oColumns.Item(2);
|
|
oColumn.SetWidth(85, 0);
|
|
|
|
Cell oCell;
|
|
oCell = oTable.Cell(1, 1);
|
|
oRange = oCell.GetRange();
|
|
oRange.InsertAfter(_T("计算单元"));
|
|
|
|
oCell = oTable.Cell(1, 2);
|
|
oRange = oCell.GetRange();
|
|
oRange.InsertAfter(_T("k"));
|
|
|
|
InitTableData();
|
|
|
|
for(int i=1;i<6;i++)
|
|
{
|
|
oCell = oTable.Cell(i+1, 1);
|
|
oRange = oCell.GetRange();
|
|
oRange.InsertAfter(m_arFactName[i-1]);
|
|
|
|
oCell = oTable.Cell(i+1, 2);
|
|
oRange = oCell.GetRange();
|
|
oRange.InsertAfter(m_arFactValue[i-1]);
|
|
}
|
|
|
|
COleVariant vtOptional2((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
|
|
wordSelection = wordApplication.GetSelection();
|
|
wordSelection.GoTo(COleVariant((short)3), // 3 = wdGoToLine
|
|
COleVariant((short)-1),vtOptional2,vtOptional2); // -1 = wdGoToLast
|
|
|
|
wSelection = wordApplication.GetSelection();
|
|
wSelection.TypeParagraph();
|
|
wordSelection.TypeText(_T("式中U的取值见下表:\n"));
|
|
if (m_iFire == 0)
|
|
wordSelection.TypeText(_T("A类火灾场所灭火器的最低配置基准\n"));
|
|
else
|
|
wordSelection.TypeText(_T("B类火灾场所灭火器的最低配置基准\n"));
|
|
|
|
//配置表
|
|
rows = 3,columns = 4;
|
|
Range oRange2 = wSelection.GetRange();
|
|
Tables oTables2 = activeDocument.GetTables();
|
|
_Table oTable2 = oTables2.Add(oRange2, rows, columns);
|
|
// cet 2010.3.25 add
|
|
Borders oBorders2 = oTable2.GetBorders();
|
|
oBorders2.SetInsideLineStyle(1); // 设置表格线型
|
|
oBorders2.SetOutsideLineStyle(1);
|
|
|
|
oColumns = oTable2.GetColumns();
|
|
oColumn = oColumns.Item(1);
|
|
oColumn.SetWidth(190, 0); // 0 = wdAdjustNone
|
|
oColumn = oColumns.Item(2);
|
|
oColumn.SetWidth(85, 0);
|
|
oColumn = oColumns.Item(3);
|
|
oColumn.SetWidth(85, 0);
|
|
oColumn = oColumns.Item(4);
|
|
oColumn.SetWidth(85, 0);
|
|
|
|
oCell = oTable2.Cell(1, 1);
|
|
oRange = oCell.GetRange();
|
|
oRange.InsertAfter(_T("危险等级"));
|
|
|
|
oCell = oTable2.Cell(1, 2);
|
|
oRange = oCell.GetRange();
|
|
oRange.InsertAfter(_T("严重危险等级"));
|
|
|
|
oCell = oTable2.Cell(1, 3);
|
|
oRange = oCell.GetRange();
|
|
oRange.InsertAfter(_T("中危险等级"));
|
|
|
|
oCell = oTable2.Cell(1, 4);
|
|
oRange = oCell.GetRange();
|
|
oRange.InsertAfter(_T("轻危险级"));
|
|
|
|
oCell = oTable2.Cell(2, 1);
|
|
oRange = oCell.GetRange();
|
|
oRange.InsertAfter(_T("单具灭火器最小配置灭火级别"));
|
|
|
|
oCell = oTable2.Cell(2, 2);
|
|
oRange = oCell.GetRange();
|
|
if (m_iFire == 0)
|
|
oRange.InsertAfter(_T("3A"));
|
|
else
|
|
oRange.InsertAfter(_T("89B"));
|
|
|
|
oCell = oTable2.Cell(2, 3);
|
|
oRange = oCell.GetRange();
|
|
if (m_iFire == 0)
|
|
oRange.InsertAfter(_T("2A"));
|
|
else
|
|
oRange.InsertAfter(_T("55B"));
|
|
|
|
oCell = oTable2.Cell(2, 4);
|
|
oRange = oCell.GetRange();
|
|
if (m_iFire == 0)
|
|
oRange.InsertAfter(_T("1A"));
|
|
else
|
|
oRange.InsertAfter(_T("21B"));
|
|
|
|
oCell = oTable2.Cell(3, 1);
|
|
oRange = oCell.GetRange();
|
|
if (m_iFire == 0)
|
|
oRange.InsertAfter(_T("单位灭火级别最大保护面积(m2/A)"));
|
|
else
|
|
oRange.InsertAfter(_T("单位灭火级别最大保护面积(m2/B)"));
|
|
|
|
oCell = oTable2.Cell(3, 2);
|
|
oRange = oCell.GetRange();
|
|
if (m_iFire == 0)
|
|
oRange.InsertAfter(_T("50"));
|
|
else
|
|
oRange.InsertAfter(_T("0.5"));
|
|
|
|
oCell = oTable2.Cell(3, 3);
|
|
oRange = oCell.GetRange();
|
|
if (m_iFire == 0)
|
|
oRange.InsertAfter(_T("75"));
|
|
else
|
|
oRange.InsertAfter(_T("1.0"));
|
|
|
|
oCell = oTable2.Cell(3, 4);
|
|
oRange = oCell.GetRange();
|
|
if (m_iFire == 0)
|
|
oRange.InsertAfter(_T("100"));
|
|
else
|
|
oRange.InsertAfter(_T("1.5"));
|
|
|
|
COleVariant vtOptional3((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
|
|
wordSelection = wordApplication.GetSelection();
|
|
wordSelection.GoTo(COleVariant((short)3), // 3 = wdGoToLine
|
|
COleVariant((short)-1),vtOptional3,vtOptional3); // -1 = wdGoToLast
|
|
|
|
CString sTmpText,sDangerRate;
|
|
wSelection = wordApplication.GetSelection();
|
|
wSelection.TypeParagraph();
|
|
wordSelection.TypeText(_T("已知条件:\n"));
|
|
sTmpText.Format(_T("灭火配置场所的保护面积:S = %.2f平方米\n"),m_nArea);
|
|
wordSelection.TypeText(sTmpText);
|
|
|
|
if (m_iLevel == 0)
|
|
sDangerRate = _T("轻危险级");
|
|
else if (m_iLevel == 1)
|
|
sDangerRate = _T("中危险级");
|
|
else if (m_iLevel == 2)
|
|
sDangerRate = _T("严重危险级");
|
|
|
|
if (m_iFire == 0)
|
|
sTmpText.Format(_T("危险等级,火灾级别:%s,A类火灾\n"),sDangerRate);
|
|
else
|
|
sTmpText.Format(_T("危险等级,火灾级别:%s,B类火灾\n"),sDangerRate);
|
|
wordSelection.TypeText(sTmpText);
|
|
|
|
if (m_iFire == 0)
|
|
sTmpText.Format(_T("单位灭火级别最大保护面积:U = %.1f(m2/A)\n"),m_dUnitArea);
|
|
else
|
|
sTmpText.Format(_T("单位灭火级别最大保护面积:U = %.1f(m2/B)\n"),m_dUnitArea);
|
|
|
|
wordSelection.TypeText(sTmpText);
|
|
sTmpText.Format(_T("灭火设施情况:%s\n"),m_sFireControl);
|
|
wordSelection.TypeText(sTmpText);
|
|
sTmpText.Format(_T("修正系数:K = %.1f\n"),m_dK);
|
|
wordSelection.TypeText(sTmpText);
|
|
|
|
wordSelection.TypeText(_T("\n计算结果:\n"));
|
|
if (m_iFire == 0)
|
|
sTmpText.Format(_T("灭火器配置所需的灭火级别:Q = %.2fA\n"),m_dQ);
|
|
else
|
|
sTmpText.Format(_T("灭火器配置所需的灭火级别:Q = %.2fB\n"),m_dQ);
|
|
wordSelection.TypeText(sTmpText);
|
|
sTmpText.Format(_T("单具灭火器最小配置灭火级别:%s\n"),m_csRet2);
|
|
wordSelection.TypeText(sTmpText);
|
|
|
|
}
|
|
|
|
//初始化WORD中表格数据
|
|
void CExtinguisherCalcDlg::InitTableData()
|
|
{
|
|
m_arFactName.RemoveAll();
|
|
m_arFactValue.RemoveAll();
|
|
|
|
m_arFactName.Add(_T("未设室内消火栓系统和灭火系统"));
|
|
m_arFactName.Add(_T("设有室内消火栓系统"));
|
|
m_arFactName.Add(_T("设有灭火系统"));
|
|
m_arFactName.Add(_T("设有室内消火栓系统和灭火系统"));
|
|
m_arFactName.Add(_T("可燃物露天堆场\n甲、乙、丙类液体储罐区\n可燃气体储罐区"));
|
|
|
|
m_arFactValue.Add(_T("1.0"));
|
|
m_arFactValue.Add(_T("0.9"));
|
|
m_arFactValue.Add(_T("0.7"));
|
|
m_arFactValue.Add(_T("0.5"));
|
|
m_arFactValue.Add(_T("0.3"));
|
|
}
|