// ExtinguisherCalcDlg.cpp : implementation file // #include "stdafx.h" #include "ExtinguisherCalcDlg.h" #include #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")); }