// MostuseWaterCalcDlg.cpp : implementation file // #include "stdafx.h" #include "MostuseWaterCalcDlg.h" #include #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif CMostuseWaterCalcGrid::CMostuseWaterCalcGrid() { m_nACRow = -1; m_pDlg = NULL; } bool CMostuseWaterCalcGrid::OnModified(WDGridCell&cell,CString &text) { long nCol = GetCurRowIndex(); long nCol2 = cell.GetColIndex(); long nRow = cell.GetRowIndex(); if (cell.GetCol().GetIndex() == 3) { int nNum = _ttoi(text); if (nCol != -1 && nCol < m_pLstUnit->Length()) { (*m_pLstUnit)[nCol]->m_iNum = nNum; } } else if (nRow == m_nACRow && m_pDlg != NULL) // cet 2013.4.16 add { if (nCol2 == 4) { m_pDlg->SetACUseTime(text); } else if (nCol2 == 5) { m_pDlg->SetACRatio(text); } else if (nCol2 == 7) { m_pDlg->SetACMaxTime(text); } } return true; } void CMostuseWaterCalcGrid::OnBeforeRefresh( WDGridCell &cell ) { int nRow = cell.GetRowIndex(); int nCol = cell.GetColIndex(); if (nRow == m_nACRow && (nCol == 4 || nCol == 5 || nCol == 7)) { CDC&dc=GetDC(); COLORREF color = acedGetRGB(1); dc.SetTextColor(color); dc.SetBkMode(TRANSPARENT); } else { WDGrid::OnBeforeRefresh(cell); } } void CMostuseWaterCalcGrid::SetACRow( int nRow ) { m_nACRow = nRow; } bool CMostuseWaterCalcGrid::OnBeforeEdit( WDGridCell&cell,bool &bModified ) { int nRow = cell.GetRowIndex(); int nCol = cell.GetColIndex(); if (nCol == 3 || nCol == 4 || nCol == 5 || nCol == 7) { if ((m_nACRow == nRow && nCol != 3) || (nCol == 3 && m_nACRow != nRow)) { return WDGrid::OnBeforeEdit(cell, bModified); } else { bModified = false; return false; } } else { return WDGrid::OnBeforeEdit(cell, bModified); } } void CMostuseWaterCalcGrid::SetDlg( CMostuseWaterCalcDlg *pDlg ) { m_pDlg = pDlg; } ///////////////////////////////////////////////////////////////////////////// // CMostuseWaterCalcDlg dialog void MostUseWaterCalc() { // cet 2013.4.7 modify 改成非模态 // CTemporaryResourceOverride vTemp; // CMostuseWaterCalcDlg dlg // dlg.DoModal(); CTemporaryResourceOverride vTemp; CMostuseWaterCalcDlg dlg(1, acedGetAcadFrame()); dlg.Create(IDD_MOSTUSE_WATER_CALC, acedGetAcadFrame()); dlg.ShowWindow(SW_SHOW); // 通过隐含的用户交互函数暂停程序,以便完成操作 TCHAR szKey[256]; acedInitGet(RSG_NOZERO, _T("~")); int st = 0; while( (st = acedGetKword(_T(" "), szKey)) != RTNORM) { if (st == RTCAN) { break; } } dlg.DestroyWindow(); } IMPLEMENT_DYNAMIC(CMostuseWaterCalcDlg, CModelessDialog) CMostuseWaterCalcDlg::CMostuseWaterCalcDlg(int iType, CWnd* pParent /*=NULL*/) : CModelessDialog(CMostuseWaterCalcDlg::IDD, pParent) { //{{AFX_DATA_INIT(CMostuseWaterCalcDlg) m_iPercent = 10; //}}AFX_DATA_INIT m_nACRow = -1; m_sACUseTime = _T("24"); m_sACRatio = _T("1.2"); m_sACMaxTime = _T("0.00"); } void CMostuseWaterCalcDlg::DoDataExchange(CDataExchange* pDX) { CModelessDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMostuseWaterCalcDlg) DDX_Control(pDX, IDC_LIST_ALL, m_listCtrl); DDX_Text(pDX, IDC_EDIT_PERCENT, m_iPercent); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CMostuseWaterCalcDlg, CModelessDialog) //{{AFX_MSG_MAP(CMostuseWaterCalcDlg) ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd) ON_BN_CLICKED(IDC_BUTTON_MODIFY, OnButtonModify) ON_BN_CLICKED(IDC_BUTTON_DEL, OnButtonDel) ON_NOTIFY(NM_DBLCLK, IDC_LIST_ALL, OnDblclkListAll) ON_BN_CLICKED(IDC_BUTTON_WORD, OnButtonWord) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMostuseWaterCalcDlg message handlers BOOL CMostuseWaterCalcDlg::OnInitDialog() { CModelessDialog::OnInitDialog(); // cet 2010.9.6 del 更改控件类,修改相应用法 // m_listCtrl.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); // m_listCtrl.SetItemControl(EDITBOX, 3); // m_listCtrl.InsertColumn ( 0, _T("用水部位名称"), LVCFMT_LEFT, 90 ); // m_listCtrl.InsertColumn ( 1, _T("用水标准"), LVCFMT_LEFT, 60 ); // m_listCtrl.InsertColumn ( 2, _T("单位"), LVCFMT_LEFT, 60 ); // m_listCtrl.InsertColumn ( 3, _T("数量"), LVCFMT_LEFT, 60 ); // m_listCtrl.InsertColumn ( 4, _T("用水时间"), LVCFMT_LEFT, 60 ); // m_listCtrl.InsertColumn ( 5, _T("变化系数"), LVCFMT_LEFT, 60 ); // m_listCtrl.InsertColumn ( 6, _T("最大日"), LVCFMT_LEFT, 60 ); // m_listCtrl.InsertColumn ( 7, _T("最大时"), LVCFMT_LEFT, 60 ); // m_listCtrl.InsertColumn ( 8, _T("平均时"), LVCFMT_LEFT, 60 ); // // m_listCtrl.MapControlsForSubItems(); // cet 2010.9.6 add CRect rect; m_listCtrl.GetWindowRect(&rect); ScreenToClient(&rect); m_listCtrl.Clear(); m_listCtrl.Create(this, IDC_LIST_ALL); m_listCtrl.SetNoDefaultMenu(); m_listCtrl.SetNoAppendButton(); long nWidth = rect.Width() / 10; m_listCtrl.AppendCol(_T("用水部位名称"), nWidth * 2); m_listCtrl.AppendCol(_T("用水标准"), nWidth ); m_listCtrl.AppendCol(_T("单位"), nWidth); m_listCtrl.AppendCol(_T("数量"), nWidth); m_listCtrl.AppendCol(_T("用水时间"), nWidth); m_listCtrl.AppendCol(_T("变化系数"), nWidth ); m_listCtrl.AppendCol(_T("最大日"), nWidth); m_listCtrl.AppendCol(_T("最大时"), nWidth); m_listCtrl.AppendCol(_T("平均时"), nWidth); for (int i = 0; i < 9; i++) { m_listCtrl.GetCol(i).SetReadOnly(); m_listCtrl.GetCol(i).SetCenterAlign(); } m_listCtrl.GetCol(3).SetReadOnly(false); m_listCtrl.GetCol(4).SetReadOnly(false); // cet 2013.4.16 add 4、5、7列可写 m_listCtrl.GetCol(5).SetReadOnly(false); m_listCtrl.GetCol(7).SetReadOnly(false); COLORREF color = RGB(255,0,0); m_listCtrl.GetCol(3).SetTextColor(color); m_listCtrl.FitLastCol(); m_listCtrl.SetLst(&m_lstUnit); m_listCtrl.SetDlg(this); // cet 2013.4.16 add return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CMostuseWaterCalcDlg::ResetList() { UpdateData(); // m_listCtrl.DeleteAllItems(); // cet 2010.9.6 del m_listCtrl.Clear(); // cet 2010.9.6 add int len = m_lstUnit.Length(); if(len <=0) return; double nMostByDate(0), nMostByHour(0), nAverage(0); CString csMostByDate, csMostByHour, csAverage, csPercent; for(int i=0;im_nFactor); csTime.Format(_T("%.1f"), pData->m_nTime); csStdUse.Format(_T("%.2f"), pData->m_nStdUse); csNum.Format(_T("%d"), pData->m_iNum); if(pData->m_csName == _T("游泳池(游泳池补充水)")) pData->m_nMostByDate = pData->m_iNum * pData->m_nStdUse;//单位本来就是立方米 else pData->m_nMostByDate = pData->m_iNum * pData->m_nStdUse / 1000; pData->m_nMostByHour = pData->m_nMostByDate * pData->m_nFactor / pData->m_nTime; pData->m_nAverage = pData->m_nMostByDate / pData->m_nTime; csMostByDate.Format(_T("%.2f"), pData->m_nMostByDate); csMostByHour.Format(_T("%.2f"), pData->m_nMostByHour); csAverage.Format(_T("%.2f"), pData->m_nAverage); // cet 2010.9.6 del 更换控件类修改相应方法 // m_listCtrl.InsertItem ( i, pData->m_csName, 0 ); // m_listCtrl.SetItemText ( i, 1, csStdUse); // m_listCtrl.SetItemText ( i, 2, pData->m_csUnit); // m_listCtrl.SetItemText ( i, 3, csNum); // m_listCtrl.SetItemText ( i, 4, csTime); // m_listCtrl.SetItemText ( i, 5, csFactor); // m_listCtrl.SetItemText ( i, 6, csMostByDate); // m_listCtrl.SetItemText ( i, 7, csMostByHour); // m_listCtrl.SetItemText ( i, 8, csAverage); // cet 2010.9.6 add m_listCtrl.AppendRow(); m_listCtrl.GetCell(i, 0).SetText(pData->m_csName); m_listCtrl.GetCell(i, 1).SetText(csStdUse); m_listCtrl.GetCell(i, 2).SetText(pData->m_csUnit); m_listCtrl.GetCell(i, 3).SetText(csNum); m_listCtrl.GetCell(i, 4).SetText(csTime); m_listCtrl.GetCell(i, 5).SetText(csFactor); m_listCtrl.GetCell(i, 6).SetText(csMostByDate); m_listCtrl.GetCell(i, 7).SetText(csMostByHour); m_listCtrl.GetCell(i, 8).SetText(csAverage); nMostByDate += pData->m_nMostByDate; nMostByHour += pData->m_nMostByHour; nAverage += pData->m_nAverage; } csPercent.Format(_T("%d"), m_iPercent); // cet 2010.9.6 del 更换控件类修改相应方法 // m_listCtrl.InsertItem ( len, _T("未预见水量"), 0 ); // m_listCtrl.SetItemText ( len, 1, csPercent); // m_listCtrl.SetItemText ( len, 2, _T("%")); // m_listCtrl.SetItemText ( len, 6, csMostByDate); // m_listCtrl.SetItemText ( len, 7, csMostByHour); // m_listCtrl.SetItemText ( len, 8, csAverage); // cet 2013.4.16 add 增加空调补水 jzh提供 m_listCtrl.AppendRow(); m_listCtrl.GetCell(len, 0).SetText(_T("空调补水")); m_listCtrl.GetCell(len, 4).SetText(m_sACUseTime); m_listCtrl.GetCell(len, 5).SetText(m_sACRatio); m_sACMaxDay.Format(_T("%.2f"), _tstof(m_sACUseTime) * _tstof(m_sACMaxTime) / _tstof(m_sACRatio)); m_listCtrl.GetCell(len, 6).SetText(m_sACMaxDay); m_listCtrl.GetCell(len, 7).SetText(m_sACMaxTime); m_sACAvgTime.Format(_T("%.2f"), _tstof(m_sACMaxTime) / _tstof(m_sACRatio)); m_listCtrl.GetCell(len, 8).SetText(m_sACAvgTime); m_nACRow = len; m_listCtrl.SetACRow(m_nACRow); ++len; nMostByDate += _tstof(m_sACMaxDay); nMostByHour += _tstof(m_sACMaxTime); nAverage += _tstof(m_sACAvgTime); csMostByDate.Format(_T("%.2f"), nMostByDate * m_iPercent / 100); csMostByHour.Format(_T("%.2f"), nMostByHour * m_iPercent / 100); csAverage.Format(_T("%.2f"), nAverage * m_iPercent / 100); // cet 2010.9.6 add m_listCtrl.AppendRow(); m_listCtrl.GetCell(len, 0).SetText(_T("未预见水量")); m_listCtrl.GetCell(len, 1).SetText(csPercent); m_listCtrl.GetCell(len, 2).SetText(_T("%")); m_listCtrl.GetCell(len, 6).SetText(csMostByDate); m_listCtrl.GetCell(len, 7).SetText(csMostByHour); m_listCtrl.GetCell(len, 8).SetText(csAverage); csMostByDate.Format(_T("%.2f"), nMostByDate * ((double)m_iPercent / 100 + 1)); csMostByHour.Format(_T("%.2f"), nMostByHour * ((double)m_iPercent / 100 + 1)); csAverage.Format(_T("%.2f"), nAverage * ((double)m_iPercent / 100 + 1)); // cet 2010.9.6 del 更换控件类修改相应方法 // m_listCtrl.InsertItem ( len+1, _T("总计"), 0 ); // m_listCtrl.SetItemText ( len+1, 6, csMostByDate); // m_listCtrl.SetItemText ( len+1, 7, csMostByHour); // m_listCtrl.SetItemText ( len+1, 8, csAverage); // m_listCtrl.MapControlsForSubItems(); // m_listCtrl.ShowControls(FALSE); // cet 2010.9.6 add m_listCtrl.AppendRow(); m_listCtrl.GetCell(len+1, 0).SetText(_T("总计")); m_listCtrl.GetCell(len+1, 6).SetText(csMostByDate); m_listCtrl.GetCell(len+1, 7).SetText(csMostByHour); m_listCtrl.GetCell(len+1, 8).SetText(csAverage); if(nMostByDate < 0.01) MessageBox(_T("数量未输入!可直接在表格中编辑。")); } void CMostuseWaterCalcDlg::OnButtonAdd() { CTemporaryResourceOverride vTemp; CSelUseUnitDlg dlg; if(dlg.DoModal() != IDOK) return; SUseUnitData *pData = new SUseUnitData(dlg.m_csName, dlg.m_csUnit, dlg.m_iNum, dlg.m_nStdUse, dlg.m_nFactor, dlg.m_dTime); m_lstUnit.Append(pData); ResetList(); } void CMostuseWaterCalcDlg::OnButtonModify() { // cet 2010.9.6 del // POSITION pos = m_listCtrl.GetFirstSelectedItemPosition(); // if(!pos) // return; // int nItem = m_listCtrl.GetNextSelectedItem(pos); // cet 2010.9.6 add int nItem = m_listCtrl.GetCurRowIndex(); if (nItem == -1) { return; } if(nItem >= m_lstUnit.Length()) return; CTemporaryResourceOverride vTemp; CSelUseUnitDlg dlg; dlg.m_iNum = m_lstUnit[nItem]->m_iNum; dlg.m_nStdUse = m_lstUnit[nItem]->m_nStdUse; dlg.m_nFactor = m_lstUnit[nItem]->m_nFactor; dlg.m_dTime = m_lstUnit[nItem]->m_nTime; if(dlg.DoModal() != IDOK) return; m_lstUnit[nItem]->m_iNum = dlg.m_iNum; m_lstUnit[nItem]->m_nStdUse = dlg.m_nStdUse; m_lstUnit[nItem]->m_nFactor = dlg.m_nFactor; m_lstUnit[nItem]->m_nTime = dlg.m_dTime; ResetList(); } void CMostuseWaterCalcDlg::OnButtonDel() { // cet 2010.9.6 del // POSITION pos = m_listCtrl.GetFirstSelectedItemPosition(); // if(!pos) // return; // int nItem = m_listCtrl.GetNextSelectedItem(pos); // cet 2010.9.6 add int nItem = m_listCtrl.GetCurRowIndex(); if (nItem == -1) { return; } if(nItem > (m_lstUnit.Length() - 1)) return; m_lstUnit.Remove(nItem); ResetList(); } void CMostuseWaterCalcDlg::OnDblclkListAll(NMHDR* pNMHDR, LRESULT* pResult) { // m_listCtrl.ShowControls(FALSE); // cet 2010.9.6 del m_listCtrl.ShowWindow(SW_HIDE); // cet 2010.9.6 add OnButtonModify(); *pResult = 0; } void CMostuseWaterCalcDlg::OnOK() { ResetList(); //CModelessDialog::OnOK(); } // LRESULT CMostuseWaterCalcDlg::OnEditInputOk(WPARAM wParam, LPARAM lParam) // { // // DWORD_PTR dwAllTk = wParam; // TCHAR szAlltk[256]; // _tcscpy(szAlltk, (const TCHAR*)dwAllTk); // if(_tcsicmp(szAlltk, _T("0")) == 0) // return TRUE; // // int nItem = m_listCtrl.m_iCurSelctedItemIndex; // cet 2010.9.6 del // int nItem = m_listCtrl.GetCurRowIndex(); // cet 2010.9.6 add // if(nItem < 0 || m_lstUnit.Length()==0 || nItem >= m_lstUnit.Length()) // return TRUE; // m_lstUnit[nItem]->m_iNum = _ttoi(szAlltk); // ResetList(); // return TRUE; // } void CMostuseWaterCalcDlg::OnButtonWord() { UpdateData(); int len = m_lstUnit.Length(); if(len <=0) 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("按照建筑给水排水设计规范 (GB 50015-2003)进行计算\n")); wordSelection.TypeText(_T("按照建筑给水排水设计规范 (GB 50015-2003)(2009年版)进行计算\n")); double nMostByDate(0), nMostByHour(0), nAverage(0); CString csMostByDate, csMostByHour, csAverage, csPercent; wordSelection.TypeText(_T("各用水部位统计结果如下:\n")); //画表格 int rows(len+5), columns(9); // cet 2013.4.16 modify 添加空调补水 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(90, 0); // 0 = wdAdjustNone oColumn = oColumns.Item(2); oColumn.SetWidth(55, 0); oColumn = oColumns.Item(3); oColumn.SetWidth(42, 0); oColumn = oColumns.Item(4); oColumn.SetWidth(32, 0); oColumn = oColumns.Item(5); oColumn.SetWidth(50, 0); oColumn = oColumns.Item(6); oColumn.SetWidth(55, 0); oColumn = oColumns.Item(7); oColumn.SetWidth(45, 0); oColumn = oColumns.Item(8); oColumn.SetWidth(45, 0); oColumn = oColumns.Item(9); oColumn.SetWidth(45, 0); Cell oCell; oCell = oTable.Cell(1, 1); oCell.Merge(oTable.Cell(2, 1)); oRange = oCell.GetRange(); oRange.InsertAfter(_T("用水部位")); oCell = oTable.Cell(1, 2); oCell.Merge(oTable.Cell(2, 2)); oRange = oCell.GetRange(); oRange.InsertAfter(_T("用水标准")); oCell = oTable.Cell(1, 3); oCell.Merge(oTable.Cell(2, 3)); oRange = oCell.GetRange(); oRange.InsertAfter(_T("单位")); oCell = oTable.Cell(1, 4); oCell.Merge(oTable.Cell(2, 4)); oRange = oCell.GetRange(); oRange.InsertAfter(_T("数量")); oCell = oTable.Cell(1, 5); oCell.Merge(oTable.Cell(2, 5)); oRange = oCell.GetRange(); oRange.InsertAfter(_T("用水时间")); oCell = oTable.Cell(1, 6); oCell.Merge(oTable.Cell(2, 6)); oRange = oCell.GetRange(); oRange.InsertAfter(_T("变化系数")); oCell = oTable.Cell(1, 7); oCell.Merge(oTable.Cell(1, 8)); oCell.Merge(oTable.Cell(1, 8)); oRange = oCell.GetRange(); wordParagraphs = oRange.GetParagraphs(); wordParagraphs.SetAlignment(1); oRange.InsertAfter(_T("用水量(立方米)")); oCell = oTable.Cell(2, 7); oRange = oCell.GetRange(); oRange.InsertAfter(_T("最大日")); oCell = oTable.Cell(2, 8); oRange = oCell.GetRange(); oRange.InsertAfter(_T("最大时")); oCell = oTable.Cell(2, 9); oRange = oCell.GetRange(); oRange.InsertAfter(_T("平均时")); for(int i=2;im_nFactor); csTime.Format(_T("%.1f"), pData->m_nTime); csStdUse.Format(_T("%.2f"), pData->m_nStdUse); csNum.Format(_T("%d"), pData->m_iNum); if(pData->m_csName == _T("游泳池(游泳池补充水)")) pData->m_nMostByDate = pData->m_iNum * pData->m_nStdUse;//单位本来就是立方米 else pData->m_nMostByDate = pData->m_iNum * pData->m_nStdUse / 1000; pData->m_nMostByHour = pData->m_nMostByDate * pData->m_nFactor / pData->m_nTime; pData->m_nAverage = pData->m_nMostByDate / pData->m_nTime; csMostByDate.Format(_T("%.2f"), pData->m_nMostByDate); csMostByHour.Format(_T("%.2f"), pData->m_nMostByHour); csAverage.Format(_T("%.2f"), pData->m_nAverage); oCell = oTable.Cell(i+1, 1); oRange = oCell.GetRange(); oRange.InsertAfter(pData->m_csName); oCell = oTable.Cell(i+1, 2); oRange = oCell.GetRange(); oRange.InsertAfter(csStdUse); oCell = oTable.Cell(i+1, 3); oRange = oCell.GetRange(); oRange.InsertAfter(pData->m_csUnit); oCell = oTable.Cell(i+1, 4); oRange = oCell.GetRange(); oRange.InsertAfter(csNum); oCell = oTable.Cell(i+1, 5); oRange = oCell.GetRange(); oRange.InsertAfter(csTime); oCell = oTable.Cell(i+1, 6); oRange = oCell.GetRange(); oRange.InsertAfter(csFactor); oCell = oTable.Cell(i+1, 7); oRange = oCell.GetRange(); oRange.InsertAfter(csMostByDate); oCell = oTable.Cell(i+1, 8); oRange = oCell.GetRange(); oRange.InsertAfter(csMostByHour); oCell = oTable.Cell(i+1, 9); oRange = oCell.GetRange(); oRange.InsertAfter(csAverage); nMostByDate += pData->m_nMostByDate; nMostByHour += pData->m_nMostByHour; nAverage += pData->m_nAverage; } // cet 2013.4.16 add 输出空调补水 int nAcRow = len + 3; ++len; CString sTemp; oCell = oTable.Cell(nAcRow, 1); oRange = oCell.GetRange(); oRange.InsertAfter(_T("空调补水")); oCell = oTable.Cell(nAcRow, 5); oRange = oCell.GetRange(); sTemp.Format(_T("%.1f"), _tstof(m_sACUseTime)); oRange.InsertAfter(sTemp); oCell = oTable.Cell(nAcRow, 6); oRange = oCell.GetRange(); sTemp.Format(_T("%.2f"), _tstof(m_sACRatio)); oRange.InsertAfter(sTemp); oCell = oTable.Cell(nAcRow, 7); oRange = oCell.GetRange(); sTemp.Format(_T("%.2f"), _tstof(m_sACMaxDay)); oRange.InsertAfter(sTemp); oCell = oTable.Cell(nAcRow, 8); oRange = oCell.GetRange(); sTemp.Format(_T("%.2f"), _tstof(m_sACMaxTime)); oRange.InsertAfter(sTemp); oCell = oTable.Cell(nAcRow, 9); oRange = oCell.GetRange(); sTemp.Format(_T("%.2f"), _tstof(m_sACAvgTime)); oRange.InsertAfter(sTemp); nMostByDate += _tstof(m_sACMaxDay); nMostByHour += _tstof(m_sACMaxTime); nAverage += _tstof(m_sACAvgTime); for(int j=len + 3; j