#include "stdafx.h" #include "CReport.h" namespace SERVO { CReport::CReport() { m_nReportId = 0; } CReport::CReport(unsigned int reportId, std::vector& vids) { m_nReportId = reportId; for (auto vid : vids) { m_vids.push_back(vid); } } CReport::~CReport() { } unsigned int CReport::getReportId() { return m_nReportId; } BOOL CReport::addVariable(CVariable* pVariable) { ASSERT(pVariable); if (getVariable(pVariable->getVarialbleId()) != nullptr) { return FALSE; } m_variabels.push_back(pVariable); return TRUE; } BOOL CReport::deleteVarialble(unsigned int nVarialbleId) { BOOL bDelete = FALSE; for (auto iter = m_variabels.begin(); iter != m_variabels.end(); ++iter) { if (nVarialbleId == (*iter)->getVarialbleId()) { m_variabels.erase(iter); bDelete = TRUE; break; } } return bDelete; } CVariable* CReport::getVariable(unsigned int nVarialbleId) { for (auto item : m_variabels) { if (nVarialbleId == item->getVarialbleId()) { return item; } } return nullptr; } std::vector& CReport::getVariables() { return m_variabels; } std::string CReport::getVariablesIdsText() { std::string strResult, strName; for (int i = 0; i < m_vids.size(); i++) { strResult += std::to_string(m_vids[i]); strResult += "("; strResult += (getVariableName(m_vids[i], strName) ? strName : _T("null")); strResult += ")"; if (i != m_vids.size() - 1) { strResult += ","; } } /* for (int i = 0; i < m_variabels.size(); i++) { strResult += std::to_string(m_variabels[i]->getVarialbleId()); strResult += "("; strResult += m_variabels[i]->getName(); strResult += ")"; if (i != m_variabels.size() - 1) { strResult += ","; } } */ return strResult; } bool CReport::getVariableName(unsigned int vid, std::string& strName) { for (auto item : m_variabels) { if (item->getVarialbleId() == vid) { strName = item->getName(); return true; } } return false; } }