LAPTOP-SNT8I5JK\Boounion
2025-07-28 e51c6d1360f9679dd8e4dd3379ce0db1886badbf
SourceCode/Bond/Servo/CReport.cpp
对比新文件
@@ -0,0 +1,98 @@
#include "stdafx.h"
#include "CReport.h"
namespace SERVO {
   CReport::CReport()
   {
      m_nReportId = 0;
   }
   CReport::CReport(unsigned int reportId, std::vector<unsigned int>& 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<CVariable*>& 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 += ",";
         }
      }
      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;
   }
}