#pragma once #include "iDlgBase.h" #include "mGuiDataLoad_global.h" #include "ZxDataOtherItem.h" class ZxDataObject; class iWxDataShow; namespace Ui { class iWxDataAccessLoad; } /// @brief 该类是为了兼容试井之星mdb文件而做的数据加载界面 class M_GUI_DATA_LOAD_EXPORT iWxDataAccessLoad : public iDlgBase { Q_OBJECT public: explicit iWxDataAccessLoad(QWidget *parent = 0); ~iWxDataAccessLoad(); public: // 读取后台配置文件 static bool loadAccessConfig(vecAccessItem& vecItems, QString sFile = ""); private: //布局 virtual void initUI(); //新建一组表 bool initNewTable(QMap& mapDataObj,QMap& mapDataVec); //得到井号 bool saveWell(QMap mapDataObj, QMap mapDataVec); //大字段特殊处理 bool dealBytPressData(); //流量大字段处理 bool dealBytFlowData(); // 处理井号+井名 bool dealWellNames(); //根据字段名得到字段的位置id号 bool getNdexByField(QString s, int& ndex); //配置文件加载 bool getWellTypeCn(QMap& mapWellTp); bool findWellType(QMap mapWellTp, QString s, QString& sType); //填充对话框 bool fillUI(); bool fillShowWx(); // 判断是否已有同样的数据 bool existSameRec(QString sTableName, QString sWellCode, VecVariant& vec); bool isSameField(QString sTableName, int nIndex, QVariant o1, QVariant o2); //根据字段得到配置文件的显示 zxDataOtherItem* getConfigItemByField(QString sField); private slots: void on_listWidget_currentRowChanged(int currentRow); void on_tbxFile_textChanged(const QString &arg1); void on_btnFile_clicked(); void on_btnRun_clicked(); void on_btnSave_clicked(); void on_btnClose_clicked(); private: Ui::iWxDataAccessLoad *ui; QStringList m_listField; QMap m_mapData; vecAccessItem m_vecAccessItem; //设置选择的数据显示框 iWxDataShow* m_pWxShow; };