/************************************************************************************** 主要功能: 地层单位道类 **************************************************************************************/ #ifndef TRACKSTRATUMOBJ_H #define TRACKSTRATUMOBJ_H #pragma once #include "TreeBase.h" #include "Data/WellData_SandSet.h" class AFX_EXT_CLASS CTrackStratum: public CInclinedTrack { public: CTrackStratum(); virtual ~CTrackStratum(); CTrackStratum(const CRect8& position); CLONE_WELLOBJECT(CTrackStratum) virtual void operator=(CTrackStratum& object); public: void BuidChildObject(vector &fields, StringVectorSet &datas, BOOL bInit=FALSE); virtual void GetChildDatas(StringVectorSet &dataContent, BOOL bHaveWellName = TRUE); virtual void CalcBorders(); protected: public: virtual void Serialize(CArchive& ar, const short &ver); virtual void ResetChildProperties(); //读pcg格式的道 virtual int ReadPCG_Self(CFile &fr,CXmlParse& xp,const short& ver); //读pcg格式的数据 virtual int ReadPCG_Data(CFile &fr,const short& ver); virtual int ReadPCG_DataSection(CFile &fr,const short& ver); //写pcg格式的道 virtual void WritePCG_Trace(CFile &fw,int nBaseTabNum); //写pcg格式的道内数据 virtual void WritePCG_Data(CFile &fw,int nBaseTabNum); public: virtual int ReadPCG_Self(CKXmlParse& xp, const short& ver); //读pcg格式的数据 virtual int ReadPCG_Data(CKXmlParse& xp, const short& ver); virtual int ReadPCG_DataSection(CKXmlParse& xp, const short& ver); virtual void RemoveChild(CWellBaseObj*); public: virtual void GetChildDatas(CString& jsonStr); virtual BOOL SetChildDatas(CString& jsonStr); //virtual void InTrackObjBindDataRow(); virtual void SetDataRefID(CString tableId, CString colId); virtual void NotifyInTrackObjChangeTopBottom(CString ChangColId, CString strLayerName, double top, double bottom, CInTrackDepthSegment* pChangObj); protected: void SetInTrackGroup(CWellBaseObj* pWellBase, CWellPole* pWellObj, BOOL bNewAddRow = TRUE); //bNewAddRow= true 此对象需要在井表中建立新数据条 void GetStratificationNodeTopBottom(CWellPole*pWell,CTreeBase::TreeBaseNode& treeNode, CWellData_SandSet* pDataSandSet,BOOL& bNew,double& top,double& bottom, VARINTARR*& pRowData); //获得从分层数据中获得一个分层节点的顶底深 void NotifyInTrackObjChangeTopBottom_ForDerivedClass(CString ChangColId, CString strLayerName, double top, double bottom, CInTrackDepthSegment* pChangObj); }; #endif