This commit is contained in:
jiayulong 2026-06-11 14:53:40 +08:00
commit c6dfb3ea6e
9 changed files with 392 additions and 343 deletions

View File

@ -44,6 +44,8 @@ signals:
// 添加对象通知strName发送模块名字如DataMgr strSlfNameSlf文件名,对象名列表如AC、BS // 添加对象通知strName发送模块名字如DataMgr strSlfNameSlf文件名,对象名列表如AC、BS
void sig_Notice_AddObject(QString strName, QString strSlfName, QStringList listObject); void sig_Notice_AddObject(QString strName, QString strSlfName, QStringList listObject);
// 改变对象通知strName发送模块名字如DataMgr strSlfNameSlf文件名,对象名列表如AC、BS
void sig_Notice_Changed(QString strName, QString strSlfName, QStringList listObject);
public: public:
Q_DISABLE_COPY(CallGlobalManage); Q_DISABLE_COPY(CallGlobalManage);
}; };

View File

@ -4,6 +4,7 @@
#include <QDoubleValidator> #include <QDoubleValidator>
// #include "DataImport.h" // #include "DataImport.h"
// #include "ObjProject.h" // #include "ObjProject.h"
#include "CallGlobalManage.h"
CurveComputePage::CurveComputePage(QWidget *parent) CurveComputePage::CurveComputePage(QWidget *parent)
: QWidget(parent) : QWidget(parent)
{ {
@ -281,6 +282,9 @@ void CurveComputePage::slotComputeOk()
CurveNames.push_back(fun.csOutName.toUpper()); CurveNames.push_back(fun.csOutName.toUpper());
delete mrw; delete mrw;
emit signalCompute(CurveNames); emit signalCompute(CurveNames);
QStringList CurveNames1;
CurveNames1.push_back(fun.csOutName.toUpper());
emit CallGlobalManage::getInstance()->sig_Notice_Changed("DataMgr", m_FileName, CurveNames1);
// PaiObject::m_EventAgent.ObjectPropertyChanged(::GetProject(),"Compute",CurveNames); // PaiObject::m_EventAgent.ObjectPropertyChanged(::GetProject(),"Compute",CurveNames);
} }

View File

@ -9,6 +9,7 @@
#include "MemRdWt.h" #include "MemRdWt.h"
// #include "ObjProject.h" // #include "ObjProject.h"
#include "Well.h" #include "Well.h"
#include "CallGlobalManage.h"
#pragma warning(pop) #pragma warning(pop)
using namespace pai::ios::welllog; using namespace pai::ios::welllog;
BEGIN_OSGGRAPHICS_NAMESPACE BEGIN_OSGGRAPHICS_NAMESPACE
@ -245,7 +246,10 @@ void CCurveComputerDlg::slotSave()
} }
delete mrw; delete mrw;
// PaiObject::m_EventAgent.ObjectPropertyChanged(GetProject(),"Compute",CurveNames); // PaiObject::m_EventAgent.ObjectPropertyChanged(GetProject(),"Compute",CurveNames);
QMessageBox::warning(NULL,"提示","完成曲线计算"); QStringList CurveNames1;
CurveNames1.push_back(name);
emit CallGlobalManage::getInstance()->sig_Notice_Changed("DataMgr", FileName, CurveNames1);
QMessageBox::warning(this,"提示","完成曲线计算");
//accept(); //accept();
} }
/** /**

View File

@ -1462,239 +1462,241 @@ void CDataManagger::accept2()
} }
void CDataManagger::accept1() void CDataManagger::accept1()
{ {
// QDialog*pd=(QDialog*)sender(); QDialog*pd=(QDialog*)sender();
// int sdep=m_edit1->text().toFloat(); int sdep=m_edit1->text().toFloat();
// int edep=m_edit2->text().toFloat(); int edep=m_edit2->text().toFloat();
// if(sdep>edep) if(sdep>edep)
// { {
// QMessageBox::information(pd,"提示","起始深度不能大于终止深度!",QMessageBox::Yes); QMessageBox::information(pd,"提示","起始深度不能大于终止深度!",QMessageBox::Yes);
// return; return;
// } }
// QString newCurve; QString newCurve;
// CMemRdWt *mrw=new CMemRdWt(); CMemRdWt *mrw=new CMemRdWt();
// if(!mrw->Open(m_FileName.toStdString().c_str(),CSlfIO::modeReadWrite)) { if(!mrw->Open(m_FileName.toStdString().c_str(),CSlfIO::modeReadWrite)) {
// delete mrw; delete mrw;
// return; return;
// } }
// QString m_Function=m_edit3->text(); QString m_Function=m_edit3->text();
// m_Function.toUpper(); m_Function.toUpper();
// m_Function.replace("\"DEPTH\"","CURRENT_HD.DEP"); m_Function.replace("\"DEPTH\"","CURRENT_HD.DEP");
// bool OutCurveExist=1; bool OutCurveExist=1;
// float CurveValue,rlev; float CurveValue,rlev;
// Function fun; Function fun;
// int noi=fun.GetExpress(m_Function); int noi=fun.GetExpress(m_Function);
// if(noi<0) if(noi<0)
// { {
// delete mrw; delete mrw;
// return ;//输入公式中没有“=”号,或含有不能处理的字符 return ;//输入公式中没有“=”号,或含有不能处理的字符
// } }
// //检查公式合理性 //检查公式合理性
// for(int j=0;j<noi;j++) for(int j=0;j<noi;j++)
// { {
// fun.val[j]=j+1; fun.val[j]=j+1;
// } }
// fun.prog=fun.TempProg; fun.prog=fun.TempProg;
// int re=fun.get_exp(&CurveValue); int re=fun.get_exp(&CurveValue);
// if(re>0) if(re>0)
// { {
// static char *e[]={ static const char *e[]={
// "语法错误",//"syntax error.", "语法错误",//"syntax error.",
// "不对称的括号",//"unbalanced parentheses", "不对称的括号",//"unbalanced parentheses",
// "非法运算符"//"no expression present" "非法运算符"//"no expression present"
// }; };
// QMessageBox::warning(pd,"提示",QString(QLatin1String(e[re-1]))+m_Function); QMessageBox::warning(pd,"提示",QString(QLatin1String(e[re-1]))+m_Function);
// delete mrw; delete mrw;
// return ; return ;
// } }
// char name[20]; char name[20];
// strcpy(name,fun.csOutName.toStdString().c_str()); strcpy(name,fun.csOutName.toStdString().c_str());
// int in=mrw->FindObjectIndex(name); int in=mrw->FindObjectIndex(name);
// if(in>=0) if(in>=0)
// { {
// short objectType=mrw->GetObjectType(in); short objectType=mrw->GetObjectType(in);
// short Attribute,SubAttribute; short Attribute,SubAttribute;
// mrw->GetObjectAttribute(in,&Attribute,&SubAttribute); mrw->GetObjectAttribute(in,&Attribute,&SubAttribute);
// if(mrw->GetObjectStatus(in)!=0)//删除状态 if(mrw->GetObjectStatus(in)!=0)//删除状态
// { {
// QMessageBox::warning(m_pDialog,"提示",fun.csOutName+"曲线已存在,但该曲线处于删除状态,无法进行计算 !!!"); QMessageBox::warning(m_pDialog,"提示",fun.csOutName+"曲线已存在,但该曲线处于删除状态,无法进行计算 !!!");
// delete mrw; delete mrw;
// return ; return ;
// } }
// if(objectType >CARD_OBJECT||objectType==0||objectType==CURVE_OBJECT) if(objectType >CARD_OBJECT||objectType==0||objectType==CURVE_OBJECT)
// { {
// } }
// else else
// { {
// QMessageBox::warning(m_pDialog,"提示",fun.csOutName+"对象已存在,但其属性不是曲线 !!!"); QMessageBox::warning(m_pDialog,"提示",fun.csOutName+"对象已存在,但其属性不是曲线 !!!");
// delete mrw; delete mrw;
// return ; return ;
// } }
// } }
// else else
// { // 导入曲线不存在 { // 导入曲线不存在
// QString ss="目标曲线"+fun.csOutName+"不存在 \n 是否生成 \n"; QString ss="目标曲线"+fun.csOutName+"不存在 \n 是否生成 \n";
// int flag = QMessageBox::warning(m_pDialog,tr("提示"),ss,QMessageBox::Yes,QMessageBox::No); int flag = QMessageBox::warning(m_pDialog,tr("提示"),ss,QMessageBox::Yes,QMessageBox::No);
// if(flag != QMessageBox::Yes){ if(flag != QMessageBox::Yes){
// delete mrw; delete mrw;
// return ; return ;
// } }
// OutCurveExist=0; OutCurveExist=0;
// } }
// int index[20],indexout; int index[20],indexout;
// float MinRlev=9999; float MinRlev=9999;
// DWORD CurveSample[20]; DWORD CurveSample[20];
// float CurveRlev[20]; float CurveRlev[20];
// Slf_CURVE info; Slf_CURVE info;
// for(int i=0;i<noi;i++) for(int i=0;i<noi;i++)
// { {
// if(fun.csName[i]=="CURRENT_HD.DEP")continue; if(fun.csName[i]=="CURRENT_HD.DEP")continue;
// if(mrw->GetObjectType(fun.csName[i].toStdString().c_str())!=CURVE_OBJECT) if(mrw->GetObjectType(fun.csName[i].toStdString().c_str())!=CURVE_OBJECT)
// { {
// QMessageBox::warning(m_pDialog,"提示","输入曲线"+fun.csName[i]+"不是曲线类型,不能进行计算!!!\r\n请参考常规曲线计算规则,输入正确的计算公式"); QMessageBox::warning(m_pDialog,"提示","输入曲线"+fun.csName[i]+"不是曲线类型,不能进行计算!!!\r\n请参考常规曲线计算规则,输入正确的计算公式");
// delete mrw; delete mrw;
// return ; return ;
// } }
// index[i]=mrw->OpenCurve(fun.csName[i].toStdString().c_str()); index[i]=mrw->OpenCurve(fun.csName[i].toStdString().c_str());
// if(index[i]<0) if(index[i]<0)
// { {
// delete mrw; delete mrw;
// QMessageBox::warning(m_pDialog,"提示","打开曲线"+fun.csName[i]+"出错,不能进行计算!!!"); QMessageBox::warning(m_pDialog,"提示","打开曲线"+fun.csName[i]+"出错,不能进行计算!!!");
// return ; return ;
// } }
// mrw->GetCurveInfo(index[i],&info); mrw->GetCurveInfo(index[i],&info);
// if(MinRlev>info.DepLevel)MinRlev=info.DepLevel; if(MinRlev>info.DepLevel)MinRlev=info.DepLevel;
// CurveRlev[i]=info.DepLevel; CurveRlev[i]=info.DepLevel;
// } }
// if(MinRlev==9999)MinRlev=0.125;//表达式中没有实际曲线只有CURRENT_HD.DEP“深度”标识 if(MinRlev==9999)MinRlev=0.125;//表达式中没有实际曲线只有CURRENT_HD.DEP“深度”标识
// //生成导入曲线 //生成导入曲线
// if(OutCurveExist==0) if(OutCurveExist==0)
// { {
// indexout=-1; indexout=-1;
// for(int i=0;i<noi;i++) for(int i=0;i<noi;i++)
// { {
// if(fun.csName[i]=="CURRENT_HD.DEP")continue; if(fun.csName[i]=="CURRENT_HD.DEP")continue;
// mrw->GetCurveInfo(index[i],&info); mrw->GetCurveInfo(index[i],&info);
// sprintf(info.AliasName,"%s",fun.csOutName.toStdString().c_str()); sprintf(info.AliasName,"%s",fun.csOutName.toStdString().c_str());
// sprintf(info.Name,"%s",fun.csOutName.toStdString().c_str()); sprintf(info.Name,"%s",fun.csOutName.toStdString().c_str());
// info.StartDepth=m_edit1->text().toFloat(); info.StartDepth=m_edit1->text().toFloat();
// info.EndDepth=m_edit2->text().toFloat(); info.EndDepth=m_edit2->text().toFloat();
// indexout=mrw->OpenCurve(&info); indexout=mrw->OpenCurve(&info);
// break; break;
// } }
// if(indexout==-1)//表达式中没有实际曲线只有CURRENT_HD.DEP“深度”标识 if(indexout==-1)//表达式中没有实际曲线只有CURRENT_HD.DEP“深度”标识
// { {
// newCurve=fun.csOutName; newCurve=fun.csOutName;
// sprintf(info.AliasName,"%s",fun.csOutName.toStdString().c_str()); sprintf(info.AliasName,"%s",fun.csOutName.toStdString().c_str());
// sprintf(info.Name,"%s",fun.csOutName.toStdString().c_str()); sprintf(info.Name,"%s",fun.csOutName.toStdString().c_str());
// info.StartDepth=m_edit1->text().toFloat(); info.StartDepth=m_edit1->text().toFloat();
// info.EndDepth=m_edit2->text().toFloat(); info.EndDepth=m_edit2->text().toFloat();
// info.DepLevel=0.125; info.DepLevel=0.125;
// info.CodeLen=4; info.CodeLen=4;
// info.RepCode=4; info.RepCode=4;
// info.DefVal=-999.25; info.DefVal=-999.25;
// info.MaxValue=100; info.MaxValue=100;
// info.MinValue=0; info.MinValue=0;
// strcpy(info.DepthHZUnit,"米"); strcpy(info.DepthHZUnit,"");
// strcpy(info.DepthUnit,"m"); strcpy(info.DepthUnit,"m");
// strcpy(info.Unit,""); strcpy(info.Unit,"");
// strcpy(info.AliasUnit,""); strcpy(info.AliasUnit,"");
// indexout=mrw->OpenCurve(&info); indexout=mrw->OpenCurve(&info);
// } }
// } }
// else else
// { {
// indexout=mrw->OpenCurve(fun.csOutName.toStdString().c_str()); indexout=mrw->OpenCurve(fun.csOutName.toStdString().c_str());
// if(indexout>-1)mrw->GetCurveInfo(indexout,&info); if(indexout>-1)mrw->GetCurveInfo(indexout,&info);
// } }
// if(indexout<0) if(indexout<0)
// { {
// delete mrw; delete mrw;
// QMessageBox::warning(m_pDialog,"提示","导入曲线不存在,而且输入曲线中没有可参考的常规曲线,无法进行曲线计算\r\n请参考常规曲线计算规则输入正确的计算公式"); QMessageBox::warning(m_pDialog,"提示","导入曲线不存在,而且输入曲线中没有可参考的常规曲线,无法进行曲线计算\r\n请参考常规曲线计算规则,输入正确的计算公式");
// return ; return ;
// } }
// //检查导入曲线深度 //检查导入曲线深度
// rlev = info.DepLevel; rlev = info.DepLevel;
// sdep = info.StartDepth; sdep = info.StartDepth;
// edep = info.EndDepth ; edep = info.EndDepth ;
// if(MinRlev>rlev)MinRlev=rlev; if(MinRlev>rlev)MinRlev=rlev;
// if ( m_edit1->text().toFloat() < sdep-rlev || m_edit2->text().toFloat() > edep+rlev) if ( m_edit1->text().toFloat() < sdep-rlev || m_edit2->text().toFloat() > edep+rlev)
// { {
// int flag=QMessageBox::warning(m_pDialog,"提示","导入曲线的深度范围("+m_edit1->text()+"--"+m_edit2->text()+")超出输入曲线("+QString::number(sdep)+"--"+QString::number(edep)+"\n继续计算吗?",QMessageBox::Yes,QMessageBox::No); int flag=QMessageBox::warning(m_pDialog,"提示","导入曲线的深度范围("+m_edit1->text()+"--"+m_edit2->text()+")超出输入曲线("+QString::number(sdep)+"--"+QString::number(edep)+"\n继续计算吗?",QMessageBox::Yes,QMessageBox::No);
// if(flag != QMessageBox::Yes){ if(flag != QMessageBox::Yes){
// delete mrw; delete mrw;
// return ; return ;
// } }
// } }
// int sample=(int)((m_edit2->text().toFloat()-m_edit1->text().toFloat())/rlev+1.5);//0.5); int sample=(int)((m_edit2->text().toFloat()-m_edit1->text().toFloat())/rlev+1.5);//0.5);
// int sampleIn=(int)((m_edit2->text().toFloat()-m_edit1->text().toFloat())/MinRlev+1.5);//0.5); int sampleIn=(int)((m_edit2->text().toFloat()-m_edit1->text().toFloat())/MinRlev+1.5);//0.5);
// float **indata,*outdata; float **indata,*outdata;
// indata=new float*[noi]; indata=new float*[noi];
// outdata=new float[sample+10]; outdata=new float[sample+10];
// float *tDep,*aDep; float *tDep,*aDep;
// tDep=new float[sample]; tDep=new float[sample];
// for(int k=0; k<sample; k++) tDep[k]=sdep+k*rlev; for(int k=0; k<sample; k++) tDep[k]=sdep+k*rlev;
// for(int j=0;j<noi;j++) for(int j=0;j<noi;j++)
// { {
// if(fun.csName[j]=="CURRENT_HD.DEP")continue; if(fun.csName[j]=="CURRENT_HD.DEP")continue;
// indata[j]=new float[sampleIn]; indata[j]=new float[sampleIn];
// //whp change 2018.10.15 保证读写一致 //whp change 2018.10.15 保证读写一致
// CurveSample[j]=(m_edit2->text().toFloat()-m_edit1->text().toFloat())/CurveRlev[j]+1.5;//0.5; CurveSample[j]=(m_edit2->text().toFloat()-m_edit1->text().toFloat())/CurveRlev[j]+1.5;//0.5;
// mrw->ReadCurve(index[j],m_edit1->text().toFloat(),CurveSample[j],&indata[j][0]); mrw->ReadCurve(index[j],m_edit1->text().toFloat(),CurveSample[j],&indata[j][0]);
// if(fabs(CurveRlev[j]-rlev)/rlev>0.1) if(fabs(CurveRlev[j]-rlev)/rlev>0.1)
// { {
// aDep=new float[CurveSample[j]]; aDep=new float[CurveSample[j]];
// for(int k=0; k<CurveSample[j]; k++) aDep[k]=sdep+k*CurveRlev[j]; for(int k=0; k<CurveSample[j]; k++) aDep[k]=sdep+k*CurveRlev[j];
// Resample::ReSampling(&indata[j][0],CurveSample[j],1,aDep,tDep,sample); Resample::ReSampling(&indata[j][0],CurveSample[j],1,aDep,tDep,sample);
// delete []aDep; delete []aDep;
// } }
// } }
// for (int i=0; i<sample; i++) for (int i=0; i<sample; i++)
// { {
// //sdep = sdeps + rlev * i; //sdep = sdeps + rlev * i;
// for(int j=0;j<noi;j++) for(int j=0;j<noi;j++)
// { {
// if(fun.csName[j]=="CURRENT_HD.DEP")fun.val[j]=m_edit1->text().toFloat()+i*rlev; if(fun.csName[j]=="CURRENT_HD.DEP")fun.val[j]=m_edit1->text().toFloat()+i*rlev;
// else fun.val[j]=indata[j][i]; else fun.val[j]=indata[j][i];
// } }
// fun.prog=fun.TempProg; fun.prog=fun.TempProg;
// fun.get_exp(&CurveValue); fun.get_exp(&CurveValue);
// outdata[i]=CurveValue; outdata[i]=CurveValue;
// //2013.11.20 whp add for 为曲线计算添加数值类型选项常规不控制数值大小方位控制到0-360 //2013.11.20 whp add for 为曲线计算添加数值类型选项常规不控制数值大小方位控制到0-360
// } }
// mrw->WriteCurve(indexout,m_edit1->text().toFloat(),sample,&outdata[0]); mrw->WriteCurve(indexout,m_edit1->text().toFloat(),sample,&outdata[0]);
// delete []tDep; delete []tDep;
// for (int i=0; i<noi;i++) for (int i=0; i<noi;i++)
// { {
// if(fun.csName[i]=="CURRENT_HD.DEP")continue; if(fun.csName[i]=="CURRENT_HD.DEP")continue;
// mrw->CloseCurve(index[i]); mrw->CloseCurve(index[i]);
// } }
// mrw->CloseCurve(indexout); mrw->CloseCurve(indexout);
// for(int j=0;j<noi;j++) for(int j=0;j<noi;j++)
// { {
// if(fun.csName[j]=="CURRENT_HD.DEP")continue; if(fun.csName[j]=="CURRENT_HD.DEP")continue;
// delete indata[j]; delete indata[j];
// } }
// delete []indata; delete []indata;
// delete []outdata; delete []outdata;
// Slf_FILE_MESSAGE msag; Slf_FILE_MESSAGE msag;
// mrw->GetFileMessage(msag); mrw->GetFileMessage(msag);
// delete mrw; delete mrw;
// GetObjectEvent().OnDeAttchData(m_FileName,fun.csOutName); // GetObjectEvent().OnDeAttchData(m_FileName,fun.csOutName);
// GetObjectEvent().OnRefreshData(m_FileName,fun.csOutName,this); // GetObjectEvent().OnRefreshData(m_FileName,fun.csOutName,this);
// QStringList CurveNames; QStringList CurveNames;
// CurveNames.push_back(msag.WellName); CurveNames.push_back(msag.WellName);
// CurveNames.push_back(m_FileName); CurveNames.push_back(m_FileName);
// CurveNames.push_back(fun.csOutName); CurveNames.push_back(fun.csOutName);
// if(!newCurve.isEmpty())CurveNames.push_back(newCurve); if(!newCurve.isEmpty())CurveNames.push_back(newCurve);
// PaiObject::m_EventAgent.ObjectPropertyChanged(GetProject(),"Compute",CurveNames); // PaiObject::m_EventAgent.ObjectPropertyChanged(GetProject(),"Compute",CurveNames);
QStringList CurveNames1;
// QMessageBox::information(m_pDialog,"提示","计算完毕!",QMessageBox::Ok); CurveNames1.append(fun.csOutName);
emit CallGlobalManage::getInstance()->sig_Notice_Changed("DataMgr", m_FileName, CurveNames1);
QMessageBox::information(m_pDialog,"提示","计算完毕!",QMessageBox::Ok);
} }
//曲线计算 //曲线计算
// void CDataManagger::CurveCompute(QList<CObjWellLog*>objs,int no) // void CDataManagger::CurveCompute(QList<CObjWellLog*>objs,int no)
@ -1783,101 +1785,101 @@ void CDataManagger::accept1()
// } // }
// } // }
// void CDataManagger::CurveCompute(const QString& FileName,const QStringList& CurveNameList) void CDataManagger::CurveCompute(const QString& FileName,const QStringList& CurveNameList)
// { {
// m_CurveNameList=CurveNameList; m_CurveNameList=CurveNameList;
// if(CurveNameList.count()==1) if(CurveNameList.count()==1)
// { {
// QDialog dialog(NULL); QDialog dialog(NULL);
// dialog.setModal(false); dialog.setModal(false);
// m_pDialog=&dialog; m_pDialog=&dialog;
// Qt::WindowFlags flags = dialog.windowFlags(); Qt::WindowFlags flags = dialog.windowFlags();
// flags |= Qt::WindowStaysOnTopHint; flags |= Qt::WindowStaysOnTopHint;
// flags &= ~Qt::WindowContextHelpButtonHint; flags &= ~Qt::WindowContextHelpButtonHint;
// dialog.setWindowFlags(flags); dialog.setWindowFlags(flags);
// dialog.setWindowTitle(QString("曲线计算")); dialog.setWindowTitle(QString("曲线计算"));
// QFormLayout form(&dialog); QFormLayout form(&dialog);
// QString CurveName=CurveNameList[0]; QString CurveName=CurveNameList[0];
// m_CurveName=CurveNameList[0]; m_CurveName=CurveNameList[0];
// m_FileName=FileName; m_FileName=FileName;
// CMemRdWt *mrw=new CMemRdWt(); CMemRdWt *mrw=new CMemRdWt();
// if(!mrw->Open(FileName.toStdString().c_str(),CSlfIO::modeReadWrite)) { if(!mrw->Open(FileName.toStdString().c_str(),CSlfIO::modeReadWrite)) {
// delete mrw; delete mrw;
// return; return;
// } }
// int index=mrw->OpenCurve(CurveName.toStdString().c_str()); int index=mrw->OpenCurve(CurveName.toStdString().c_str());
// if(index<0) { if(index<0) {
// delete mrw; delete mrw;
// return; return;
// } }
// Slf_CURVE pInfo; Slf_CURVE pInfo;
// mrw->GetCurveInfo(index,&pInfo); mrw->GetCurveInfo(index,&pInfo);
// Slf_FILE_MESSAGE msag; Slf_FILE_MESSAGE msag;
// mrw->GetFileMessage(msag); mrw->GetFileMessage(msag);
// delete mrw; delete mrw;
// // 开始深度 // 开始深度
// QString value1 = QString("开始深度: "); QString value1 = QString("开始深度: ");
// QLineEdit *edit1 = new QLineEdit(&dialog); QLineEdit *edit1 = new QLineEdit(&dialog);
// m_edit1=edit1; m_edit1=edit1;
// form.addRow(value1, edit1); form.addRow(value1, edit1);
// edit1->setText(QString::number(pInfo.StartDepth)); edit1->setText(QString::number(pInfo.StartDepth));
// edit1->setValidator(new QDoubleValidator(-9999999,9999999,6,this)); edit1->setValidator(new QDoubleValidator(-9999999,9999999,6,this));
// // 终止深度 // 终止深度
// QString value2 = QString("终止深度: "); QString value2 = QString("终止深度: ");
// QLineEdit *edit2 = new QLineEdit(&dialog); QLineEdit *edit2 = new QLineEdit(&dialog);
// edit2->setValidator(new QDoubleValidator(-9999999,9999999,6,this)); edit2->setValidator(new QDoubleValidator(-9999999,9999999,6,this));
// m_edit2=edit2; m_edit2=edit2;
// form.addRow(value2, edit2); form.addRow(value2, edit2);
// edit2->setText(QString::number(pInfo.EndDepth)); edit2->setText(QString::number(pInfo.EndDepth));
// //计算公式 //计算公式
// QString value3 = QString("计算公式: "); QString value3 = QString("计算公式: ");
// QLineEdit *edit3 = new QLineEdit(&dialog); QLineEdit *edit3 = new QLineEdit(&dialog);
// form.addRow(value3, edit3); form.addRow(value3, edit3);
// QString ss=CurveName+"=1.0*"+CurveName+"+0.0"; QString ss=CurveName+"=1.0*"+CurveName+"+0.0";
// edit3->setText(ss); edit3->setText(ss);
// m_edit2=edit2; m_edit2=edit2;
// m_edit3=edit3; m_edit3=edit3;
// QString value4 = QString("\n常用数学运算符:\n 加:+,减:-,乘:*,除:/,取余:%,乘方:^,对数:!\n")+ QString value4 = QString("\n常用数学运算符:\n 加:+,减:-,乘:*,除:/,取余:%,乘方:^,对数:!\n")+
// QString(" 如PAR =SP/CAL+RT^2.5-10!AC\n 10!表示取以10为底的对数,1! 表示取自然对数"); QString("PAR =SP/CAL+RT^2.5-10!AC\n 10!表示取以10为底的对数,1! 表示取自然对数");
// QString value5 = QString("\n规则及约定:\n 1、输入对象必须是常规曲线名、深度标识或常量\n")+ QString value5 = QString("\n规则及约定:\n 1、输入对象必须是常规曲线名、深度标识或常量\n")+
// QString(" 如:GR=2*GR+5GR2=45TEMP=18+0.038*\"DEPTH\"\n")+ QString(" 如:GR=2*GR+5GR2=45TEMP=18+0.038*\"DEPTH\"\n")+
// QString(" 其中:\"DEPTH\"表示深度;\n")+ QString(" 其中:\"DEPTH\"表示深度;\n")+
// QString(" 2、当导入曲线不存在时:\n 如果有输入曲线存在,程序自动根据第一条输入曲线的属性产生导入曲线;\n")+ QString(" 2、当导入曲线不存在时:\n 如果有输入曲线存在,程序自动根据第一条输入曲线的属性产生导入曲线;\n")+
// QString(" 否则程序自动产生一条浮点类型的导入曲线采样间隔为0.125。"); QString(" 否则程序自动产生一条浮点类型的导入曲线采样间隔为0.125。");
// form.addRow(new QLabel(value4)); form.addRow(new QLabel(value4));
// form.addRow(new QLabel(value5)); form.addRow(new QLabel(value5));
// // Add Cancel and OK button // Add Cancel and OK button
// QDialogButtonBox buttonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, QDialogButtonBox buttonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel,
// Qt::Horizontal, &dialog); Qt::Horizontal, &dialog);
// form.addRow(&buttonBox); form.addRow(&buttonBox);
// QObject::connect(&buttonBox, SIGNAL(accepted()), this, SLOT(accept1())); QObject::connect(&buttonBox, SIGNAL(accepted()), this, SLOT(accept1()));
// QObject::connect(&buttonBox, SIGNAL(rejected()), &dialog, SLOT(reject())); QObject::connect(&buttonBox, SIGNAL(rejected()), &dialog, SLOT(reject()));
// // Process when OK button is clicked // Process when OK button is clicked
// dialog.show(); dialog.show();
// if (dialog.exec() == QDialog::Accepted) if (dialog.exec() == QDialog::Accepted)
// { {
// } }
// pai::graphics::CDataImport::ChangetoSlf(FileName,NULL); CDataImport::ChangetoSlf(FileName,NULL);
// } }
// else else
// { {
// CCurveComputerDlg *pDlg=new CCurveComputerDlg(); CCurveComputerDlg *pDlg=new CCurveComputerDlg();
// pDlg->FileName=FileName; pDlg->FileName=FileName;
// pDlg->CurveNameList=CurveNameList; pDlg->CurveNameList=CurveNameList;
// pDlg->init();//FileName, CurveNameList); pDlg->init();//FileName, CurveNameList);
// pDlg->setModal(false); pDlg->setModal(false);
// Qt::WindowFlags flags = pDlg->windowFlags(); Qt::WindowFlags flags = pDlg->windowFlags();
// flags |= Qt::WindowStaysOnTopHint; flags |= Qt::WindowStaysOnTopHint;
// pDlg->setWindowFlags(flags); pDlg->setWindowFlags(flags);
// pDlg->exec(); pDlg->exec();
// delete pDlg; delete pDlg;
// pDlg=NULL; pDlg=NULL;
// pai::graphics::CDataImport::ChangetoSlf(FileName,NULL); CDataImport::ChangetoSlf(FileName,NULL);
// QMessageBox::information(NULL,"提示","计算完毕!",QMessageBox::Ok); QMessageBox::information(NULL,"提示","计算完毕!",QMessageBox::Ok);
// } }
// } }
void CDataManagger::CallDisplayWaveOrCurve(int Type, const QString& FileName, void CDataManagger::CallDisplayWaveOrCurve(int Type, const QString& FileName,
const QString& CurveName, QWidget* parent) const QString& CurveName, QWidget* parent)

View File

@ -77,6 +77,7 @@ private slots:
void slotImport(); void slotImport();
void slotExpdView(); void slotExpdView();
void slotVerScrollValueChange(int nValue); void slotVerScrollValueChange(int nValue);
void s_Notice_Changed(QString strName, QString strSlfName, QStringList listObject);
private: private:
void swtichViewSize(); void swtichViewSize();

View File

@ -52,6 +52,7 @@ WellLogTableDialogNew::WellLogTableDialogNew(QWidget *parent, Qt::WindowFlags fl
connect(m_pUI->btnExport, SIGNAL(clicked()), this, SLOT(slotExport())); connect(m_pUI->btnExport, SIGNAL(clicked()), this, SLOT(slotExport()));
connect(m_pUI->btnImport, SIGNAL(clicked()), this, SLOT(slotImport())); connect(m_pUI->btnImport, SIGNAL(clicked()), this, SLOT(slotImport()));
connect(m_pUI->btnExpView, SIGNAL(clicked()), this, SLOT(slotExpdView())); connect(m_pUI->btnExpView, SIGNAL(clicked()), this, SLOT(slotExpdView()));
connect(CallGlobalManage::getInstance(), SIGNAL(sig_Notice_Changed(QString, QString, QStringList)), this, SLOT(s_Notice_Changed(QString, QString, QStringList)));
m_DataTyle=valid_NULL; m_DataTyle=valid_NULL;
m_pUI->btnExport->setIcon(QIcon( ::GetImagePath() + "icon/Export.png")); m_pUI->btnExport->setIcon(QIcon( ::GetImagePath() + "icon/Export.png"));
m_pUI->btnImport->setIcon(QIcon( ::GetImagePath() + "icon/Import.png")); m_pUI->btnImport->setIcon(QIcon( ::GetImagePath() + "icon/Import.png"));
@ -82,6 +83,10 @@ void WellLogTableDialogNew::slotExpdView()
} }
} }
void WellLogTableDialogNew::s_Notice_Changed(QString strName, QString strSlfName, QStringList listObject)
{
ReFreshWindow(0);
}
void WellLogTableDialogNew::swtichViewSize() void WellLogTableDialogNew::swtichViewSize()
{ {
@ -161,7 +166,7 @@ void WellLogTableDialogNew::swtichViewSize()
void WellLogTableDialogNew::ReFreshWindow(int type) void WellLogTableDialogNew::ReFreshWindow(int type)
{ {
// m_gridData->ReFreshWindow(m_gridData->m_dtype); m_gridData->ReFreshWindow(m_gridData->m_dtype);
} }
void WellLogTableDialogNew::slotExport() void WellLogTableDialogNew::slotExport()

View File

@ -682,6 +682,7 @@ void GridDataAdapter::ReFreshWindow(int type)
m_pWellLogs[i]->isLoad=false; m_pWellLogs[i]->isLoad=false;
m_pWellLogs[i]->LoadFromSLF(); m_pWellLogs[i]->LoadFromSLF();
} }
slotHorScrollBarPressed();// 防止滑动滚动条后不刷新
updatetWellLogData(); updatetWellLogData();
} }

View File

@ -42,6 +42,7 @@ QtProjectWidgets::QtProjectWidgets(QWidget *parent)
QtCommonClass *qtCommon = new QtCommonClass(this); QtCommonClass *qtCommon = new QtCommonClass(this);
qtCommon->setButtonIconWithText(ui->btnFind, ::GetImagePath()+"crossplot/search.png", "", font, _fontColor); qtCommon->setButtonIconWithText(ui->btnFind, ::GetImagePath()+"crossplot/search.png", "", font, _fontColor);
magr=new CDataManagger();
//initTreeWidget("", "wwer"); //initTreeWidget("", "wwer");
connect(ui->btnFind, &QPushButton::clicked, this, [ = ]() connect(ui->btnFind, &QPushButton::clicked, this, [ = ]()
@ -920,6 +921,11 @@ void QtProjectWidgets::initCurveObjectTreeMenu(QMenu *menu, QTreeWidget *treeWid
connect(action_InfoEdit, SIGNAL(triggered()), this, SLOT(onInfoEdit())); connect(action_InfoEdit, SIGNAL(triggered()), this, SLOT(onInfoEdit()));
menu->addAction(action_InfoEdit); menu->addAction(action_InfoEdit);
QAction* action_CurveCompute = new QAction("曲线计算", treeWidget);
action_CurveCompute->setIcon(QIcon(GetImagePath() + "icon/AddToTrack.png"));
connect(action_CurveCompute, SIGNAL(triggered()), this, SLOT(onCurveCompute()));
menu->addAction(action_CurveCompute);
QAction* action_Copy = new QAction("复制", treeWidget); QAction* action_Copy = new QAction("复制", treeWidget);
action_Copy->setIcon(QIcon(GetImagePath() + "icon/Copy.png")); // 设置图标":/image/u174.png" action_Copy->setIcon(QIcon(GetImagePath() + "icon/Copy.png")); // 设置图标":/image/u174.png"
connect(action_Copy, SIGNAL(triggered()), this, SLOT(onCopySelObject())); connect(action_Copy, SIGNAL(triggered()), this, SLOT(onCopySelObject()));
@ -1610,6 +1616,29 @@ void QtProjectWidgets::onWaveCompose(bool checked)
// pwelllog->SetWell(pObjWellLog->GetWelllogRound()->GetWell()); // pwelllog->SetWell(pObjWellLog->GetWelllogRound()->GetWell());
} }
void QtProjectWidgets::onCurveCompute(bool checked)
{
if (NULL==magr)
{
return;
}
QTreeWidgetItem *pItemFirst = *(ui->treeWidget->selectedItems().begin());
QString FileName=pItemFirst->data(0, Qt::UserRole+1).toString();
QStringList CurveNameList;
foreach(QTreeWidgetItem *pItem, ui->treeWidget->selectedItems())
{
QString strTreeTag = pItem->data(0, Qt::UserRole).toString();
if (strTreeTag == "curveObject" && FileName==pItem->data(0, Qt::UserRole+1).toString())
{
CurveNameList.append(pItem->text(0));
}
else
return;
}
magr->CurveCompute(FileName,CurveNameList);
}
void QtProjectWidgets::onInfoEdit(bool checked)//whp add 2019.12.27 曲线属性编辑 void QtProjectWidgets::onInfoEdit(bool checked)//whp add 2019.12.27 曲线属性编辑
{ {
if (ui->treeWidget->selectedItems().size()>1) if (ui->treeWidget->selectedItems().size()>1)
@ -2190,10 +2219,10 @@ void QtProjectWidgets::onPasteSelObject() // 粘贴
foreach(QTreeWidgetItem *pItem, ui->treeWidget->selectedItems()) foreach(QTreeWidgetItem *pItem, ui->treeWidget->selectedItems())
{ {
QTreeWidgetItem *parentItem = pItem/*->parent()*/; // 上一层目录是井次 QTreeWidgetItem *parentItem = pItem/*->parent()*/; // 上一层目录是井次
if (parentItem && m_strSlfName == parentItem->data(0, Qt::UserRole+1).toString()) if (parentItem && "wellItem" == parentItem->data(0, Qt::UserRole).toString() && m_strSlfName == parentItem->data(0, Qt::UserRole+1).toString())
RefreshWellRoundTree(parentItem); RefreshWellRoundTree(parentItem);
parentItem = parentItem = pItem->parent(); parentItem = parentItem = pItem->parent();
if (parentItem && m_strSlfName == parentItem->data(0, Qt::UserRole+1).toString()) if (parentItem && "wellItem" == parentItem->data(0, Qt::UserRole).toString() && m_strSlfName == parentItem->data(0, Qt::UserRole+1).toString())
RefreshWellRoundTree(parentItem); RefreshWellRoundTree(parentItem);
break; break;
} }
@ -2290,7 +2319,7 @@ void QtProjectWidgets::onPasteWell()
//刷新井次树 //刷新井次树
void QtProjectWidgets::RefreshWellRoundTree(QTreeWidgetItem *parentItem) void QtProjectWidgets::RefreshWellRoundTree(QTreeWidgetItem *parentItem)
{ {
if (parentItem && m_strSlfName == parentItem->data(0, Qt::UserRole+1).toString()) if (parentItem && "wellItem" == parentItem->data(0, Qt::UserRole).toString() && m_strSlfName == parentItem->data(0, Qt::UserRole+1).toString())
{ {
// qDeleteAll(parentItem->takeChildren()); // qDeleteAll(parentItem->takeChildren());
QTreeWidgetItem *pWellItem = parentItem->parent(); QTreeWidgetItem *pWellItem = parentItem->parent();

View File

@ -60,6 +60,7 @@ public slots:
void onDepthResample(bool checked = false); //深度重采样 void onDepthResample(bool checked = false); //深度重采样
void onCurve2Table(bool checked = false); //转换为结论表格 void onCurve2Table(bool checked = false); //转换为结论表格
void onWaveCompose(bool checked = false); //合成阵列曲线 void onWaveCompose(bool checked = false); //合成阵列曲线
void onCurveCompute(bool checked = false); //曲线计算
void onInfoEdit(bool checked = false); //属性 void onInfoEdit(bool checked = false); //属性
//TDT //TDT