bool ReportDataHelper::SetObjectDatas( const AcDbObjectId& objId,const AcStringArray& values ) { if( objId.isNull() ) return false; AcTransaction* pTrans = actrTransactionManager->startTransaction(); if( pTrans == 0 ) return false; AcDbObject* pObj; if( Acad::eOk != pTrans->getObject( pObj, objId, AcDb::kForWrite ) ) { actrTransactionManager->abortTransaction(); return false; } DataObject* pDO = DataObject::cast( pObj ); if( pDO == 0 ) { actrTransactionManager->abortTransaction(); return false; } pDO->clearAll(); for(int i = 0; i < values.length(); i++) { CString value = values[i].kACharPtr(); pDO->addData(); pDO->setData(i,value); } actrTransactionManager->endTransaction(); return true; }
static void CleanAllFieldFromDataObject( const AcDbObjectIdArray& objIds ) { AcTransaction* pTrans = actrTransactionManager->startTransaction(); if( pTrans == 0 ) return; int len = objIds.length(); for( int i = 0; i < len; i++ ) { AcDbObject* pObj; if( Acad::eOk != pTrans->getObject( pObj, objIds[i], AcDb::kForWrite ) ) continue; DataObject* pDO = DataObject::cast( pObj ); if( pDO == 0 ) continue; pDO->clearAll(); // 删除所有数据 } actrTransactionManager->endTransaction(); }