|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "iSubWndData.h"
|
|
|
|
|
|
|
|
|
|
class ZxDataWell;
|
|
|
|
|
class iPlotCurveWxT;
|
|
|
|
|
class ZxDataGaugeBase;
|
|
|
|
|
|
|
|
|
|
class M_SUB_WND_EXPORT iSubWndDataPF : public iSubWndData
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
explicit iSubWndDataPF(QWidget *parent = 0, QString sExt = "");
|
|
|
|
|
~iSubWndDataPF();
|
|
|
|
|
|
|
|
|
|
// 配置窗体
|
|
|
|
|
virtual void configWnd();
|
|
|
|
|
|
|
|
|
|
virtual void runUpdate(); //刷新
|
|
|
|
|
virtual void setColWidths();
|
|
|
|
|
|
|
|
|
|
virtual bool loadDataBy(QString sTable, QString sFilterWellCode);
|
|
|
|
|
virtual void simuAutoLoad(); //如果没有数据,则自动弹出加载
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
// 初始化UI
|
|
|
|
|
virtual QWidget* initUiMainWx();
|
|
|
|
|
virtual void initUiDockToolBar();
|
|
|
|
|
|
|
|
|
|
// 执行命令:通常来自图形右侧/左侧的工具栏
|
|
|
|
|
virtual bool runActionOf(QString sAction);
|
|
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
|
|
|
|
|
|
// 具体的按钮按钮操作
|
|
|
|
|
virtual void slotDataLoadP();
|
|
|
|
|
virtual void slotDataLoadF();
|
|
|
|
|
|
|
|
|
|
// 数据加载信号相应
|
|
|
|
|
void slotPfObjSaved(ZxDataGaugeBase* p);
|
|
|
|
|
|
|
|
|
|
virtual void slotSaveDatabase();
|
|
|
|
|
// 表格删除行时,对应删除数据库数据
|
|
|
|
|
// 如果sError非常证明未删除成功
|
|
|
|
|
virtual void slotRemoveRowsOfDB(int nRowFrom, int nRowTo, QString& sError);
|
|
|
|
|
virtual void slotTableCellClicked(const QModelIndex &index);
|
|
|
|
|
virtual void slotDataTableModified();
|
|
|
|
|
void slotSubTableSelChanged();
|
|
|
|
|
virtual void slotTableCellChanged(const QModelIndex& Index, const QModelIndex& nIndex);
|
|
|
|
|
// 主要是为了,右键删除之后,刷新右侧图
|
|
|
|
|
virtual void slotRowDeleted(QModelIndexList listOlds, QModelIndexList listNews, QModelIndex index);
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
void activeByTableMain(int nIndexRow, int nIndexCol);
|
|
|
|
|
void activeByTableSub(int nIndexCol, bool foceRedraw = false);
|
|
|
|
|
void freshRightSubByCode(QString sCode);
|
|
|
|
|
|
|
|
|
|
VVecVariant convertBa(QByteArray& ba, bool forceConvert = false);
|
|
|
|
|
|
|
|
|
|
virtual bool scanInfosByTable(QString sTable, QString& sSql);
|
|
|
|
|
|
|
|
|
|
// 20240613,启用隐藏列,故该方式不再启用
|
|
|
|
|
/// @brief 对数据做一些特殊处理,比如隐藏某些列的处理
|
|
|
|
|
/// @param bLoad :
|
|
|
|
|
/// true load+show(隐藏)
|
|
|
|
|
/// false save(Add)
|
|
|
|
|
/// @param vvec (in & out)
|
|
|
|
|
/// @param listTitles (in & out)
|
|
|
|
|
// virtual void adjustData(bool bLoadMode, \
|
|
|
|
|
// VVecVariant& vvec, \
|
|
|
|
|
// QStringList* pListTitles = NULL, \
|
|
|
|
|
// bool bTitlesOnly = false);
|
|
|
|
|
|
|
|
|
|
// 更新辅助表格
|
|
|
|
|
void refreshBindTable(VVecVariant& vvec);
|
|
|
|
|
QString getTitleOfCol(int indexOGW);
|
|
|
|
|
QString getTitleNameOfCol(int indexOGW);
|
|
|
|
|
QString getTitleUnitOfCol(int indexOGW);
|
|
|
|
|
// 更新辅助图形
|
|
|
|
|
void refreshBindChart(QByteArray& ba, \
|
|
|
|
|
int indexOGW, QString sWellInfo = "");
|
|
|
|
|
void refreshBindChart(VecFloat& vecX, VecFloat& vecY, \
|
|
|
|
|
int indexOGW, \
|
|
|
|
|
QString sWellInfo = "");
|
|
|
|
|
|
|
|
|
|
// 保存
|
|
|
|
|
bool saveOneGauge();
|
|
|
|
|
bool sumCurGaugeData(QByteArray& ba);
|
|
|
|
|
|
|
|
|
|
// 保存数据
|
|
|
|
|
virtual bool _saveData(VVecVariant& vvec);
|
|
|
|
|
|
|
|
|
|
// 和一开始的备份对比是否修改
|
|
|
|
|
bool isRowDataChanged(VecVariant& vec);
|
|
|
|
|
|
|
|
|
|
// 对于缓存已经保存的压力流量进行刷新处理
|
|
|
|
|
virtual void freshByTempSavedPFs();
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
ZxTableView* m_pTableViewBind; //辅助显示(压力+流量)
|
|
|
|
|
iPlotCurveWxT* m_pPlotWx;
|
|
|
|
|
|
|
|
|
|
bool m_bGaugeModeF; //在m_bGaugeMode为true时有效
|
|
|
|
|
int m_nLastSubCol;
|
|
|
|
|
ZxDataWell* m_pWell;
|
|
|
|
|
};
|