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); } }
static BOOL ReadSysPumpDatas(ArrayVector& datas) { ArrayVector dataVector; ReportDataHelper::ReadDatas(GAS_PUMP_OBJCT_NAME,dataVector,4); if(dataVector.empty()) return FALSE; AcStringArray sysNames,pumpStates,pumpTypes,pumpAbilities; for(int i = 0; i < dataVector.size(); i++) { sysNames.append(dataVector[i][0]); pumpStates.append(dataVector[i][1]); pumpTypes.append(dataVector[i][2]); pumpAbilities.append(dataVector[i][3]); } datas.push_back(sysNames); datas.push_back(pumpStates); datas.push_back(pumpTypes); datas.push_back(pumpAbilities); return TRUE; }
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(); }
BOOL GasSysDlg::RecordRunningSysName(const AcStringArray& gasSysNams,const AcStringArray& gasSysRunning) { //CString dataDirName = _T( "Datas\\BaseTemp\\" ); //CString fileName =BuildPath ( BuildPath( GetAppPathDir(), dataDirName ),_T("bgaspumpvars0.txt") ); //AcOfstream outFile(fileName); //if (!outFile) return FALSE; ArrayVector namesVector; AcStringArray names; for(int i = 0; i < gasSysNams.length(); i++) { CString isRunning = gasSysRunning[i].kACharPtr(); if(isRunning != _T("是")) continue; names.append(gasSysNams[i]); //outFile << gasSysNams[i].kACharPtr() << _T("\n"); } namesVector.push_back(names); ReportDataHelper::WriteDatas(RUNNING_SYS_OBJCT_NAME,namesVector); if(namesVector.empty()) return FALSE; return TRUE; }
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(); } }