|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "iSubWnd.h"
|
|
|
|
|
|
|
|
|
|
class ZxTableModel;
|
|
|
|
|
class ZxTableView;
|
|
|
|
|
class M_SUB_WND_EXPORT iSubWndData : public iSubWnd
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
explicit iSubWndData(QWidget *parent = 0, QString sExt = "");
|
|
|
|
|
~iSubWndData();
|
|
|
|
|
|
|
|
|
|
// 配置窗体
|
|
|
|
|
virtual void configWnd();
|
|
|
|
|
|
|
|
|
|
virtual void loadData(QString sWell = ""); //加载数据
|
|
|
|
|
virtual void runUpdate(); //刷新
|
|
|
|
|
virtual void setColWidths();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// @brief 命令是否Enabled的状态判断,通常来自Ribbon
|
|
|
|
|
/// @param b (out),true:Enabled false:disabled
|
|
|
|
|
/// @param sName (in),Cmd Name
|
|
|
|
|
/// @param nID (in),Cmd ID
|
|
|
|
|
/// @param bLicensed (in),当前是否有授权
|
|
|
|
|
/// @return 本窗体是否已经进行状态判断(即属于本窗体可执行的命令)
|
|
|
|
|
virtual bool checkCmdEnable(bool &b, \
|
|
|
|
|
QString sName, int nID, \
|
|
|
|
|
bool bLicensed);
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
// 初始化UI
|
|
|
|
|
virtual QWidget* initUiMainWx();
|
|
|
|
|
virtual void initUiDockPtys();
|
|
|
|
|
virtual void bindTableSignals(ZxTableView* pTableView);
|
|
|
|
|
|
|
|
|
|
// 执行命令:通常来自图形右侧/左侧的工具栏
|
|
|
|
|
virtual bool runActionOf(QString sAction);
|
|
|
|
|
|
|
|
|
|
virtual void saveData();
|
|
|
|
|
virtual void exportData();
|
|
|
|
|
|
|
|
|
|
virtual void printData();
|
|
|
|
|
virtual void printPreviewData();
|
|
|
|
|
|
|
|
|
|
// 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);
|
|
|
|
|
|
|
|
|
|
// 根据表名获取不显示的字段索引
|
|
|
|
|
VecInt getHideCols(QString sTableName);
|
|
|
|
|
|
|
|
|
|
// 当index网格改变时,自动填写井号之类的内容
|
|
|
|
|
void autoFillCodesBy(const QModelIndex& Index);
|
|
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
|
|
|
|
|
|
// 具体的按钮按钮操作
|
|
|
|
|
virtual void slotDataLoad();
|
|
|
|
|
|
|
|
|
|
// 当前窗体所有信息的保存,比如关闭时提问的保存
|
|
|
|
|
virtual bool slotSaveAll();
|
|
|
|
|
|
|
|
|
|
virtual void slotSaveDatabase();
|
|
|
|
|
// 表格删除行时,对应删除数据库数据
|
|
|
|
|
// 如果sError非常证明未删除成功
|
|
|
|
|
virtual void slotRemoveRowsOfDB(int nRowFrom, int nRowTo, QString& sError);
|
|
|
|
|
virtual void slotTableCellClicked(const QModelIndex &index);
|
|
|
|
|
virtual void slotDataTableModified();
|
|
|
|
|
virtual void slotTableCellChanged(const QModelIndex& Index, const QModelIndex& nIndex);
|
|
|
|
|
// 主要是为了,右键删除之后,刷新右侧图
|
|
|
|
|
virtual void slotRowDeleted(QModelIndexList listOlds, QModelIndexList listNews, QModelIndex index);
|
|
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
|
|
|
|
|
void sigFreshWellAbout();
|
|
|
|
|
void sigNeedDelObjs(QStringList& listKeys, QString& sTable, QString& sError);
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
virtual void firstLoadAndUpdate();
|
|
|
|
|
virtual bool loadDataBy(QString sTable, QString sFilterWellCode);
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
//virtual QString getOrderStrOf(QString sTable); //获取某表关键字组织为Order
|
|
|
|
|
virtual bool scanInfosByTable(QString sTable, QString& sSql);
|
|
|
|
|
|
|
|
|
|
// 保存数据
|
|
|
|
|
virtual bool _saveData(VVecVariant& vvec);
|
|
|
|
|
|
|
|
|
|
// 保存后,刷新当前井和工区数据
|
|
|
|
|
void refreshMemObjs(VVecVariant& vvec);
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
VVecVariant m_vvecData;
|
|
|
|
|
|
|
|
|
|
QStringList m_listFields;
|
|
|
|
|
QStringList m_listTags; //轴标题(表头)
|
|
|
|
|
QStringList m_listUnits; //单位
|
|
|
|
|
VecInt m_vecKeyIndexes;
|
|
|
|
|
|
|
|
|
|
ZxTableModel* m_pTableModel;
|
|
|
|
|
ZxTableView* m_pTableView;
|
|
|
|
|
|
|
|
|
|
QString m_sObjCode;
|
|
|
|
|
|
|
|
|
|
QString m_sWellFilter; //如果为空,则全部,否则为单井
|
|
|
|
|
|
|
|
|
|
bool m_bAutoFilling;
|
|
|
|
|
|
|
|
|
|
};
|