#pragma once #include #include #include "IxSerDes.h" #include "ZxXpf.h" #include "ZxSerializer.h" #include "Defines.h" #include "ZxBaseUtil.h" #include "mGuiJob_global.h" class ZxDataWell; class ZxDataJobInfo; class ZxDataJobRun; class ZxSegmentInfo; class iPseu3Wrapper; class iPseuCWrapper; class iModelOption; class iWxBase; class M_GUI_JOB_EXPORT iJobRun : public QObject, virtual public IxSerDes { Q_OBJECT public: explicit iJobRun(); ~iJobRun(); // 初始化、刷新UI virtual void init(); virtual void refresh(); // 序列化 virtual void onSerialize(ZxSerializer* ser); virtual void onDeserialize(ZxSerializer* ser); // 为了速度,而增加的特殊处理 virtual void ensureLoaded(); void setLoaded(bool b); bool saveBasicAsByteArr(QByteArray& v); bool loadLoadFromByteArr(QByteArray& v); QString getTestType(); QString getFluidOption(); bool isPhaseS(); public: virtual void setDataWell(ZxDataWell* p); virtual void setDataJobInfo(ZxDataJobInfo* p); virtual void setDataJobRun(ZxDataJobRun* p); // 组织其基础信息,为了展示到表格中 bool getBaseInfos(VecVariant& vec, int nColCount); bool getMpParaValues(QStringList listParas, QMap& map); // 根据当前的模型情况进行配置拟压力相关,调用该函数前已经确保是GAS // initPs是否初始化,如果不是,则只设置ps3 // 如果pModelOption不为空,则根据pModelOption设置ps3模式, // 否则: // bSetPs3ModeBySelf为true时,根据this设置ps3模式 // 对于IPR对话框,需要根据Job类型直接设置,对于其它不能设置 bool configPsAbouts(bool initPs, iModelOption* pModelOption, bool bSetPs3ModeBySelf = false); bool isPs3Valid(); bool isPsCValid(); public: iWxBase* getWxDataOf(int n); // 与数据库对应的真实数据 ZxDataJobInfo* getDataJobInfo(); ZxDataJobRun* getDataJobRun(); QString getJobId(); private slots: private: // 参与序列化:分别为 Basic、Fluid、(GasConst) QVector m_vecWxDatas; // 与数据库对应的真实数据(外界传入,本类不进行创建释放维护) ZxDataWell* m_pDataWell; ZxDataJobInfo* m_pDataJobInfo; ZxDataJobRun* m_pDataJobRun; // 为了速度而增加 bool m_bLoaded; QStringList m_listBasicInfos; };