#pragma once #include "iWxRunOption.h" class ZxSegmentInfo; class iAlgModelBase; namespace Ui { class iWxRunOptionStd; } class M_SUB_WND_EXPORT iWxRunOptionStd : public iWxRunOption { Q_OBJECT public: explicit iWxRunOptionStd(QWidget *parent = 0, bool bMiniFrac = false); ~iWxRunOptionStd(); // 初始化 virtual void initUI(); virtual void initTableViews(); virtual void initChartView(); // 外界调用参数 void setSegmentInfo(ZxSegmentInfo* p); // 默认调用模式,不弹出对话框 virtual void runByDefault(); virtual void runByBtnOk(); virtual bool runByBtnApply(); // 刷新 virtual void freshUI(bool bAutoRun = false); // 返回对话框选择的结果 bool getDataPandF(QVector& vecP, \ QVector& vecF); // 对压力流量进行校正式处理 void verifyDataPF(VecDouble& vecFt, VecDouble& vecFv, \ VecDouble& vecPt, VecDouble& vecPv); private slots: // 是否启用光滑和抽稀 void on_cbxUseSmoothing_clicked(); void on_cbxUseThinning_clicked(); // OK cancel void on_btnOK_clicked(); void on_btnCancel_clicked(); void on_btnApply_clicked(); virtual void slotAnalRunselectionChanged(); //protected: // 设置MpData void on_btnSetMpData_clicked(); void on_cbxBuildUpOrDown_currentIndexChanged(int index); // 原始曲线显示与否 void on_cbxRawCurves_clicked(); // 是否处理末端效应 void on_cbxAutoEndEffect_clicked(); protected: // 下拉流体类型 virtual void withAnalTypeChanged(); //处理勾选等变化引起的曲线变化(Smooth Or Thin) virtual void withSmoothThinChanged(); // 是否处理末端效应 virtual void withEndEffectChanged(); signals: protected: // 填充下拉 virtual bool fuzzyCbxAnalRuns(); // 刷新组件 void refreshSegInfo(ZxSegmentInfo* p); virtual void refreshChartInfo(); void refreshSmoothState(); void refreshThinningState(); void updatePlotByAlgRst(); void updatePlotByAlgRst_Raw(); bool getCurveDataOf(QString sCurve, VecDouble& vecX, VecDouble& vecY); void makesureRawCurveAbouts(); void freshPtCounts(); // 结果处理 virtual bool runApply(); virtual bool dealwithWndSel(); virtual bool dealwithSmoothAndThin(bool bMultiPhase); //zxf设置当前的job virtual bool setCurrentAnalRun(); // 对于多相确保多相数据 void makesureMpData(QString sCurveIdF, QVector& vecF); protected: Ui::iWxRunOptionStd *ui; // 流动段载体 ZxSegmentInfo* m_pSegInfo; // 多相数据,竖向排列,size为4,//注意:[0]时间,[1]油,[2]气,[3]水 VVecDouble m_vvecMpData; QString m_sFlowDataCode; bool m_bIniting; QVector m_vecBackupF; // 当前选择的 数据(如果截取) QVector m_vecPtsCurveP; QVector m_vecPtsCurveF; // 为了方便应用 QComboBox* m_pCbxStepUpDown; QCheckBox* m_pCbxShowRawCurves; QLabel* m_pLblPtCounts1; // QLabel* m_pLblPtCounts2; //算法 iAlgModelBase* m_pAlgModel; // 临时,不涉及序列化 QString m_sPtsInit; };