diff --git a/common/geometryutils.cpp b/common/geometryutils.cpp index 75df866..13e9f0e 100644 --- a/common/geometryutils.cpp +++ b/common/geometryutils.cpp @@ -1182,3 +1182,26 @@ int GetLineWidth(QPainter * painter,int flWidth) else if(abs(temp)<=1) temp=1; return (int)temp; } + +QString GBKToUTF8(const QByteArray& gbkData) { + QTextCodec* gbkCodec = QTextCodec::codecForName("GBK"); + if (!gbkCodec) { + return QString(); + } + + // 将GBK编码的字节转换为Unicode QString + QString unicodeStr = gbkCodec->toUnicode(gbkData); + return unicodeStr; +} + +// UTF-8 转 GBK +QByteArray UTF8ToGBK(const QString& utf8Str) { + QTextCodec* gbkCodec = QTextCodec::codecForName("GBK"); + if (!gbkCodec) { + return QByteArray(); + } + + // 将Unicode QString转换为GBK编码的字节 + return gbkCodec->fromUnicode(utf8Str); +} + diff --git a/common/geometryutils.h b/common/geometryutils.h index 458c5ec..e4aadbf 100644 --- a/common/geometryutils.h +++ b/common/geometryutils.h @@ -237,6 +237,9 @@ QString GetLithSymbolDir(QString cs=QDir::separator()); QString GetGujingSymbolDir(QString cs=QDir::separator()); int GetLineWidth(QPainter * painter,int flWidth); +QString GBKToUTF8(const QByteArray& gbkData); +QByteArray UTF8ToGBK(const QString& utf8Str); + struct WellHead { WellHead() diff --git a/logPlus/TransparentGroupResult.cpp b/logPlus/TransparentGroupResult.cpp index 6cf036f..6058efc 100644 --- a/logPlus/TransparentGroupResult.cpp +++ b/logPlus/TransparentGroupResult.cpp @@ -50,6 +50,79 @@ void TransparentGroupResult::addResultToPlot(double left_Low, double right_Hight m_mapDraggable_Result[strUuid] = dragRect; } +QString TransparentGroupResult::getIconName(const QMap& zoneOrder, const QString& result_str, int nidx, double dMDepth) +{ + QString result = ""; + QString iconshotname = ""; + if (result_str.length() == 1) + { + if (nidx > 0) + return result; + + if (result_str.length() > 0 && dMDepth) + iconshotname = zoneOrder.key(result_str.at(0)); + else + iconshotname = zoneOrder.key(result_str); + } + else + { + if (dMDepth != 0) { + if (result_str.length() > nidx) + iconshotname = zoneOrder.key(result_str.at(nidx)); + + } + } + if (iconshotname != "") { + result = ::GetOilSymbolDir() + iconshotname + ".svg"; + QDir fexit; + if (!fexit.exists(result)) + result = ::GetOilSymbolDir() + iconshotname + ".png"; + } + return result; +} + +void TransparentGroupResult::addAllResultToPlot(LAYER_DATA* pResult) +{ + QMap zoneOrder = GetZoneOrder();//初始化ZoneOrder 层序号根据层位名来,配置文件在conf\\RESULT.txt + +// + QDir fexit; + QString result_str = QString::number(pResult->Result); + + QVector vecDepth; + vecDepth << pResult->MDepth1 << pResult->MDepth1; + vecDepth << pResult->MDepth2 << pResult->MDepth3 << pResult->MDepth4 << pResult->MDepth5; + vecDepth << pResult->MDepth6 << pResult->MDepth7 << pResult->MDepth8 << pResult->MDepth9 << pResult->MDepth10; + + QString strUuid = ""; + for (int i = 0; i < vecDepth.size()-1; i++) + { + QString result = getIconName(zoneOrder, result_str, i, vecDepth.at(i)); + + if (result != "") + { + double dEnd = vecDepth.at(i + 1); + double dStart = vecDepth.at(i); + if (i == 0) + { + dStart= pResult->StartDepth; + } + if (dEnd != 0) + { + //第一个加Zone解释层号 + this->addResultToPlot(-dEnd, -dStart, result, strUuid); + } + else + { + this->addResultToPlot(-pResult->EndDepth, -dStart, result, strUuid); + } + } + + } + + +} + //设置最小宽度 void TransparentGroupResult::setMinWidth(double minWidth) { diff --git a/logPlus/TransparentGroupResult.h b/logPlus/TransparentGroupResult.h index 961d092..cf757e5 100644 --- a/logPlus/TransparentGroupResult.h +++ b/logPlus/TransparentGroupResult.h @@ -23,6 +23,10 @@ public: void addResultToPlot(double left_Low, double right_Hight, QString myResult, QString &strUuid); + QString getIconName(const QMap& zoneOrder, const QString& result_str, int nidx, double dMDepth); + + void addAllResultToPlot(LAYER_DATA* pResult); + //设置最小宽度 void setMinWidth(double minWidth); //设置标题 diff --git a/logPlus/formdraw.cpp b/logPlus/formdraw.cpp index 357096c..3a25fb7 100644 --- a/logPlus/formdraw.cpp +++ b/logPlus/formdraw.cpp @@ -3583,7 +3583,6 @@ void FormDraw::initResult(QMyCustomPlot *widget, QString strSlfName, QString str } - bool FormDraw::LoadFromSLF_Result(QMyCustomPlot *widget, QString strSlfName, QString strLineName) { static bool isrun=false; @@ -3618,316 +3617,10 @@ bool FormDraw::LoadFromSLF_Result(QMyCustomPlot *widget, QString strSlfName, QSt if(m_Result->StartDepth==m_Result->EndDepth) continue; - //以下字段为临时添加,后面需要和pai数据组集成 - //tmp code - QString resultNo;//解释层号 - QString result;//油气结论 - double thick;//有效厚度 - double tt;//累计厚度 - QString result1;//油气结论2 - QString result2;//油气结论3 - QString result3;//油气结论3 - QString result4;//油气结论3 - QString result5;//油气结论3 - QString result6;//油气结论2 - QString result7;//油气结论3 - QString result8;//油气结论3 - QString result9;//油气结论3 - QString result10;//油气结论3 - float m_MDepth1; - float m_MDepth2; - float m_MDepth3; - float m_MDepth4; - float m_MDepth5; - float m_MDepth6; - float m_MDepth7; - float m_MDepth8; - float m_MDepth9; - float m_MDepth10; - QString strZone = QString::number(atoi(m_Result->Zone)); - QString Description1; - QString Description2; - QString Description3; - QString Description4; - QString Description5; - QString Description6; - QString Description7; - QString Description8; - QString Description9; - QString Description10; - int m_GEOName; - QString m_DEST; - float m_SDEP,m_EDEP; - float m_SDEP1,m_EDEP1; - float m_SDEP2,m_EDEP2; - float m_SDEP3,m_EDEP3; - float m_SDEP4,m_EDEP4; - float m_SDEP5,m_EDEP5; - float m_SDEP6,m_EDEP6; - float m_SDEP7,m_EDEP7; - float m_SDEP8,m_EDEP8; - float m_SDEP9,m_EDEP9; - float m_SDEP10,m_EDEP10; - //0代表直接绘制 1代表平铺 2代表拉伸 默认值是2 - - QMap zoneOrder = GetZoneOrder();//初始化ZoneOrder 层序号根据层位名来,配置文件在conf\\RESULT.txt - - // - QDir fexit; - QString result_str=QString::number(m_Result->Result); - QString iconshotname; - if(result_str.length()>0&&m_Result->MDepth1) - iconshotname=zoneOrder.key(result_str.at(0)); - else - iconshotname=zoneOrder.key(result_str); - - if(iconshotname!=""){ - result=::GetOilSymbolDir()+iconshotname+".svg"; - if(!fexit.exists(result)) - { - result=::GetOilSymbolDir()+iconshotname+".png"; - } - } - if(m_Result->MDepth1!=0) { - if(result_str.length()>1) iconshotname=zoneOrder.key(QString::number(m_Result->Result).at(1)); - if(iconshotname!=""){ - result1=::GetOilSymbolDir()+iconshotname+".svg"; - if(!fexit.exists(result1)) - result1=::GetOilSymbolDir()+iconshotname+".png"; - } - } - - if(m_Result->MDepth2!=0) { - if(result_str.length()>2) iconshotname=zoneOrder.key(result_str.at(2)); - if(iconshotname!=""){ - result2=::GetOilSymbolDir()+iconshotname+".svg"; - if(!fexit.exists(result2)) - result2=::GetOilSymbolDir()+iconshotname+".png"; - } - } - if(m_Result->MDepth3!=0) { - if(result_str.length()>3) iconshotname=zoneOrder.key(result_str.at(3)); - if(iconshotname!=""){ - result3=::GetOilSymbolDir()+iconshotname+".svg"; - if(!fexit.exists(result3)) - result3=::GetOilSymbolDir()+iconshotname+".png"; - } - } - if(m_Result->MDepth4!=0) { - if(result_str.length()>4) iconshotname=zoneOrder.key(result_str.at(4)); - if(iconshotname!=""){ - result4=::GetOilSymbolDir()+iconshotname+".svg"; - if(!fexit.exists(result4)) - result4=::GetOilSymbolDir()+iconshotname+".png"; - } - } - if(m_Result->MDepth5!=0) { - if(result_str.length()>5) iconshotname=zoneOrder.key(result_str.at(5)); - if(iconshotname!=""){ - result5=::GetOilSymbolDir()+iconshotname+".svg"; - if(!fexit.exists(result5)) - result5=::GetOilSymbolDir()+iconshotname+".png"; - } - } - if(m_Result->MDepth6!=0) { - if(result_str.length()>6) iconshotname=zoneOrder.key(result_str.at(6)); - if(iconshotname!=""){ - result6=::GetOilSymbolDir()+iconshotname+".svg"; - if(!fexit.exists(result6)) - result6=::GetOilSymbolDir()+iconshotname+".png"; - } - } - if(m_Result->MDepth7!=0) { - if(result_str.length()>7) iconshotname=zoneOrder.key(result_str.at(7)); - if(iconshotname!=""){ - result7=::GetOilSymbolDir()+iconshotname+".svg"; - if(!fexit.exists(result7)) - result7=::GetOilSymbolDir()+iconshotname+".png"; - } - } - if(m_Result->MDepth8!=0) { - if(result_str.length()>8) iconshotname=zoneOrder.key(result_str.at(8)); - if(iconshotname!=""){ - result8=::GetOilSymbolDir()+iconshotname+".svg"; - if(!fexit.exists(result8)) - result8=::GetOilSymbolDir()+iconshotname+".png"; - } - } - if(m_Result->MDepth9!=0) { - if(result_str.length()>9) iconshotname=zoneOrder.key(result_str.at(9)); - if(iconshotname!=""){ - result9=::GetOilSymbolDir()+iconshotname+".svg"; - if(!fexit.exists(result9)) - result9=::GetOilSymbolDir()+iconshotname+".png"; - } - } - if(m_Result->MDepth10!=0) { - if(result_str.length()>10) iconshotname=zoneOrder.key(result_str.at(10)); - if(iconshotname!=""){ - result10=::GetOilSymbolDir()+iconshotname+".svg"; - if(!fexit.exists(result10)) - result10=::GetOilSymbolDir()+iconshotname+".png"; - } - } + QString strZone = QString::number(atoi(m_Result->Zone)); // 设置解释结论终止深度 TransparentGroupResult* pGroup = widget->addResultGroup(-m_Result->EndDepth, -m_Result->StartDepth, strGroupUuid, strZone); - QString strUuid = ""; - if (result != "") - { - if (m_Result->MDepth1 != 0) - { - //第一个加Zone解释层号 - pGroup->addResultToPlot(-m_Result->MDepth1, -m_Result->StartDepth, result, strUuid); - } - else - { - pGroup->addResultToPlot(-m_Result->EndDepth, -m_Result->StartDepth, result, strUuid); - } - } - if (result1 != "") - { - if (m_Result->MDepth2 != 0) - { - pGroup->addResultToPlot(-m_Result->MDepth2, -m_Result->MDepth1, result1, strUuid); - } - else { - pGroup->addResultToPlot(-m_Result->EndDepth, -m_Result->MDepth1, result1, strUuid); - } - } - - if (result2 != "") - { - if (m_Result->MDepth3 != 0) - { - pGroup->addResultToPlot(-m_Result->MDepth3, -m_Result->MDepth2, result2, strUuid); - } - else { - pGroup->addResultToPlot(-m_Result->EndDepth, -m_Result->MDepth2, result2, strUuid); - } - } - continue; - // - strUuid = ""; - if(result != "") - { - if(m_Result->MDepth1!=0) - { - //第一个加Zone解释层号 - widget->addResultToPlot(-m_Result->MDepth1, -m_Result->StartDepth, result, strUuid, strZone); - } - else - { - widget->addResultToPlot(-m_Result->EndDepth, -m_Result->StartDepth, result, strUuid, strZone); - } - } - //return true; - if(result1 != "") - { - if(m_Result->MDepth2!=0) - { - widget->addResultToPlot(-m_Result->MDepth2, -m_Result->MDepth1, result1, strUuid); - } - else { - widget->addResultToPlot(-m_Result->EndDepth, -m_Result->MDepth1, result1, strUuid); - } - } - - if(result2 != "") - { - if(m_Result->MDepth3!=0) - { - widget->addResultToPlot(-m_Result->MDepth3, -m_Result->MDepth2, result2, strUuid); - } - else { - widget->addResultToPlot(-m_Result->EndDepth, -m_Result->MDepth2, result2, strUuid); - } - } - - if(result3 != "") - { - if(m_Result->MDepth4!=0) - { - widget->addResultToPlot(-m_Result->MDepth4, -m_Result->MDepth3, result3, strUuid); - } - else { - widget->addResultToPlot(-m_Result->EndDepth, -m_Result->MDepth3, result3, strUuid); - } - } - - if(result4 != "") - { - if(m_Result->MDepth5!=0) - { - widget->addResultToPlot(-m_Result->MDepth5, -m_Result->MDepth4, result4, strUuid); - } - else { - widget->addResultToPlot(-m_Result->EndDepth, -m_Result->MDepth4, result4, strUuid); - } - } - - if(result5 != "") - { - if(m_Result->MDepth6!=0) - { - widget->addResultToPlot(-m_Result->MDepth6, -m_Result->MDepth5, result5, strUuid); - } - else{ - widget->addResultToPlot(-m_Result->EndDepth, -m_Result->MDepth5, result5, strUuid); - } - } - - if(result6 != "") - { - if(m_Result->MDepth6!=0) - { - widget->addResultToPlot(-m_Result->MDepth7, -m_Result->MDepth6, result6, strUuid); - } - else { - widget->addResultToPlot(-m_Result->EndDepth, -m_Result->MDepth6, result6, strUuid); - } - } - - if(result7 != "") - { - if(m_Result->MDepth8!=0) - { - widget->addResultToPlot(-m_Result->MDepth8, -m_Result->MDepth7, result7, strUuid); - } - else { - widget->addResultToPlot(-m_Result->EndDepth, -m_Result->MDepth7, result7, strUuid); - } - } - - if(result8 != "") - { - if(m_Result->MDepth9!=0) - { - widget->addResultToPlot(-m_Result->MDepth9, -m_Result->MDepth8, result8, strUuid); - } - else { - widget->addResultToPlot(-m_Result->EndDepth, -m_Result->MDepth8, result8, strUuid); - } - } - - if(result9 != "") - { - if(m_Result->MDepth10!=0) - { - widget->addResultToPlot(-m_Result->MDepth10, -m_Result->MDepth9, result9, strUuid); - } - else{ - widget->addResultToPlot(-m_Result->EndDepth, -m_Result->MDepth9, result9, strUuid); - } - } - - if(result10 != "") - { - if(m_Result->MDepth10!=0) - { - widget->addResultToPlot(-m_Result->EndDepth, -m_Result->MDepth10, result10, strUuid); - } - } - + pGroup->addAllResultToPlot(m_Result); } logio->CloseTable(iIndex); delete pstr;