|
|
#pragma once
|
|
|
|
|
|
#include "iDlgBase.h"
|
|
|
#include "mModuleDefines.h"
|
|
|
#include "mSubWnd_global.h"
|
|
|
|
|
|
class ZxDataWell;
|
|
|
class iSubWnd;
|
|
|
class iAnalRun;
|
|
|
class iGuiPlot;
|
|
|
class ZxTableViewEx;
|
|
|
class M_SUB_WND_EXPORT iWxRunOption : public iDlgBase
|
|
|
{
|
|
|
Q_OBJECT
|
|
|
|
|
|
public:
|
|
|
|
|
|
explicit iWxRunOption(QWidget *parent = 0);
|
|
|
~iWxRunOption();
|
|
|
|
|
|
// 初始化
|
|
|
virtual void initUI();
|
|
|
virtual void initTableViews();
|
|
|
virtual void initChartView();
|
|
|
|
|
|
// 刷新
|
|
|
virtual void freshUI(bool bAutoRun = false);
|
|
|
|
|
|
public:
|
|
|
|
|
|
// 外界调用参数
|
|
|
void setDataWell(ZxDataWell* p);
|
|
|
void setAllAnalRuns(QVector<iAnalRun*>* p);
|
|
|
void setOneAnalRun(iAnalRun* pAnalRun);
|
|
|
|
|
|
// 返回对话框选择的结果
|
|
|
virtual iAnalRun* getCurSelAnalRun();
|
|
|
virtual iSubWnd* getSubWndApplied();
|
|
|
virtual bool isNewIfNull();
|
|
|
virtual bool isSetAnalAsCurrent();
|
|
|
virtual QString getSubWndTitle();
|
|
|
|
|
|
private slots:
|
|
|
|
|
|
// TODO 这两个函数是为了子类应用,目前放此处有些不妥
|
|
|
void on_cbxWnds_currentIndexChanged(const QString &arg1);
|
|
|
void on_cbxNewIfNull_clicked();
|
|
|
|
|
|
virtual void slotAnalRunselectionChanged();
|
|
|
void on_cbxAnalType_currentIndexChanged(const QString &arg1);
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// 下拉流体类型
|
|
|
virtual void withAnalTypeChanged();
|
|
|
virtual bool isProperAnalType(PvtTestType ptt, \
|
|
|
bool bMiniFracMode = false); //筛选过滤合适的部分
|
|
|
|
|
|
signals:
|
|
|
|
|
|
// 从主窗体获取
|
|
|
void sigGetFitWnds(QMap<QString, iSubWnd*>& map);
|
|
|
void sigRunOptionChanged(iAnalRun*, iSubWnd*, bool, bool, QString);
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// 窗体名称的切换
|
|
|
void changeNewWndName();
|
|
|
|
|
|
// 填充下拉
|
|
|
void fillCbxWnds(QComboBox* p);
|
|
|
virtual bool fuzzyCbxAnalRuns();
|
|
|
|
|
|
// 涉及的内部处理函数
|
|
|
QVector<iAnalRun*> getAllAnalRuns(QString sFilterType = "");
|
|
|
QStringList getAllAnalTypes(QVector<iAnalRun*>& vec, bool bMiniFracMode = false);
|
|
|
QString getCurAnalId();
|
|
|
iAnalRun* getAnalRunByID(QVector<iAnalRun*>& vec, QString sID);
|
|
|
bool checkAnalIdByPF(iAnalRun* p);
|
|
|
QString getFluidOfCurWell();
|
|
|
void filterAnalRunsByPhase(QVector<iAnalRun*>& vec, iAnalRun* p);
|
|
|
|
|
|
// 刷新组件
|
|
|
virtual void refreshChartInfo();
|
|
|
// void refreshSmoothState();
|
|
|
// void refreshThinningState();
|
|
|
|
|
|
// 刷新图形时调用
|
|
|
// 获取当前选中的Anal的流体类型,油气水
|
|
|
virtual QString getCurFluidType();
|
|
|
|
|
|
// 结果处理
|
|
|
virtual bool runApply();
|
|
|
virtual bool dealwithAnalRun();
|
|
|
virtual bool dealwithWndSel();
|
|
|
|
|
|
//zxf设置当前的job
|
|
|
virtual bool setCurrentAnalRun();
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// 井
|
|
|
ZxDataWell* m_pDataWell;
|
|
|
|
|
|
// 当前所有AnalRun,输入主窗口,从主窗口传入
|
|
|
QVector<iAnalRun*>* m_pVecAnalRuns;
|
|
|
|
|
|
// 当前
|
|
|
iAnalRun* m_pAnalRun;
|
|
|
|
|
|
// SubWnd
|
|
|
iSubWnd* m_pSubWnd;
|
|
|
|
|
|
// 绘图组件
|
|
|
iGuiPlot* m_pPlotWx;
|
|
|
|
|
|
// 表格组件
|
|
|
ZxTableViewEx* m_pTableViewJ;
|
|
|
|
|
|
// 下拉Anal类型
|
|
|
QComboBox* m_cbxAnalTypes;//ui->cbxAnalType
|
|
|
|
|
|
QCheckBox* m_pCbxSetAsCurrent;
|
|
|
QCheckBox* m_pCbxNewIfNull;
|
|
|
QLineEdit* m_pTbxNewWndName;
|
|
|
|
|
|
QSpinBox* m_pSbThinningLoop;
|
|
|
|
|
|
// 下拉窗体
|
|
|
QComboBox* m_pCbxWnds;
|
|
|
|
|
|
//table中填充的信息
|
|
|
VVecVariant m_vvecInfos;
|
|
|
|
|
|
//当前job的code
|
|
|
QString m_sCurCode;
|
|
|
|
|
|
// 对于加入多相之后,只能固定AnalRun,不能选择。
|
|
|
// 即在流动段右键弹出时,如果发现当前Anal为多相,则固定
|
|
|
bool m_bFixAnalMode;
|
|
|
bool m_bAutoFix;
|
|
|
|
|
|
// 类型标识:是否小型压裂
|
|
|
bool m_bMiniFracMode;
|
|
|
};
|