void ReportDataHelper::ReadDatas( const CString& name, ArrayVector& datasVector,int unitCount ) { AcStringArray getDatas; AcDbObjectId objId; GDESDataObjectHelper::GetObjectId(name,objId); GetObjectDatas(objId,getDatas); //AcStringArray strName,strIsRunning,strReason; ArrayVector datas; int nCount = getDatas.length(); if(nCount <= 0) return; datas.resize( unitCount ); for(int i = 0; i < nCount; i = i+2 ) { int j = (i/2)% unitCount; datas[j].append(getDatas[i]); } datasVector.clear(); for(int i = 0; i < nCount / (2 * unitCount); i++) { CString temp; AcStringArray temps; for(int j = 0; j < unitCount; j++) { temp.Format(_T("%s"),datas[j][i].kACharPtr()); if(temp == ISNULL) temp = _T(""); temps.append(temp); } datasVector.push_back(temps); } }
void SymbolManager::cleanArrays() { this->arrayVectorMutex.lock(); for (auto &item : this->arrayVector) { assert(item); item->updateTypes(); } auto item = this->arrayVector.begin(); std::sort( item, arrayVector.end(), [](const Array *a, const Array *b) { return *a < *b; } ); item = this->arrayVector.begin(); if (item == this->arrayVector.end()) { return; } Array *oldPtr = *item; Array *delPtr = nullptr; item++; ArrayVector tmp; while (item != this->arrayVector.end()) { if (*oldPtr == *(*item)) { this->addAlternativeID(oldPtr->getID(), (*item)->getID()); delPtr = *item; delete delPtr; } else { oldPtr = (*item); tmp.push_back(*item); } item++; } tmp.shrink_to_fit(); this->arrayVector.swap(tmp); tmp.clear(); this->arrayTypeMapMutex.lock(); for (auto &item : arrayVector) { this->arrayTypeMap.insert(std::make_pair(item->getType(), item)); } this->arrayTypeMapMutex.unlock(); this->arrayVectorMutex.unlock(); }
void GasSysDlg::OnBnClickedEnsure() { UpdateData(TRUE); AcStringArray strName,strIsRunning,strReason; //从列表中获取数据 GetDatasFromList(m_permCListCtrl,strName,strIsRunning,strReason,_ttoi(m_numPermSys)); ArrayVector datas; datas.push_back(strName); datas.push_back(strIsRunning); datas.push_back(strReason); //把数据写到数据词典中 ReportDataHelper::WriteDatas(PERMENT_OBJCT_NAME,datas); AcStringArray gasSysNams; gasSysNams.append(strName); AcStringArray gasSysRunning; gasSysRunning.append(strIsRunning); strName.removeAll(); strIsRunning.removeAll(); strReason.removeAll(); GetDatasFromList(m_tempCListCtrl,strName,strIsRunning,strReason,_ttoi(m_numTempSys)); datas.clear(); datas.push_back(strName); datas.push_back(strIsRunning); datas.push_back(strReason); ReportDataHelper::WriteDatas(TEMPGAS_OBJCT_NAME,datas); //WriteDataToFile(_T("btvars.txt"),strName,strIsRunning,strReason); //for (int i = 0; i < strName.length(); i++) //{ gasSysNams.append(strName); gasSysRunning.append(strIsRunning); //} RecordRunningSysName(gasSysNams,gasSysRunning); if(ShowRetDlg()) { OnOK(); } }
/* 名称|运转|备注 名称|运转|备注 */ void GasSysDlg::OnInitList() { initList(m_permCListCtrl,m_permDataModel); initList(m_tempCListCtrl,m_tempDataModel); ArrayVector datasVector; //获取地面系统数据 ReportDataHelper::ReadDatas(PERMENT_OBJCT_NAME,datasVector,3); m_numPermSys = _T(""); m_permRecords.clear(); if(datasVector.size() > 0) { setRecord(m_permRecords,datasVector,m_numPermSys); } datasVector.clear(); //获取井下系统数据 ReportDataHelper::ReadDatas(TEMPGAS_OBJCT_NAME,datasVector,3); m_numTempSys = _T(""); m_tempRecords.clear(); if(datasVector.size() > 0) { setRecord(m_tempRecords,datasVector,m_numTempSys); } UpdateData(FALSE); if(IsNum(m_numPermSys)) { SetPermItems(_ttoi(m_numPermSys)); } if(IsNum(m_numTempSys)) { SetTempItems(_ttoi(m_numTempSys)); } }