From 9538a549f62e0724c415843b053f25a1d541a373 Mon Sep 17 00:00:00 2001 From: jiayulong Date: Thu, 12 Mar 2026 15:37:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B0=94=E6=B5=8B-=E7=AE=A1=E6=9F=B1-=E6=96=87?= =?UTF-8?q?=E6=9C=AC-FMT-=E5=B0=84=E5=AD=94=EF=BC=8C=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CallManage/CallManage.h | 5 +- logPlus/ObjTextResult.cpp | 87 -------- logPlus/ObjTextResult.h | 40 ---- logPlus/PropertyWidget.cpp | 146 +++++++++++++ logPlus/PropertyWidget.h | 5 + logPlus/TransparentDraggableJiegutext.h | 2 +- logPlus/formdraw.cpp | 275 +++++++++++++++++++++--- logPlus/formdraw.h | 15 +- logPlus/forminfo.cpp | 66 +++--- logPlus/forminfo.h | 3 + logPlus/formtrack.cpp | 44 ++-- logPlus/formtrack.h | 4 +- logPlus/logPlus.pro | 2 - logPlus/mainwindowcurve.cpp | 39 +++- logPlus/qmycustomplot.cpp | 185 +++++++++++++++- logPlus/qmycustomplot.h | 24 ++- 16 files changed, 713 insertions(+), 229 deletions(-) delete mode 100644 logPlus/ObjTextResult.cpp delete mode 100644 logPlus/ObjTextResult.h diff --git a/CallManage/CallManage.h b/CallManage/CallManage.h index c27b66f..cfd22e3 100644 --- a/CallManage/CallManage.h +++ b/CallManage/CallManage.h @@ -74,7 +74,7 @@ signals: void sig_AddCrack(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW = 0); //气测/FMT/射孔/文本 - void sig_AddJiegutext(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW = 0); + void sig_AddJiegutext(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW = 0, QStringList listOtherProperty={}); //多臂井径 void sig_AddMCals(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW = 0); @@ -208,6 +208,9 @@ signals: //改变固井曲线名 void sig_changeGujingLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName); + //改变曲线名 //气测/FMT/射孔/文本 + void sig_changeJiegutextLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName); + void sig_changeJiegutextTitle(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName); //改变录井剖面属性 void sig_changeGeoLithLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, double dOilZhan); diff --git a/logPlus/ObjTextResult.cpp b/logPlus/ObjTextResult.cpp deleted file mode 100644 index 687d340..0000000 --- a/logPlus/ObjTextResult.cpp +++ /dev/null @@ -1,87 +0,0 @@ -#include "ObjTextResult.h" -#include "MemRdWt.h" -#include "geometryutils.h" - -//气测/FMT/射孔/文本 -CObjTextResult::CObjTextResult() -{ -} - - -CObjTextResult::~CObjTextResult() -{ -}; - -bool CObjTextResult::LoadFromSLF(QMyCustomPlot *widget, QString strSlfName, QString csCurve) -{ - Slf_TxtPOS *m_pResult=NULL; - CMemRdWt *logio=new CMemRdWt(); - if(strSlfName==""||!logio->Open(strSlfName.toStdString().c_str(),CSlfIO::modeRead)) - { - delete logio; -// QMessageBox::information(NULL,"提示","SLF文件打开失败,请检查!!",QMessageBox::Yes); - return false; - } - - int iIndex=logio->OpenTable(csCurve.toStdString().c_str()); - if(iIndex>-1) { - int count = logio->GetTableRecordCount(iIndex); - int fieldnum = logio->GetTableFieldCount(iIndex); - int len = logio->GetTableRecordLength(iIndex); - Slf_TABLE_FIELD *pField=new Slf_TABLE_FIELD[fieldnum+1]; - logio->GetTableFieldInfo(iIndex,pField); - - m_FieldNameList.clear(); - m_FieldUnitList.clear(); - m_FieldHZNameList.clear(); - m_FieldHZUnitList.clear(); - // - for(int i=0;iGetTableFieldData(iIndex,0,buf,i+1); - m_pResult->Order=atof(buf); - logio->GetTableFieldData(iIndex,1,buf,i+1); - m_pResult->Depth=atof(buf); - logio->GetTableFieldData(iIndex,2,buf,i+1); - m_pResult->CorrDepth=atof(buf); - double top=m_pResult->Depth; - double bottom=m_pResult->Depth; - if(m_FieldNameList.size()>2&& - (m_FieldNameList[2].indexOf("EDEP")>-1 || - m_FieldNameList[2].indexOf("ENDEP")>-1) - ) - { - bottom=m_pResult->CorrDepth; - } - - CoreValues.clear(); - ValueTypes.clear(); - for(int j=0;jGetTableFieldData(iIndex,j,buf,i+1); - ValueTypes.append(iType); - float val=0; - val=atof(buf); - CoreValues.append(QString::number(val)); - } - - // - widget->addJiegutextToPlot(-bottom, -top, CoreValues, iMaxNum); - } - logio->CloseTable(iIndex); - delete m_pResult; - } - delete logio; - return true; -} diff --git a/logPlus/ObjTextResult.h b/logPlus/ObjTextResult.h deleted file mode 100644 index 0aceeee..0000000 --- a/logPlus/ObjTextResult.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef OBTextRESULTITEM_H -#define OBTextRESULTITEM_H - -#include -#include "qmycustomplot.h" - -//#define CoreWidth 0.5 -//#define CoreHeight 0.05 -struct Slf_TxtPOS { - int Order; - float Depth; - float CorrDepth; -}; - -class CObjTextResult :public QObject -{ - Q_OBJECT -public: - CObjTextResult(); - virtual ~CObjTextResult(); - - virtual bool LoadFromSLF(QMyCustomPlot *widget, QString strSlfName, QString csCurve); - -protected: - -public: - QStringList m_FieldNameList; - QStringList m_FieldHZNameList; - QStringList m_FieldUnitList; - QStringList m_FieldHZUnitList; - - QList ValueTypes; - QStringList CoreValues; - - int iMaxNum = 0; -private: - -}; - -#endif diff --git a/logPlus/PropertyWidget.cpp b/logPlus/PropertyWidget.cpp index dfba898..31dd154 100644 --- a/logPlus/PropertyWidget.cpp +++ b/logPlus/PropertyWidget.cpp @@ -779,6 +779,125 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant emit CallManage::getInstance()->sig_changeGeoLithShow(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, m_formInfo->m_strLineName, m_propertyData[pProperty], bShow); } } + else if (m_strCurrentProperty == Jiegutext_Property)//气测/FMT/射孔/文本 + { + //先处理通用属性 + //CommonPropertyChanged(pProperty, variant); + + if("显示名称" == m_propertyData[pProperty]) + { + QString newAliasName = variant.value(); + m_formInfo->m_strAliasName = newAliasName; + m_formInfo->update(); + } + else if("字体" == m_propertyData[pProperty]) + { + //字体 + // 假设variant已经被设置为包含QColor + QFont newFont = variant.value(); + m_formInfo->m_curveNameFont = newFont; + m_formInfo->update(); + } + else if("颜色" == m_propertyData[pProperty]) + { + QColor newColor = variant.value(); + m_formInfo->m_lineColor = newColor; + m_formInfo->update(); + } + else if("选择井曲线" == m_propertyData[pProperty]) + { + QString sFilePath = variant.value(); + if(sFilePath.indexOf("@")>-1) + { + int ind=sFilePath.indexOf("@"); + QString strLineName = sFilePath.left(ind); + sFilePath=sFilePath.mid(ind+1); + sFilePath.trimmed(); + //只支持以下名称 + //if (strLineName == "GUJING1_RESULT" || strLineName == "GUJING2_RESULT" || strLineName == "GUJING3_RESULT") + { + QString strOldLineName = m_formInfo->m_strLineName; + QString strOldSlfName = m_formInfo->m_strSlfName; + //暂时不允许改变slf井次名称,不然不在同一口井绘制 + if(strOldSlfName != sFilePath) + { + QMessageBox::information(nullptr,"提示","不允许改变slf井次名称"); + return; + } + //名称不变 + if(strOldLineName == strLineName) + { + return; + } + + // + m_formInfo->m_strLineName = strLineName; + //m_formInfo->m_strSlfName = sFilePath; + m_formInfo->update(); + + //改变曲线名 + emit CallManage::getInstance()->sig_changeJiegutextLine(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, strOldLineName, strLineName); + } + } + } + else + { + QString strItem = m_propertyData[pProperty]; + bool bShow = variant.value(); + // + + QString strAliasName = m_formInfo->m_strAliasName; + if(strAliasName == "气测-FMT-射孔-文本" || strAliasName == "") + { + if(bShow) + { + strAliasName = strItem; + m_formInfo->m_strAliasName = strAliasName; + //改变曲线Title + emit CallManage::getInstance()->sig_changeJiegutextTitle(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, m_formInfo->m_strLineName, strAliasName); + } + } + else + { + if(bShow) + { + strAliasName += "/" + strItem; + m_formInfo->m_strAliasName = strAliasName; + //改变曲线Title + emit CallManage::getInstance()->sig_changeJiegutextTitle(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, m_formInfo->m_strLineName, strAliasName); + } + else + { + QStringList listAliasName = strAliasName.split("/");//QString字符串分割函数 + if(listAliasName.contains(strItem)) + { + listAliasName.removeOne(strItem); + } + if(listAliasName.size()==0) + { + strAliasName == "气测-FMT-射孔-文本"; + //改变曲线Title + emit CallManage::getInstance()->sig_changeJiegutextTitle(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, m_formInfo->m_strLineName, strAliasName); + } + else + { + strAliasName = ""; + for(int i=0; i0) + { + strAliasName += "/"; + } + strAliasName += listAliasName[i]; + } + //改变曲线Title + emit CallManage::getInstance()->sig_changeJiegutextTitle(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, m_formInfo->m_strLineName, strAliasName); + } + } + } + + } + } if("深度比例尺" == m_propertyData[pProperty]) { @@ -1952,6 +2071,11 @@ void PropertyWidget::initProperty(FormInfo *formInfo) { this->initWaveProperty(formInfo, formInfo->m_nDrawType); } + else if (formInfo->m_strType == "JiegutextObject") + { + //气测/FMT/射孔/文本 + this->initJiegutextProperty(formInfo); + } } void PropertyWidget::initRoseProperty(FormInfo *formInfo) @@ -2390,3 +2514,25 @@ void PropertyWidget::initGeoLithItemProperty(TransparentDraggableGeoLith* tdGeoL _CreateVariantPropertyItem("当前项", "油气", myOil, VariantManager::filePathTypeId()); _CreateVariantPropertyItem("当前项", "颜色", myColor, VariantManager::filePathTypeId()); } + +//气测/FMT/射孔/文本 +void PropertyWidget::initJiegutextProperty(FormInfo *formInfo) +{ + _CreateVariantPropertyItem("通常", "选择井曲线", m_strLineName + "@" + m_strSlfName, QVariant::String); + + _CreateVariantPropertyItem("对象", "字体", formInfo->m_curveNameFont, QVariant::Font); + _CreateVariantPropertyItem("对象", "颜色", formInfo->m_lineColor, QVariant::Color); + + QStringList listAliasName = formInfo->m_strAliasName.split("/");//QString字符串分割函数 + // + for(int i=0; i< formInfo->m_FieldNameList.size(); i++) + { + bool bCkeck = false; + if(listAliasName.contains(formInfo->m_FieldNameList[i])) + { + bCkeck = true; + } + _CreateVariantPropertyItem("表格数据", formInfo->m_FieldNameList[i], bCkeck, QVariant::Bool); + } + m_strCurrentProperty = Jiegutext_Property; +} diff --git a/logPlus/PropertyWidget.h b/logPlus/PropertyWidget.h index 9522e90..d4c5c15 100644 --- a/logPlus/PropertyWidget.h +++ b/logPlus/PropertyWidget.h @@ -54,6 +54,8 @@ #define Layer_Property "Layer_Property" //地质分层 #define LayerItem_Property "LayerItem_Property" //地质分层item +#define Jiegutext_Property "Jiegutext_Property" //气测/FMT/射孔/文本 + #pragma execution_character_set("utf-8") /** @@ -179,6 +181,9 @@ public: void initLayerProperty(FormInfo *formInfo); void initLayerItemProperty(TransparentDraggableLayer* tdLayer, double lower, double upper, QString strResult); + //气测/FMT/射孔/文本 + void initJiegutextProperty(FormInfo *formInfo); + void ChangFillProperty();//填充属性改变 void ChangHeadItemProperty();//图头项改变 diff --git a/logPlus/TransparentDraggableJiegutext.h b/logPlus/TransparentDraggableJiegutext.h index 6410b8f..5270b0d 100644 --- a/logPlus/TransparentDraggableJiegutext.h +++ b/logPlus/TransparentDraggableJiegutext.h @@ -8,7 +8,7 @@ #pragma execution_character_set("utf-8") // 强制指定执行字符集为 UTF-8 -#define MAX_NUM 4 +#define MAX_NUM 40 //气测/FMT/射孔/文本 class TransparentDraggableJiegutext : public QObject diff --git a/logPlus/formdraw.cpp b/logPlus/formdraw.cpp index 309b062..b171ebe 100644 --- a/logPlus/formdraw.cpp +++ b/logPlus/formdraw.cpp @@ -12,7 +12,6 @@ #include "PickFrac.h" #include "DrawFac.h" #include "ObjTubingstringResult.h" -#include "ObjTextResult.h" #include "DrawNrad.h" #include "formline.h" @@ -87,7 +86,7 @@ FormDraw::FormDraw(QWidget *parent, QString strWellName, QString strTrackName) : connect(CallManage::getInstance(), SIGNAL(sig_AddCrack(QString, QString, QString, QString, QString, int)), this, SLOT(s_addCrack(QString, QString, QString, QString, QString,int))); //气测/FMT/射孔/文本 - connect(CallManage::getInstance(), SIGNAL(sig_AddJiegutext(QString, QString, QString, QString, QString, int)), this, SLOT(s_addJiegutext(QString, QString, QString, QString, QString,int))); + connect(CallManage::getInstance(), SIGNAL(sig_AddJiegutext(QString, QString, QString, QString, QString, int, QStringList)), this, SLOT(s_addJiegutext(QString, QString, QString, QString, QString,int, QStringList))); //沉积相 connect(CallManage::getInstance(), SIGNAL(sig_AddLogface(QString, QString, QString, QString, QString, int)), this, SLOT(s_addLogface(QString, QString, QString, QString, QString,int))); @@ -98,6 +97,11 @@ FormDraw::FormDraw(QWidget *parent, QString strWellName, QString strTrackName) : //套管组件 connect(CallManage::getInstance(), SIGNAL(sig_AddTubingstring(QString, QString, QString, QString, QString, int)), this, SLOT(s_addTubingstring(QString, QString, QString, QString, QString,int))); + //改变固井曲线名 + connect(CallManage::getInstance(), SIGNAL(sig_changeGujingLine(QString, QString, QString, QString, QString, QString)), this, SLOT(s_changeGujingLine(QString, QString, QString, QString, QString, QString))); + //改变曲线名 //气测/FMT/射孔/文本 + connect(CallManage::getInstance(), SIGNAL(sig_changeJiegutextLine(QString, QString, QString, QString, QString, QString)), this, SLOT(s_changeJiegutextLine(QString, QString, QString, QString, QString, QString))); + } FormDraw::~FormDraw() @@ -138,6 +142,8 @@ void FormDraw::setDrawData(QStringList listdt, QJsonObject objInfo) // QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, m_strTrackName, strLineName); + //绑定m_formTrack,方便关联formInfo + curv->m_formTrack = m_formTrack; curv->m_iY1 = m_iY1; curv->m_iY2 = m_iY2; curv->initGeometry(m_strUuid, m_iScale, nW); @@ -303,6 +309,11 @@ void FormDraw::DisplayLines(QJsonArray linesArray) DisplayTable_One(lineObjInfo); } } + else if (strType == "JiegutextObject") + { + //气测/FMT/射孔/文本 + DisplayJiegutext_One(lineObjInfo); + } else { DisplayType_One(lineObjInfo); @@ -313,7 +324,7 @@ void FormDraw::DisplayLines(QJsonArray linesArray) } } -//结论 +//表格:固井结论等 void FormDraw::DisplayTable_One(QJsonObject lineObjInfo) { QString strSlfName = ""; @@ -379,7 +390,27 @@ void FormDraw::DisplayTable_One(QJsonObject lineObjInfo) { lineColor.setNamedColor(lineObjInfo.value("lineColor").toString()); } + //垂向绘制 + bool bVerticaDrawing = false; + if (lineObjInfo.contains("VerticaDrawing")) + { + QJsonValue value = lineObjInfo.value("VerticaDrawing"); + if (value.isBool()) { + bVerticaDrawing = value.toBool(); + } + } + // 旋转角度 + int nRotationAngle = 0; + if (lineObjInfo.contains("RotationAngle")) + { + QJsonValue value = lineObjInfo.value("RotationAngle"); + if (value.isDouble()) { + nRotationAngle = value.toInt(); + } + } + // + double dOilZhan = 8; //含油占比 bool bLithColor = true; // 岩性配色显示 bool bLithOne = true; // 单岩性显示 bool bShowOil = true; // 显示含油性 @@ -387,6 +418,11 @@ void FormDraw::DisplayTable_One(QJsonObject lineObjInfo) bool bShowColor = false; // 显示颜色 bool bShowColorNum = false; // 绘制颜色号 // + if (lineObjInfo.contains("OilZhan"))//含油占比 + { + dOilZhan = lineObjInfo.value("OilZhan").toInt(); + } + // if (lineObjInfo.contains("LithColor")) { QJsonValue value = lineObjInfo.value("LithColor"); @@ -440,11 +476,19 @@ void FormDraw::DisplayTable_One(QJsonObject lineObjInfo) listOtherProperty.append(strAliasName);//别名 listOtherProperty.append(lineColor.name());//名称颜色 listOtherProperty.append(curveNameFont.toString());//名称字体 - // - if (lineObjInfo.contains("OilZhan"))//含油占比 + if(bVerticaDrawing)//垂向绘制 { - listOtherProperty.append(QString::number(lineObjInfo.value("OilZhan").toInt())); + listOtherProperty.append("VerticaDrawing"); } + else{ + listOtherProperty.append("0"); + } + // + listOtherProperty.append(QString::number(nRotationAngle));//旋转角度 + + // + listOtherProperty.append(QString::number(dOilZhan));//含油占比 + // if(bLithColor) { listOtherProperty.append("LithColor"); @@ -497,6 +541,88 @@ void FormDraw::DisplayTable_One(QJsonObject lineObjInfo) } } +//气测/FMT/射孔/文本 +void FormDraw::DisplayJiegutext_One(QJsonObject lineObjInfo) +{ + QString strSlfName = ""; + QString strWellName = ""; + QString strLineName = ""; + QString strAliasName = "";//显示名称 + QFont curveNameFont("微软雅黑", 10); // 名称字体 + QColor lineColor = QColor(0, 0, 0);//颜色 + + if (lineObjInfo.contains("SlfName")) + { + QJsonValue value = lineObjInfo.value("SlfName"); + if (value.isString()) { + strSlfName = value.toString(); + //qDebug() << "SlfName:" << strSlfName; + + // + QString slffilename = QString(""); + int ind = strSlfName.lastIndexOf('\\'); + int ind2 = strSlfName.lastIndexOf('/'); + if (ind2 > ind) ind = ind2; + if (ind > -1) { + slffilename = strSlfName.mid(ind + 1); + strSlfName = slffilename; + } + } + } + if (lineObjInfo.contains("WellName")) + { + QJsonValue value = lineObjInfo.value("WellName"); + if (value.isString()) { + strWellName = value.toString(); + //qDebug() << "WellName:" << strWellName; + } + } + if (lineObjInfo.contains("LineName")) + { + QJsonValue value = lineObjInfo.value("LineName"); + if (value.isString()) { + strLineName = value.toString(); + //qDebug() << "LineName:" << strLineName; + } + } + if (lineObjInfo.contains("AliasName")) + { + QJsonValue value = lineObjInfo.value("AliasName"); + if (value.isString()) { + strAliasName = value.toString(); + //qDebug() << "strAliasName:" << strAliasName; + } + } + //字体 + if (lineObjInfo.contains("curveNameFont")) + { + QJsonValue value = lineObjInfo.value("curveNameFont"); + if (value.isString()) { + curveNameFont.fromString(value.toString()); + //qDebug() << "strUnit:" << strUnit; + } + } + // + if (lineObjInfo.contains("lineColor")) + { + lineColor.setNamedColor(lineObjInfo.value("lineColor").toString()); + } + + QString folderPath = GetLogdataPath(); + folderPath = folderPath + g_prjname; + strSlfName = folderPath + "/" + "#" + strWellName + "/" + strSlfName; + + if (strLineName != "") + { + QStringList listOtherProperty; + listOtherProperty.append(strAliasName);//别名 + listOtherProperty.append(lineColor.name());//名称颜色 + listOtherProperty.append(curveNameFont.toString());//名称字体 + //气测/FMT/射孔/文本 + this->s_addJiegutext(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName, 0, listOtherProperty); // + } +} + void FormDraw::DisplayLine_One(QJsonObject lineObjInfo) { QString strSlfName = ""; @@ -947,12 +1073,12 @@ QMyCustomPlot* FormDraw::addTableLine(QString strUuid, QString strSlfName, QStri // QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName); + //绑定m_formTrack,方便关联formInfo + curv->m_formTrack = m_formTrack; curv->m_iY1 = m_iY1; curv->m_iY2 = m_iY2; curv->initGeometry(m_strUuid, m_iScale, m_nTrackW); curv->show(); - //绑定m_formTrack,方便关联formInfo - curv->m_formTrack = m_formTrack; if (strLineName == "FRAC_HOLE.TABLE") { @@ -1081,6 +1207,8 @@ void FormDraw::s_addLine(QString strUuid, QString strSlfName, QString strWellNam // QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName); + //绑定m_formTrack,方便关联formInfo + curv->m_formTrack = m_formTrack; m_curv = curv; curv->m_strUuid = m_strUuid; //背景设置成透明色 @@ -1137,6 +1265,8 @@ void FormDraw::s_AddLine_Property(QString strUuid, QString strSlfName, QString s // QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName); + //绑定m_formTrack,方便关联formInfo + curv->m_formTrack = m_formTrack; curv->m_strUuid = m_strUuid; //背景设置成透明色 curv->setBackground(Qt::transparent); @@ -1201,6 +1331,8 @@ void FormDraw::s_addWave(QString strUuid, QString strSlfName, QString strWellNam // QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strWaveName); + //绑定m_formTrack,方便关联formInfo + curv->m_formTrack = m_formTrack; curv->m_strUuid = m_strUuid; //背景设置成透明色 curv->setBackground(Qt::transparent); @@ -1739,6 +1871,8 @@ void FormDraw::s_addGanZuangTu(QString strUuid, QString strSlfName, QString strW // QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName); + //绑定m_formTrack,方便关联formInfo + curv->m_formTrack = m_formTrack; curv->m_strUuid = m_strUuid; //背景设置成透明色 curv->setBackground(Qt::transparent); @@ -1890,6 +2024,8 @@ void FormDraw::s_addJykt(QString strUuid, QString strSlfName, QString strWellNam // QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName); + //绑定m_formTrack,方便关联formInfo + curv->m_formTrack = m_formTrack; curv->m_strUuid = m_strUuid; //背景设置成透明色 curv->setBackground(Qt::transparent); @@ -1959,6 +2095,8 @@ void FormDraw::s_addDenv(QString strUuid, QString strSlfName, QString strWellNam // QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName); + //绑定m_formTrack,方便关联formInfo + curv->m_formTrack = m_formTrack; curv->m_strUuid = m_strUuid; //背景设置成透明色 curv->setBackground(Qt::transparent); @@ -2028,6 +2166,8 @@ void FormDraw::s_addDrawImage(QString strUuid, QString strSlfName, QString strWe // QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName); + //绑定m_formTrack,方便关联formInfo + curv->m_formTrack = m_formTrack; curv->m_strUuid = m_strUuid; //背景设置成透明色 curv->setBackground(Qt::transparent); @@ -2161,6 +2301,8 @@ void FormDraw::s_addCrack(QString strUuid, QString strSlfName, QString strWellNa // QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName); + //绑定m_formTrack,方便关联formInfo + curv->m_formTrack = m_formTrack; curv->m_strUuid = m_strUuid; //背景设置成透明色 curv->setBackground(Qt::transparent); @@ -2230,7 +2372,7 @@ void FormDraw::s_addCrack(QString strUuid, QString strSlfName, QString strWellNa } //气测/FMT/射孔/文本 -void FormDraw::s_addJiegutext(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW) +void FormDraw::s_addJiegutext(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW, QStringList listOtherProperty) { //井名&道名不一致 if(strUuid == m_strUuid && m_strWellName == strWellName && m_strTrackName == strTrackName) @@ -2249,6 +2391,8 @@ void FormDraw::s_addJiegutext(QString strUuid, QString strSlfName, QString strWe // QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName); + //绑定m_formTrack,方便关联formInfo + curv->m_formTrack = m_formTrack; curv->m_strUuid = m_strUuid; //背景设置成透明色 curv->setBackground(Qt::transparent); @@ -2302,11 +2446,31 @@ void FormDraw::s_addJiegutext(QString strUuid, QString strSlfName, QString strWe curv->xAxis2->setTicks(false); curv->yAxis2->setTicks(false); + QColor newlineColor=QColor(0,0,0); + QString strAliasName = "气测-FMT-射孔-文本"; + //QString strAliasName = "SDEP/EDEP"; +// if(objTextResult->iMaxNum > 0) +// { +// strAliasName = ""; +// for(int i=0; iiMaxNum; i++) +// { +// if(i>0) +// { +// strAliasName += "/"; +// } +// strAliasName += objTextResult->m_FieldNameList[i]; +// } +// } + if(listOtherProperty.size()>=3) + { + strAliasName = listOtherProperty[0]; + newlineColor.setNamedColor(listOtherProperty[1]); + } + //气测/FMT/射孔/文本 - QString strWaveName = "WELL_XSCGB"; + //strLineName = "WELL_XSCGB"; //QString strWaveName = "GASLOG"; - CObjTextResult *objTextResult = new CObjTextResult(); - objTextResult->LoadFromSLF(curv, strSlfName, strWaveName); + curv->LoadFromSLF_Jiegutext(strSlfName, strLineName, strAliasName); // connect(curv, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*))); @@ -2314,25 +2478,20 @@ void FormDraw::s_addJiegutext(QString strUuid, QString strSlfName, QString strWe // m_listLineName.push_back(strLineName); - QString strAliasName = "气测/FMT/射孔/文本"; - if(objTextResult->iMaxNum > 0) - { - strAliasName = ""; - for(int i=0; iiMaxNum; i++) - { - if(i>0) - { - strAliasName += "/"; - } - strAliasName += objTextResult->m_FieldNameList[i]; - } - } QString strUnit = ""; - QColor newlineColor=QColor(0,0,0); double width=2; QString strScaleType = ""; //道-对象 - m_formTrack->Add(strSlfName, m_strWellName, m_strTrackName, strWaveName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "JiegutextObject"); + m_formTrack->Add(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "JiegutextObject", listOtherProperty); + + //设置所有title,供用户选择 + FormInfo* pInfo = m_formTrack->getFormInfoByParameters(m_strUuid, strWellName, strTrackName, strLineName); + if (pInfo == NULL) + { + return; + } + pInfo->m_FieldNameList.clear(); + pInfo->m_FieldNameList.append(curv->m_FieldNameList); } //沉积相 @@ -2355,6 +2514,8 @@ void FormDraw::s_addLogface(QString strUuid, QString strSlfName, QString strWell // QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName); + //绑定m_formTrack,方便关联formInfo + curv->m_formTrack = m_formTrack; curv->m_strUuid = m_strUuid; //背景设置成透明色 curv->setBackground(Qt::transparent); @@ -2441,6 +2602,8 @@ void FormDraw::s_addMCals(QString strUuid, QString strSlfName, QString strWellNa // QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName); + //绑定m_formTrack,方便关联formInfo + curv->m_formTrack = m_formTrack; curv->m_strUuid = m_strUuid; //背景设置成透明色 curv->setBackground(Qt::transparent); @@ -2527,6 +2690,8 @@ void FormDraw::s_addTubingstring(QString strUuid, QString strSlfName, QString st // QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName); + //绑定m_formTrack,方便关联formInfo + curv->m_formTrack = m_formTrack; curv->m_strUuid = m_strUuid; //背景设置成透明色 curv->setBackground(Qt::transparent); @@ -3762,12 +3927,12 @@ void FormDraw::initGeoLith(QMyCustomPlot *widget, QString strSlfName, QString st widget->yAxis2->setTicks(false); //含油占比 - if(listOtherProperty.size()>=10) + if(listOtherProperty.size()>=12) { - widget->m_dOilZhan = listOtherProperty[3].toDouble(); + widget->m_dOilZhan = listOtherProperty[5].toDouble(); // - if(listOtherProperty[4]=="LithColor") + if(listOtherProperty[6]=="LithColor") { widget->m_bLithColor = true; } @@ -3776,7 +3941,7 @@ void FormDraw::initGeoLith(QMyCustomPlot *widget, QString strSlfName, QString st widget->m_bLithColor = false; } // - if(listOtherProperty[5]=="LithOne") + if(listOtherProperty[7]=="LithOne") { widget->m_bLithOne = true; } @@ -3785,7 +3950,7 @@ void FormDraw::initGeoLith(QMyCustomPlot *widget, QString strSlfName, QString st widget->m_bLithOne = false; } // - if(listOtherProperty[6]=="ShowOil") + if(listOtherProperty[8]=="ShowOil") { widget->m_bShowOil = true; } @@ -3794,7 +3959,7 @@ void FormDraw::initGeoLith(QMyCustomPlot *widget, QString strSlfName, QString st widget->m_bShowOil = false; } // - if(listOtherProperty[7]=="CenterOil") + if(listOtherProperty[9]=="CenterOil") { widget->m_bCenterOil = true; } @@ -3803,7 +3968,7 @@ void FormDraw::initGeoLith(QMyCustomPlot *widget, QString strSlfName, QString st widget->m_bCenterOil = false; } // - if(listOtherProperty[8]=="ShowColor") + if(listOtherProperty[10]=="ShowColor") { widget->m_bShowColor = true; } @@ -3812,7 +3977,7 @@ void FormDraw::initGeoLith(QMyCustomPlot *widget, QString strSlfName, QString st widget->m_bShowColor = false; } // - if(listOtherProperty[9]=="ShowColorNum") + if(listOtherProperty[11]=="ShowColorNum") { widget->m_bShowColorNum = true; } @@ -6216,3 +6381,43 @@ void FormDraw::dropEvent(QDropEvent* event) // 恢复鼠标光标 //QApplication::restoreOverrideCursor(); } + +void FormDraw::s_changeGujingLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName) +{ + //井名&道名不一致 + if(strUuid == m_strUuid && m_strWellName == strWellName && m_strTrackName == strTrackName) + { + } + else + { + return; + } + + if(m_listLineName.contains(strLineName)) + { + m_listLineName.removeOne(strLineName); + //qDebug() << "FormDraw strLineName already exist! " << strLineName; + //return; + } + m_listLineName.push_back(strNewLineName); +} + +void FormDraw::s_changeJiegutextLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName) +{ + //井名&道名不一致 + if(strUuid == m_strUuid && m_strWellName == strWellName && m_strTrackName == strTrackName) + { + } + else + { + return; + } + + if(m_listLineName.contains(strLineName)) + { + m_listLineName.removeOne(strLineName); + //qDebug() << "FormDraw strLineName already exist! " << strLineName; + //return; + } + m_listLineName.push_back(strNewLineName); +} diff --git a/logPlus/formdraw.h b/logPlus/formdraw.h index 37f1bd7..c27cb7d 100644 --- a/logPlus/formdraw.h +++ b/logPlus/formdraw.h @@ -55,10 +55,16 @@ public: //展示所有曲线 void DisplayLines(QJsonArray linesArray); + //曲线 void DisplayLine_One(QJsonObject lineObjInfo); + //波列 void DisplayType_One(QJsonObject objInfo); - void DisplayTable_One(QJsonObject lineObjInfo); //结论 + //表格:固井结论等 + void DisplayTable_One(QJsonObject lineObjInfo); + + //气测/FMT/射孔/文本 + void DisplayJiegutext_One(QJsonObject lineObjInfo); // 跨道设置 void crossTrackSetting(); @@ -245,7 +251,7 @@ public slots: void s_addCrack(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW); //气测/FMT/射孔/文本 - void s_addJiegutext(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW); + void s_addJiegutext(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW, QStringList listOtherProperty); //沉积相 void s_addLogface(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW); @@ -267,6 +273,11 @@ public slots: void s_addTableLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strWaveName); void s_delTableLine(QString strUuid, QString strWellName, QString strTrackName, QString strLineName); + //改变固井曲线名 + void s_changeGujingLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName); + //改变曲线名 //气测/FMT/射孔/文本 + void s_changeJiegutextLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName); + }; #endif // FORMDRAW_H diff --git a/logPlus/forminfo.cpp b/logPlus/forminfo.cpp index 379ad4f..1c410dc 100644 --- a/logPlus/forminfo.cpp +++ b/logPlus/forminfo.cpp @@ -129,34 +129,27 @@ QJsonObject FormInfo::makeJson() // rootObj["TrackName"] = m_strTrackName; rootObj["LineName"] = m_strLineName; rootObj["AliasName"] = m_strAliasName; + // + rootObj["Type"] = m_strType; + rootObj["curveNameFont"] = m_curveNameFont.toString(); + rootObj["lineColor"] = m_lineColor.name(); if (m_strType == "tableObject") { - if (m_strLineName == "GUJING1_RESULT" || m_strLineName == "GUJING2_RESULT" || m_strLineName == "GUJING3_RESULT") + //垂向绘制 + rootObj["VerticaDrawing"] = m_bVerticaDrawing; + rootObj["RotationAngle"] = m_nRotationAngle; + + if (m_strLineName == "GUJING1_RESULT" || m_strLineName == "GUJING2_RESULT" || m_strLineName == "GUJING3_RESULT" + || m_strLineName == "SWALL_CORE" || m_strLineName == "WORDS_RELUST" || m_strLineName == "LAYER_DATA") { - //固井结论 - rootObj["Type"] = m_strType; - rootObj["curveNameFont"] = m_curveNameFont.toString(); - rootObj["lineColor"] = m_lineColor.name(); - //item属性写入slf文件,不需要此次记录 - return rootObj; - } - else if (m_strLineName == "SWALL_CORE") - { - //井壁取心 - rootObj["Type"] = m_strType; - rootObj["curveNameFont"] = m_curveNameFont.toString(); - rootObj["lineColor"] = m_lineColor.name(); + //固井结论/井壁取心/文字结论/地质分层 //item属性写入slf文件,不需要此次记录 return rootObj; } else if (m_strLineName == "GEO_LITH") { //录井剖面 - rootObj["Type"] = m_strType; - rootObj["curveNameFont"] = m_curveNameFont.toString(); - rootObj["lineColor"] = m_lineColor.name(); - rootObj["OilZhan"] = m_dOilZhan;//含油占比 rootObj["LithColor"] = m_bLithColor; rootObj["LithOne"] = m_bLithOne; @@ -167,30 +160,17 @@ QJsonObject FormInfo::makeJson() //item属性写入slf文件,不需要此次记录 return rootObj; } - else if (m_strLineName == "WORDS_RELUST") - { - //文字结论 - rootObj["Type"] = m_strType; - rootObj["curveNameFont"] = m_curveNameFont.toString(); - rootObj["lineColor"] = m_lineColor.name(); - //item属性写入slf文件,不需要此次记录 - return rootObj; - } - else if (m_strLineName == "LAYER_DATA") - { - //地质分层 - rootObj["Type"] = m_strType; - rootObj["curveNameFont"] = m_curveNameFont.toString(); - rootObj["lineColor"] = m_lineColor.name(); - //item属性写入slf文件,不需要此次记录 - return rootObj; - } + } + else if (m_strType == "JiegutextObject") + { + //气测/FMT/射孔/文本 + //rootObj["OilZhan"] = m_dOilZhan;//含油占比 + + //item属性写入slf文件,不需要此次记录 + return rootObj; } rootObj["Unit"] = m_strUnit; - rootObj["Type"] = m_strType; - rootObj["curveNameFont"] = m_curveNameFont.toString(); - rootObj["lineColor"] = m_lineColor.name(); rootObj["Width"] = m_dWidth; rootObj["lineStyle"] = m_lineStyle; rootObj["vmax"] = m_vmax; @@ -1021,6 +1001,14 @@ void FormInfo::contextMenuEvent(QContextMenuEvent *event) menu.addAction(QIcon(::GetImagePath() + "icon/Delete.png"), "删除当前对象", this, &FormInfo::onDeleteTable); menu.exec(event->globalPos()); } + else if(m_strType=="JiegutextObject") + { + //气测/FMT/射孔/文本 + QMenu menu(this); + menu.addAction(QIcon(::GetImagePath() + "icon/Sheet.png"), "数据对象查看", this, &FormInfo::onShowTable); + menu.addAction(QIcon(::GetImagePath() + "icon/Delete.png"), "删除当前对象", this, &FormInfo::onDeleteTable); + menu.exec(event->globalPos()); + } } //曲线数据查看 diff --git a/logPlus/forminfo.h b/logPlus/forminfo.h index 66d0dc2..2700544 100644 --- a/logPlus/forminfo.h +++ b/logPlus/forminfo.h @@ -154,6 +154,9 @@ public: bool m_bShowColorNum = false; // 绘制颜色号 double m_dOilZhan = 8; //含油占比 + //气测/FMT/射孔/文本 + QStringList m_FieldNameList; + public: void setLineWidth(double dWidth); double getLineWidth(); diff --git a/logPlus/formtrack.cpp b/logPlus/formtrack.cpp index 3b11547..27e6a5a 100644 --- a/logPlus/formtrack.cpp +++ b/logPlus/formtrack.cpp @@ -95,8 +95,8 @@ FormTrack::FormTrack(QWidget *parent, QString strWellName, QString strTrackName) this, SLOT(s_addSantuyibiao(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); //气测/FMT/射孔/文本 - connect(this, SIGNAL(sig_AddJiegutext(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), - this, SLOT(s_addJiegutext(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); + connect(this, SIGNAL(sig_AddJiegutext(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString, QStringList)), + this, SLOT(s_addJiegutext(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString, QStringList))); //沉积相 connect(this, SIGNAL(sig_AddLogface(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), @@ -255,7 +255,7 @@ void FormTrack::Add(QString strSlfName, QString strWellName, QString strTrackNam } else if(strType=="JiegutextObject") { - emit sig_AddJiegutext(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType); + emit sig_AddJiegutext(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType, listOtherProperty); } else if(strType=="LogfaceObject") { @@ -575,22 +575,33 @@ void FormTrack::s_AddTableLine(QString strSlfName, QString strWellName, QString || strLineName == "LAYER_DATA" ) { //固井结论 / 井壁取心 / 录井剖面 /文字结论 /地质分层 - if(listOtherProperty.size()>=3) + if(listOtherProperty.size()>=5) { QFont curveNameFont("微软雅黑", 10); // 名称字体 curveNameFont.fromString(listOtherProperty[2]); formInfo->m_curveNameFont = curveNameFont; + // + if(listOtherProperty[3]=="VerticaDrawing") + { + formInfo->m_bVerticaDrawing = true; + } + else + { + formInfo->m_bVerticaDrawing = false; + } + // + formInfo->m_nRotationAngle = listOtherProperty[4].toInt(); } //录井剖面 if(strLineName == "GEO_LITH") { - if(listOtherProperty.size()>=10) + if(listOtherProperty.size()>=12) { - formInfo->m_dOilZhan = listOtherProperty[3].toDouble(); + formInfo->m_dOilZhan = listOtherProperty[5].toDouble(); // - if(listOtherProperty[4]=="LithColor") + if(listOtherProperty[6]=="LithColor") { formInfo->m_bLithColor = true; } @@ -599,7 +610,7 @@ void FormTrack::s_AddTableLine(QString strSlfName, QString strWellName, QString formInfo->m_bLithColor = false; } // - if(listOtherProperty[5]=="LithOne") + if(listOtherProperty[7]=="LithOne") { formInfo->m_bLithOne = true; } @@ -608,7 +619,7 @@ void FormTrack::s_AddTableLine(QString strSlfName, QString strWellName, QString formInfo->m_bLithOne = false; } // - if(listOtherProperty[6]=="ShowOil") + if(listOtherProperty[8]=="ShowOil") { formInfo->m_bShowOil = true; } @@ -617,7 +628,7 @@ void FormTrack::s_AddTableLine(QString strSlfName, QString strWellName, QString formInfo->m_bShowOil = false; } // - if(listOtherProperty[7]=="CenterOil") + if(listOtherProperty[9]=="CenterOil") { formInfo->m_bCenterOil = true; } @@ -626,7 +637,7 @@ void FormTrack::s_AddTableLine(QString strSlfName, QString strWellName, QString formInfo->m_bCenterOil = false; } // - if(listOtherProperty[8]=="ShowColor") + if(listOtherProperty[10]=="ShowColor") { formInfo->m_bShowColor = true; } @@ -635,7 +646,7 @@ void FormTrack::s_AddTableLine(QString strSlfName, QString strWellName, QString formInfo->m_bShowColor = false; } // - if(listOtherProperty[9]=="ShowColorNum") + if(listOtherProperty[11]=="ShowColorNum") { formInfo->m_bShowColorNum = true; } @@ -921,7 +932,7 @@ void FormTrack::s_addCrack(QString strSlfName, QString strWellName, QString strT ui->tableWidget->setCellWidget(row, 0, formInfo); } -void FormTrack::s_addJiegutext(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType) +void FormTrack::s_addJiegutext(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QStringList listOtherProperty) { qDebug() << "FormTrack s_addJiegutext"; @@ -946,6 +957,13 @@ void FormTrack::s_addJiegutext(QString strSlfName, QString strWellName, QString formInfo->setVMin(vmin); formInfo->setFrontColor(QColor(0,0,0)); formInfo->setBackColor(QColor(255,255,255)); + // + if(listOtherProperty.size()>=3) + { + QFont curveNameFont("微软雅黑", 10); // 名称字体 + curveNameFont.fromString(listOtherProperty[2]); + formInfo->m_curveNameFont = curveNameFont; + } //设置高度 ui->tableWidget->setRowHeight(row, 100); //单元格委托 diff --git a/logPlus/formtrack.h b/logPlus/formtrack.h index 7df9944..d8be071 100644 --- a/logPlus/formtrack.h +++ b/logPlus/formtrack.h @@ -91,7 +91,7 @@ signals: void sig_AddDrawImage(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); void sig_AddSantuyibiao(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); void sig_AddCrack(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); - void sig_AddJiegutext(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); + void sig_AddJiegutext(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QStringList listOtherProperty={}); void sig_AddLogface(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); void sig_AddMCals(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); void sig_AddTubingstring(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); @@ -113,7 +113,7 @@ public slots: void s_addDrawImage(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); void s_addSantuyibiao(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); void s_addCrack(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); - void s_addJiegutext(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); + void s_addJiegutext(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QStringList listOtherProperty={}); void s_addLogface(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); void s_addMCals(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); void s_addTubingstring(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); diff --git a/logPlus/logPlus.pro b/logPlus/logPlus.pro index 026ee56..c1b71db 100644 --- a/logPlus/logPlus.pro +++ b/logPlus/logPlus.pro @@ -40,7 +40,6 @@ SOURCES += \ Gradient.cpp \ InDefTableDlg.cpp \ InterfaceWidget.cpp \ - ObjTextResult.cpp \ ObjTubingstringResult.cpp \ PickFrac.cpp \ PropertyWidget.cpp \ @@ -104,7 +103,6 @@ HEADERS += \ Gradient.h \ InDefTableDlg.h \ InterfaceWidget.h \ - ObjTextResult.h \ ObjTubingstringResult.h \ PickFrac.h \ PropertyWidget.h \ diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index 2708619..d9a3d6b 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -2869,7 +2869,18 @@ void MainWindowCurve::s_NewCoreImage() //斜井三图一表 void MainWindowCurve::s_NewSantuyibiao() { - QStringList sret = this->getSelectWell(); +// QStringList sret = this->getSelectWell(); +// if(sret.length() <= 0) +// return; + + //选中道 + if(m_SelectTableItem.m_iTableType==2) { + //新建表格曲线 + emit CallManage::getInstance()->sig_AddTableLine(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, "IMAGE_DATA"); + return; + } + + QStringList sret = this->getSelectWell_New(); if(sret.length() <= 0) return; @@ -2880,7 +2891,18 @@ void MainWindowCurve::s_NewSantuyibiao() //裂缝 void MainWindowCurve::s_NewCrack() { - QStringList sret = this->getSelectWell(); +// QStringList sret = this->getSelectWell(); +// if(sret.length() <= 0) +// return; + + //选中道 + if(m_SelectTableItem.m_iTableType==2) { + //新建表格曲线 + emit CallManage::getInstance()->sig_AddTableLine(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, "IMAGE_DATA"); + return; + } + + QStringList sret = this->getSelectWell_New(); if(sret.length() <= 0) return; @@ -3196,7 +3218,18 @@ void MainWindowCurve::s_NewGeoSection() //气测/FMT/射孔/文本 void MainWindowCurve::s_NewJiegutext() { - QStringList sret = this->getSelectWell(); +// QStringList sret = this->getSelectWell(); +// if(sret.length() <= 0) +// return; + + //选中道 + if(m_SelectTableItem.m_iTableType==2) { + //新建表格曲线 + emit CallManage::getInstance()->sig_AddTableLine(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, "IMAGE_DATA"); + return; + } + + QStringList sret = this->getSelectWell_New(); if(sret.length() <= 0) return; diff --git a/logPlus/qmycustomplot.cpp b/logPlus/qmycustomplot.cpp index 6d8233b..e17838a 100644 --- a/logPlus/qmycustomplot.cpp +++ b/logPlus/qmycustomplot.cpp @@ -124,6 +124,10 @@ QMyCustomPlot::QMyCustomPlot(QWidget *parent, QString strSlfName, QString strWel connect(CallManage::getInstance(), SIGNAL(sig_changeDrawProperty(QVariantList)), this, SLOT(s_changeDrawProperty(QVariantList))); //改变固井曲线名 connect(CallManage::getInstance(), SIGNAL(sig_changeGujingLine(QString, QString, QString, QString, QString, QString)), this, SLOT(s_changeGujingLine(QString, QString, QString, QString, QString, QString))); + //改变曲线名 //气测/FMT/射孔/文本 + connect(CallManage::getInstance(), SIGNAL(sig_changeJiegutextLine(QString, QString, QString, QString, QString, QString)), this, SLOT(s_changeJiegutextLine(QString, QString, QString, QString, QString, QString))); + //改变曲线Title //气测/FMT/射孔/文本 + connect(CallManage::getInstance(), SIGNAL(sig_changeJiegutextTitle(QString, QString, QString, QString, QString, QString)), this, SLOT(s_changeJiegutextTitle(QString, QString, QString, QString, QString, QString))); //改变录井剖面属性 connect(CallManage::getInstance(), SIGNAL(sig_changeGeoLithLine(QString, QString, QString, QString, QString, double)), this, SLOT(s_changeGeoLithLine(QString, QString, QString, QString, QString, double))); //是否显示 @@ -3154,6 +3158,38 @@ void QMyCustomPlot::DeleteItems_Gujing() PropertyService()->InitCurrentViewInfo(); } +//刷新数据 +void QMyCustomPlot::RefreshItems_Jiegutext(QString strAliasName) +{ + //删除对象 + TransparentDraggableJiegutext *pDraggableRect =NULL; + QMap::Iterator it = m_mapDraggable_Jiegutext.begin(); + while( it != m_mapDraggable_Jiegutext.end() ) + { + pDraggableRect = (TransparentDraggableJiegutext*)it.value(); + it++; + pDraggableRect->deleteRect(); + } + + //重新加载 + //QString strAliasName = "气测-FMT-射孔-文本"; + LoadFromSLF_Jiegutext(m_strSlfName, m_strLineName, strAliasName); + //设置所有title,供用户选择 + FormInfo* pInfo = m_formTrack->getFormInfoByParameters(m_strUuid, m_strWellName, m_strTrackName, m_strLineName); + if (pInfo == NULL) + { + return; + } + // + pInfo->m_strAliasName = strAliasName; + pInfo->m_FieldNameList.clear(); + pInfo->m_FieldNameList.append(this->m_FieldNameList); + pInfo->update(); + + //属性清空 + PropertyService()->InitCurrentViewInfo(); +} + //刷新数据 void QMyCustomPlot::RefreshItems_Gujing() { @@ -4017,7 +4053,7 @@ void QMyCustomPlot::addGujingToPlot(double left_Low, double right_Hight, const Q } //气测/FMT/射孔/文本 -void QMyCustomPlot::addJiegutextToPlot(double left_Low, double right_Hight, const QStringList strText, int &iMaxNum, QColor crColor) +void QMyCustomPlot::addJiegutextToPlot(double left_Low, double right_Hight, const QStringList strText, QColor crColor) { QtCommonClass *qtCommon = new QtCommonClass(this); QString strUuid = qtCommon->getUUid(); @@ -4033,8 +4069,6 @@ void QMyCustomPlot::addJiegutextToPlot(double left_Low, double right_Hight, cons //dragRect->setTitle(strText);//直接创建时赋值 m_mapDraggable_Jiegutext[strUuid] = dragRect; - // - iMaxNum = dragRect->iMaxNum; } //沉积相-微相 @@ -5354,6 +5388,71 @@ void QMyCustomPlot::s_changeGujingLine(QString strUuid, QString strSlfName, QStr RefreshItems_Gujing(); } +//改变曲线名 //气测/FMT/射孔/文本 +void QMyCustomPlot::s_changeJiegutextLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName) +{ + if(m_strUuid == strUuid && + m_strSlfName == strSlfName && + m_strWellName == strWellName && + m_strTrackName == strTrackName && + m_strLineName == strLineName) + { + + } + else + { + return; + } + + m_strLineName = strNewLineName; + //刷新数据 + RefreshItems_Jiegutext(); +} + +//改变曲线Title //气测/FMT/射孔/文本 +void QMyCustomPlot::s_changeJiegutextTitle(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName) +{ + if(m_strUuid == strUuid && + m_strSlfName == strSlfName && + m_strWellName == strWellName && + m_strTrackName == strTrackName && + m_strLineName == strLineName) + { + + } + else + { + return; + } + + //刷新数据 + //RefreshItems_Jiegutext(strAliasName); + //删除对象 + TransparentDraggableJiegutext *pDraggableRect =NULL; + QMap::Iterator it = m_mapDraggable_Jiegutext.begin(); + while( it != m_mapDraggable_Jiegutext.end() ) + { + pDraggableRect = (TransparentDraggableJiegutext*)it.value(); + it++; + pDraggableRect->deleteRect(); + } + + //重新加载 + //QString strAliasName = "气测-FMT-射孔-文本"; + LoadFromSLF_Jiegutext(m_strSlfName, m_strLineName, strAliasName); + //设置所有title,供用户选择 + FormInfo* pInfo = m_formTrack->getFormInfoByParameters(m_strUuid, m_strWellName, m_strTrackName, m_strLineName); + if (pInfo == NULL) + { + return; + } + // + pInfo->m_strAliasName = strAliasName; + pInfo->m_FieldNameList.clear(); + pInfo->m_FieldNameList.append(this->m_FieldNameList); + pInfo->update(); +} + //改变录井剖面属性 void QMyCustomPlot::s_changeGeoLithLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, double dOilZhan) { @@ -5761,3 +5860,83 @@ void QMyCustomPlot::AddItem_Layer(QStringList lists) //插入文本 this->addLayerToPlot(-bottom, -top, lists[3]); } + + +bool QMyCustomPlot::LoadFromSLF_Jiegutext(QString strSlfName, QString csCurve, QString strAliasName) +{ + Slf_TxtPOS *m_pResult=NULL; + CMemRdWt *logio=new CMemRdWt(); + if(strSlfName==""||!logio->Open(strSlfName.toStdString().c_str(),CSlfIO::modeRead)) + { + delete logio; +// QMessageBox::information(NULL,"提示","SLF文件打开失败,请检查!!",QMessageBox::Yes); + return false; + } + + int iIndex=logio->OpenTable(csCurve.toStdString().c_str()); + if(iIndex>-1) { + int count = logio->GetTableRecordCount(iIndex); + int fieldnum = logio->GetTableFieldCount(iIndex); + int len = logio->GetTableRecordLength(iIndex); + Slf_TABLE_FIELD *pField=new Slf_TABLE_FIELD[fieldnum+1]; + logio->GetTableFieldInfo(iIndex,pField); + + m_FieldNameList.clear(); + m_FieldUnitList.clear(); + m_FieldHZNameList.clear(); + m_FieldHZUnitList.clear(); + // + for(int i=0;iGetTableFieldData(iIndex,0,buf,i+1); + m_pResult->Order=atof(buf); + logio->GetTableFieldData(iIndex,1,buf,i+1); + m_pResult->Depth=atof(buf); + logio->GetTableFieldData(iIndex,2,buf,i+1); + m_pResult->CorrDepth=atof(buf); + double top=m_pResult->Depth; + double bottom=m_pResult->Depth; + if(m_FieldNameList.size()>2&& + (m_FieldNameList[2].indexOf("EDEP")>-1 || + m_FieldNameList[2].indexOf("ENDEP")>-1) + ) + { + bottom=m_pResult->CorrDepth; + } + + CoreValues.clear(); + ValueTypes.clear(); + for(int j=0;jGetTableFieldData(iIndex,j,buf,i+1); + ValueTypes.append(iType); + float val=0; + val=atof(buf); + CoreValues.append(QString::number(val)); + } + } + + // + this->addJiegutextToPlot(-bottom, -top, CoreValues); + } + logio->CloseTable(iIndex); + delete m_pResult; + } + delete logio; + return true; +} diff --git a/logPlus/qmycustomplot.h b/logPlus/qmycustomplot.h index 7050ce1..c393b6e 100644 --- a/logPlus/qmycustomplot.h +++ b/logPlus/qmycustomplot.h @@ -15,6 +15,12 @@ const int iFracType=15; #define SideWallCoreWidth 1.2 #define SideWallCoreHeight 0.5 +struct Slf_TxtPOS { + int Order; + float Depth; + float CorrDepth; +}; + class TransparentGroupResult; class QMyCustomPlot : public QCustomPlot { @@ -205,6 +211,15 @@ public: bool SaveToSLF_Layer(); bool LoadFromSLF_Layer(QString strSlfName, QString strLineName); + //气测/FMT/射孔/文本 + QStringList m_FieldNameList; + QStringList m_FieldHZNameList; + QStringList m_FieldUnitList; + QStringList m_FieldHZUnitList; + QList ValueTypes; + QStringList CoreValues; + bool LoadFromSLF_Jiegutext(QString strSlfName, QString csCurve, QString strAliasName); + public slots: void slot_time(); @@ -238,7 +253,7 @@ public: void addGujingToPlot(double left_Low, double right_Hight, const QString strResult); //气测/FMT/射孔/文本 - void addJiegutextToPlot(double left_Low, double right_Hight, const QStringList strText, int &iMaxNum, QColor crColor=QColor(255, 255, 255, 80)); + void addJiegutextToPlot(double left_Low, double right_Hight, const QStringList strText, QColor crColor=QColor(255, 255, 255, 80)); //沉积相 void addMFacToPlot(double left_Low, double right_Hight, const QString strText, QColor crColor=QColor(255, 255, 255, 80)); @@ -355,6 +370,9 @@ public slots: void RefreshItems_Layer(); //刷新数据 void AddItem_Layer(QStringList lists); + //右键--气测-管柱-文本-FMT-射孔 + void RefreshItems_Jiegutext(QString strAliasName = "气测-FMT-射孔-文本"); //刷新数据 + // void addItems_Core(); @@ -382,6 +400,10 @@ public slots: //改变固井曲线名 void s_changeGujingLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName); + //改变曲线名 //气测/FMT/射孔/文本 + void s_changeJiegutextLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName); + void s_changeJiegutextTitle(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName); + //改变录井剖面属性 void s_changeGeoLithLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, double dOilZhan);