|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "iWxBase.h"
|
|
|
|
|
#include "mGuiJob_global.h"
|
|
|
|
|
|
|
|
|
|
namespace Ui {
|
|
|
|
|
class iWxDataFluidSub;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class iWxPvtMain;
|
|
|
|
|
class iPseu3Wrapper;
|
|
|
|
|
class iPseudo3Info;
|
|
|
|
|
class iPseuCWrapper;
|
|
|
|
|
class iPseudoCInfo;
|
|
|
|
|
class M_GUI_JOB_EXPORT iWxDataFluidSub : public iWxBase
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
explicit iWxDataFluidSub(QString sFluid, QWidget *parent = 0);
|
|
|
|
|
~iWxDataFluidSub();
|
|
|
|
|
|
|
|
|
|
virtual void initUI();
|
|
|
|
|
|
|
|
|
|
QString getFluid();
|
|
|
|
|
|
|
|
|
|
void setPhaseS(bool b);
|
|
|
|
|
bool getPhaseS();
|
|
|
|
|
|
|
|
|
|
// 启动Gas自动显示模式
|
|
|
|
|
void runAutoShow();
|
|
|
|
|
|
|
|
|
|
// 拟压力模式
|
|
|
|
|
VVecDouble getPseuData();
|
|
|
|
|
iPseu3Wrapper* getPseuData3(); //三区
|
|
|
|
|
iPseuCWrapper* getPseuDataC();
|
|
|
|
|
|
|
|
|
|
//Pseudo
|
|
|
|
|
void setMapParaFromFluid(QMap<QString, double> map);
|
|
|
|
|
QMap<QString, double> getMapParaFromFluid();
|
|
|
|
|
|
|
|
|
|
bool getMapParaValue(QString str, double& f);
|
|
|
|
|
|
|
|
|
|
// 由于多相用的时候得顺序问题,故权宜之计
|
|
|
|
|
bool getParaValueEx(QString sPara, double& f);
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
void copyFrom(iDlgBase* pFrom);
|
|
|
|
|
|
|
|
|
|
// 序列化
|
|
|
|
|
virtual void onSerialize(ZxSerializer* ser);
|
|
|
|
|
virtual void onDeserialize(ZxSerializer* ser);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
void initAdvCtrls();
|
|
|
|
|
void freshAdvCtrls();
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
virtual void paintEvent(QPaintEvent *);
|
|
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
|
|
|
|
|
|
void on_cbxUseAdvanced_clicked();
|
|
|
|
|
void on_btnCalSoSg_clicked(); //计算饱和度
|
|
|
|
|
void on_btnCal3C_clicked(); //通过弹出PVT对话框计算压缩系数等
|
|
|
|
|
void on_btnCalFinal_clicked(); //最终刷新计算
|
|
|
|
|
|
|
|
|
|
void slotPvtResultsChanged(QMap<QString,double>& map);
|
|
|
|
|
void slotPseudoResultsChanged(VVecDouble& vvec);
|
|
|
|
|
void slotPseudoResults3Changed(const VVecDouble& vvec, \
|
|
|
|
|
const QMap<QString, iPseudo3Info*>& mapPsInfos, \
|
|
|
|
|
const QMap<QString, double>& mapOthers);
|
|
|
|
|
void slotPseudoResultsCChanged(const VVecDouble& vvec, \
|
|
|
|
|
const QMap<QString, iPseudoCInfo*>& mapPsInfos, \
|
|
|
|
|
const QMap<QString, double>& mapOthers);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
Ui::iWxDataFluidSub *ui;
|
|
|
|
|
|
|
|
|
|
QString m_sFluid; //油气水
|
|
|
|
|
bool m_bSinglePhase; //是否单相
|
|
|
|
|
QStringList m_listParas; //参数项
|
|
|
|
|
|
|
|
|
|
// //Pseudo结果,四列
|
|
|
|
|
// VecDouble vecP = vvec[0]
|
|
|
|
|
// VecDouble vecPs = vvec[1]
|
|
|
|
|
// VecDouble vecZg = vvec[2]
|
|
|
|
|
// VecDouble vecMug = vvec[3]
|
|
|
|
|
VVecDouble m_vvecPseuData;//原先VecPointF
|
|
|
|
|
iPseu3Wrapper* m_pPseu3Wrapper; //对于三区,采用数据体
|
|
|
|
|
iPseuCWrapper* m_pPseuCWrapper;
|
|
|
|
|
|
|
|
|
|
iWxPvtMain* m_pWxPvt;
|
|
|
|
|
|
|
|
|
|
//Pseudo
|
|
|
|
|
QMap<QString, double> m_mapParaFromFluid;
|
|
|
|
|
};
|