#pragma warning( push ,0) #include #include "ObjWelllogRound.h" #include "ObjWelllog.h" #include "ObjWell.h" #include // #include "WellLogWorkflowDataModel.h" #pragma warning( pop ) BEGIN_OSGDATAMODEL_NAMESPACE; CObjWelllogRound *g_pObjWelllogRound(NULL); OSGDATAMODEL_EXPORT CObjWelllogRound *GetCurrentObjWelllogRound() { return g_pObjWelllogRound; } OSGDATAMODEL_EXPORT void SetCurrentObjWelllogRound( CObjWelllogRound *pObjWelllogRound ) { g_pObjWelllogRound = pObjWelllogRound; if(pObjWelllogRound)SetCurrentObjWell(pObjWelllogRound->GetWell()); } // OSGDATAMODEL_EXPORT QString GetCurrentWellRoundPath() // { // if(g_pObjWelllogRound) // { // return g_pObjWelllogRound->GetWellRoundPath(); // } // else // { // //TODO 输出日志提醒 // return ""; // } // } // OSGDATAMODEL_EXPORT QString GetSingleWellFolderID() // { // if(g_pObjWelllogRound) // { // return g_pObjWelllogRound->GetParent()->GetChildByType(GetClassID_SingleMethodFolder())->GetID(); // } // else // { // //TODO 输出日志提醒 // return ""; // } // } // QString CObjWelllogRound::GetWellRoundPath() // { // QString CurrentWellRoundPath=GetFullPathName(); // QStringList strList = CurrentWellRoundPath.split("/",QString::SkipEmptyParts); // strList.takeFirst(); // CurrentWellRoundPath = strList.join("/"); // return CurrentWellRoundPath; // } QString CObjWelllogRound::GetDescription() { CLogIO *logio=new CLogIO(); QString slfFileName=GetSlfFileName(); if(slfFileName.isEmpty()) return ""; if(!logio->Open(slfFileName.toStdString().c_str(),CSlfIO::modeRead)) { delete logio; return ""; } float StartDepth=999999; float EndDepth=-999999; float MinDepLevel=999999; float MaxDepLevel=-999999; int nCurve=0; int nTable=0; int nWave=0; int nCard=0; int nOther=0; int nDelete=0; int count=logio->GetObjectCount(); for(int i=0;iGetObjectStatus(i)!=OBJECT_NORMAL) { nDelete++; continue; } short curvetype=logio->GetObjectType(i); short Attribute=0,SubAttribute=0; logio->GetObjectAttribute(i,&Attribute,&SubAttribute); if(curvetype==CURVE_OBJECT) { Slf_CURVE acurveinfo; logio->GetCurveInfo(i,&acurveinfo); nCurve++; if(acurveinfo.DepLevel>MaxDepLevel) MaxDepLevel=acurveinfo.DepLevel; if(acurveinfo.DepLevelEndDepth) EndDepth=acurveinfo.EndDepth; } else if(curvetype==WAVE_OBJECT) { Slf_WAVE acurveinfo; logio->GetWaveInfo(i,&acurveinfo); nWave++; if(acurveinfo.DepLevel>MaxDepLevel) MaxDepLevel=acurveinfo.DepLevel; if(acurveinfo.DepLevelEndDepth) EndDepth=acurveinfo.EndDepth; } else if(curvetype==CARD_OBJECT) { nCard++; } else if(curvetype==FMT_OBJECT) { nOther++; } else if(curvetype==TDT_OBJECT) { nOther++; } else if(curvetype>CARD_OBJECT||curvetype==0) { nTable++; } } delete logio; QString result=""; result.append("对象类型:井次文件\n"); result.append("总对象数:").append(QString::number(count)).append("\n");; result.append("标记为删除对象数:").append(QString::number(nDelete)).append("\n");; result.append("曲线数:").append(QString::number(nCurve)).append("\n"); result.append("表格数:").append(QString::number(nTable)).append("\n"); result.append("参数卡:").append(QString::number(nCard)).append("\n"); result.append("其它:").append(QString::number(nOther)).append("\n"); result.append("最小深度:").append(QString::number(StartDepth)).append("\n"); result.append("最大深度:").append(QString::number(EndDepth)).append("\n"); result.append("最小采样间隔:").append(QString::number(MinDepLevel)).append("\n"); result.append("最小采样间隔:").append(QString::number(MaxDepLevel)).append("\n"); return result; } CObjWell *CObjWelllogRound::GetWell() { return m_pWell; } void CObjWelllogRound::SetWell(CObjWell *pWell) { m_pWell=pWell; } // CObjWelllogRound::CObjWelllogRound() // { // SetIconName( "icon/WellRound.png"); // m_pObject = NULL; // m_pWell=NULL; // isFLAG=false; // } // void CObjWelllogRound::SetSlfFileName(QString val) // { // QString oldf=m_strAttachedSlfFile; // m_strAttachedSlfFile=val; // std::vector PaiObjects; // CPaiObjectHelper::RecursionGetAllChildren(this,PaiObjects ); // for(int j=0;j(PaiObjects[j]); // if(tempWellLog) { // tempWellLog->SetSlfFileName(val); // continue; // } // PaiObject *pObj=PaiObjects[j]->GetPaiObject()->GetObjectByType(GetClassID_WorkflowFolder()); // if(pObj) { // QList childs; // pObj->GetChildren(childs); // for (int n=0;n(childs[n]); // if(tempWellLog) { // CBaseObject *pBaseObject=tempWellLog->GetMWVecWindowDocument(); // if(pBaseObject) { // QList childObjects; // pBaseObject->GetPaiObject()->GetChildren(childObjects); // for(int i=0;i(childObjects[i]); // if(pWellTrack) { // if(!pWellTrack->GetWelllogRound()) continue; // CObjWell*pWell=pWellTrack->GetWelllogRound()->GetWell(); // if(pWell==this->GetWell()) continue; // if(pWell) { // int index0=val.lastIndexOf("."); // QString nf=val.left(index0); // QString old=pWell->GetWellMessageFileName(); // int index=old.lastIndexOf("."); // int index1=oldf.lastIndexOf("."); // QString onf=oldf.left(index1); // if(old.compare(onf,Qt::CaseInsensitive)==0&&nf.compare(old,Qt::CaseInsensitive)) { // pWell->SetWellFileName(m_strAttachedSlfFile); // QList pWellRs; // int count=pWell->GetAllWellRound(pWellRs); // for(int k=0;k(pWellRs[k]); // if(pWellR==this) continue; // pWellR->SetSlfFileName(val); // } // } // } // } // } // } // } // } // } // } // } CObjWelllogRound::~CObjWelllogRound() { if(g_pObjWelllogRound==this) g_pObjWelllogRound=NULL; CObjWell *pWell=GetWell(); if(pWell) pWell->SetCurrentObjWellRound(NULL); return; } // void CObjWelllogRound::setParent(PaiObject* pObject) // { // m_pObject = pObject; // } // bool CObjWelllogRound::isExistsName(QString name) // { // QList objs; // if(this->GetParent() != NULL) // { // GetParent()->GetChildren(objs); // }else // { // if(m_pObject != NULL) // { // m_pObject->GetChildren(objs); // } // } // foreach(PaiObject* obj, objs) // { // CObjWelllogRound* pTempRound = dynamic_cast(obj); // if(pTempRound != NULL && pTempRound != this && pTempRound->GetName().compare(name,Qt::CaseInsensitive)==0) // { // return true; // } // } // return false; // } void CObjWelllogRound::SetBelongID() { // pai::objectmodel::PaiObject* paiWell = this->GetForebear(GetClassID_Well()); // if(paiWell) // { // pai::datamodel::CObjWell *currentWell= dynamic_cast(paiWell); // if(currentWell) // { // pai::ios::welllog::DataObject* dbWell = currentWell->GetDbObject(); // if(dbWell) // { // m_DbWelllogRound.SetDataBelongID(dbWell->GetDataID()); // } // } // } } QUuid CObjWelllogRound::GetTypeID()const { return GetClassID_WellLogRound(); } // bool CObjWelllogRound::Serialize( CObjectArchive &ar ) // { // if(ar.IsStoring()) // { // BEGIN_WRITE_OBJECT( ar,1 ); // BEGIN_WRITE_BLOCK( ar, 1); // CBaseObjectImpl::Serialize( ar ); // ar<>m_strAttachedSlfFile; // END_READ_BLOCK( 1 ); // END_READ_OBJECT( ar ); // } // return true; // } // void CObjWelllogRound::SetDBWelllogRound( pai::ios::welllog::WelllogRound DbWelllogRound ) // { // m_DbWelllogRound=DbWelllogRound; // } pai::ios::welllog::WelllogRound &CObjWelllogRound::GetDBWelllogRound() { return m_DbWelllogRound; } pai::ios::welllog::DataObject * CObjWelllogRound::GetDbObject() { SetBelongID(); return &m_DbWelllogRound; } void CObjWelllogRound::CopyFrom( CBaseObject *pOSGObjectOther ) { CBaseObject::CopyFrom( pOSGObjectOther ); CObjWelllogRound *pWellRound = dynamic_cast( pOSGObjectOther ); if( pWellRound ) { m_DbWelllogRound= pWellRound->m_DbWelllogRound ; } } // // bool CObjWelllogRound::AddChild(PaiObject* pChild, bool mountNow ) // { // if(!pChild) return false; // if(GetTragetFolderID(pChild->GetTypeID())!=GetClassID_GeneralFolder()) // GetTragetFolder(GetTragetFolderID(pChild->GetTypeID()))->AddChild(pChild,mountNow); // else // CBaseObjectImpl::AddChild(pChild,true); // return true; // } //往井次下加入曲线时,根据曲线的类型返回其对应的目录id QUuid CObjWelllogRound::GetTragetFolderID(QUuid aLogTypeid){ if(aLogTypeid==GetClassID_WellLog()) return GetClassID_WellLogFolder(); else if(aLogTypeid==GetClassID_WellTrajectory()) return GetClassID_WellTrajectoryFolder(); else if(aLogTypeid==GetClassID_WellLogWavefile()) return GetClassID_WellLogWavefileFolder(); else if(aLogTypeid==GetClassID_WellLogBIN()) return GetClassID_WellLogBINFolder(); else if(aLogTypeid==GetClassID_WellLogFMT()) return GetClassID_WellLogFMTFolder(); else if(aLogTypeid==GetClassID_WellLogINP()) return GetClassID_WellLogINPFolder(); else if(aLogTypeid==GetClassID_WellLogTABLE()) return GetClassID_WellLogTABLEFolder(); else if(aLogTypeid==GetClassID_WellLogTDT()) return GetClassID_WellLogTDTFolder(); else return GetClassID_GeneralFolder() ;} // //根据folderid找到对应的folder,如果没有则创建 // CObjectFolder* CObjWelllogRound::GetTragetFolder(QUuid aFolderTypeid) // { // CObjectFolder* target=dynamic_cast(GetChildByType(aFolderTypeid)); // if(target==NULL){ // target=new CObjectFolder(aFolderTypeid); // CBaseObjectImpl::AddChild(target,true); // } // return target; // } // CObjWellLog* CObjWelllogRound::GetWellLogByName(QString name) // { // CObjWellLog* result=NULL; // result=dynamic_cast(GetObjectByName(name,3)); // return result; // } // BEGIN_REGISTER_OBJECT(CObjWelllogRound) // QUuid(GetClassID_WellLogRound()) // END_REGISTER_OBJECT( CObjWelllogRound ); END_OSGDATAMODEL_NAMESPACE