岩心分析 岩心照片 全部清空 刷新
This commit is contained in:
parent
05ae5043e9
commit
e5c0c52a0c
|
|
@ -49,8 +49,8 @@ void TransparentDraggableCorePhysics::setRange(double left_Low, double right_Hig
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_lY1 = lY1;
|
m_lY1 = lY1;
|
||||||
// lY2除以实际左到右刻度数值
|
|
||||||
// lY2 = lY2 / (getCpRightScale() - getCpLeftScale()) * 100;
|
|
||||||
|
|
||||||
double minV = getCpLeftScale();
|
double minV = getCpLeftScale();
|
||||||
double maxV = getCpRightScale();
|
double maxV = getCpRightScale();
|
||||||
|
|
@ -59,7 +59,7 @@ void TransparentDraggableCorePhysics::setRange(double left_Low, double right_Hig
|
||||||
int scaleType = getCpScaleType(); // 0=线性 1=对数 2=倾角
|
int scaleType = getCpScaleType(); // 0=线性 1=对数 2=倾角
|
||||||
if (scaleType == 0)
|
if (scaleType == 0)
|
||||||
{
|
{
|
||||||
// 线性(原来的公式)
|
// 线性(原来的公式) // lY2除以实际左到右刻度数值
|
||||||
finalValue = (value - minV) / (maxV - minV) * 100.0;
|
finalValue = (value - minV) / (maxV - minV) * 100.0;
|
||||||
}
|
}
|
||||||
else if (scaleType == 1)
|
else if (scaleType == 1)
|
||||||
|
|
|
||||||
|
|
@ -5492,7 +5492,7 @@ void FormDraw::initIMAGE_DATA(QMyCustomPlot *widget, QString strSlfName, QString
|
||||||
widget->xAxis2->setTicks(false);
|
widget->xAxis2->setTicks(false);
|
||||||
widget->yAxis2->setTicks(false);
|
widget->yAxis2->setTicks(false);
|
||||||
//
|
//
|
||||||
LoadFromIMAGE_SLF(widget, strSlfName, strLineName);
|
widget->LoadFromIMAGE_SLF(strSlfName, strLineName);
|
||||||
//显示文本
|
//显示文本
|
||||||
QString strAliasName = "岩心图片";
|
QString strAliasName = "岩心图片";
|
||||||
if(stringList.size() >= 1)
|
if(stringList.size() >= 1)
|
||||||
|
|
@ -5509,61 +5509,61 @@ void FormDraw::initIMAGE_DATA(QMyCustomPlot *widget, QString strSlfName, QString
|
||||||
m_RightVal, m_LeftVal, strScaleType, "tableObject", stringList);//yanxinImageObject
|
m_RightVal, m_LeftVal, strScaleType, "tableObject", stringList);//yanxinImageObject
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FormDraw::LoadFromIMAGE_SLF(QMyCustomPlot *widget, QString strSlfName, QString strLineName)
|
//bool FormDraw::LoadFromIMAGE_SLF(QMyCustomPlot *widget, QString strSlfName, QString strLineName)
|
||||||
{
|
//{
|
||||||
{
|
// {
|
||||||
QString ss=strSlfName;
|
// QString ss=strSlfName;
|
||||||
CMemRdWt *logio=new CMemRdWt();
|
// CMemRdWt *logio=new CMemRdWt();
|
||||||
if(ss==""||!logio->Open(ss.toStdString().c_str(),CSlfIO::modeRead))
|
// if(ss==""||!logio->Open(ss.toStdString().c_str(),CSlfIO::modeRead))
|
||||||
{
|
// {
|
||||||
delete logio;
|
// delete logio;
|
||||||
// QMessageBox::information(NULL,"提示","SLF文件打开失败,请检查!!",QMessageBox::Yes);
|
// // QMessageBox::information(NULL,"提示","SLF文件打开失败,请检查!!",QMessageBox::Yes);
|
||||||
return false;
|
// return false;
|
||||||
}
|
// }
|
||||||
int iIndex=logio->OpenTable(strLineName.toStdString().c_str());
|
// int iIndex=logio->OpenTable(strLineName.toStdString().c_str());
|
||||||
if(iIndex>-1) {
|
// if(iIndex>-1) {
|
||||||
int len=logio->GetTableRecordLength(iIndex);
|
// int len=logio->GetTableRecordLength(iIndex);
|
||||||
if(len<sizeof(IMAGE_DATA)) len=sizeof(IMAGE_DATA);
|
// if(len<sizeof(IMAGE_DATA)) len=sizeof(IMAGE_DATA);
|
||||||
char*buf=new char[len+1];
|
// char*buf=new char[len+1];
|
||||||
IMAGE_DATA *m_Result=(IMAGE_DATA *)buf;
|
// IMAGE_DATA *m_Result=(IMAGE_DATA *)buf;
|
||||||
|
|
||||||
int count=logio->GetTableRecordCount(iIndex);
|
// int count=logio->GetTableRecordCount(iIndex);
|
||||||
for(int i=0;i<count;i++) {
|
// for(int i=0;i<count;i++) {
|
||||||
memset(m_Result,0,sizeof(IMAGE_DATA));
|
// memset(m_Result,0,sizeof(IMAGE_DATA));
|
||||||
logio->ReadTable(iIndex,i+1,m_Result);
|
// logio->ReadTable(iIndex,i+1,m_Result);
|
||||||
// WelllogItem* item=AddItem(m_Result->StartDepth,m_Result->EndDepth);
|
// // WelllogItem* item=AddItem(m_Result->StartDepth,m_Result->EndDepth);
|
||||||
// if(!item) continue;
|
// // if(!item) continue;
|
||||||
// OGWordsResultItem* pResult = dynamic_cast<OGWordsResultItem*>(item);
|
// // OGWordsResultItem* pResult = dynamic_cast<OGWordsResultItem*>(item);
|
||||||
//logio->GetTableFieldData(iIndex,(char*)FieldName.toStdString().c_str(),m_Result->Image,i+1);
|
// //logio->GetTableFieldData(iIndex,(char*)FieldName.toStdString().c_str(),m_Result->Image,i+1);
|
||||||
|
|
||||||
|
|
||||||
// SetCharacters(m_Result->Words);
|
// // SetCharacters(m_Result->Words);
|
||||||
|
|
||||||
// fontColor=QColor(0,0,0,255);
|
// // fontColor=QColor(0,0,0,255);
|
||||||
// backgroundColor=QColor(255,255,255,255);
|
// // backgroundColor=QColor(255,255,255,255);
|
||||||
// wordfont.setFamily("黑体");
|
// // wordfont.setFamily("黑体");
|
||||||
// wordfont.setPointSize(10);
|
// // wordfont.setPointSize(10);
|
||||||
|
|
||||||
//显示图片Image
|
// //显示图片Image
|
||||||
QString filename=QString::fromLocal8Bit(m_Result->Image);
|
// QString filename=QString::fromLocal8Bit(m_Result->Image);
|
||||||
int pos=filename.lastIndexOf("\\");
|
// int pos=filename.lastIndexOf("\\");
|
||||||
int pos1=filename.lastIndexOf("/");
|
// int pos1=filename.lastIndexOf("/");
|
||||||
if(pos1>pos) pos=pos1;
|
// if(pos1>pos) pos=pos1;
|
||||||
if(filename.lastIndexOf(".")>-1) {
|
// if(filename.lastIndexOf(".")>-1) {
|
||||||
int aa=filename.lastIndexOf(".");
|
// int aa=filename.lastIndexOf(".");
|
||||||
if(aa<pos) {
|
// if(aa<pos) {
|
||||||
filename="";
|
// filename="";
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
widget->addImageToPlot(-m_Result->EndDepth, -m_Result->StartDepth, filename, static_cast<double>(m_Result->Left), static_cast<double>(m_Result->Width));
|
// widget->addImageToPlot(-m_Result->EndDepth, -m_Result->StartDepth, filename, static_cast<double>(m_Result->Left), static_cast<double>(m_Result->Width));
|
||||||
}
|
// }
|
||||||
logio->CloseTable(iIndex);
|
// logio->CloseTable(iIndex);
|
||||||
delete buf;
|
// delete buf;
|
||||||
}
|
// }
|
||||||
delete logio;
|
// delete logio;
|
||||||
}
|
// }
|
||||||
return true;
|
// return true;
|
||||||
}
|
//}
|
||||||
|
|
||||||
//解释结论
|
//解释结论
|
||||||
void FormDraw::initResult(QMyCustomPlot *widget, QString strSlfName, QString strLineName)
|
void FormDraw::initResult(QMyCustomPlot *widget, QString strSlfName, QString strLineName)
|
||||||
|
|
@ -6961,107 +6961,90 @@ void FormDraw::initCorePhysics(QMyCustomPlot *widget, QString strSlfName, QStrin
|
||||||
widget->xAxis2->setTicks(false);
|
widget->xAxis2->setTicks(false);
|
||||||
widget->yAxis2->setTicks(false);
|
widget->yAxis2->setTicks(false);
|
||||||
|
|
||||||
// widget->yAxis2->setTickLabels(true);
|
|
||||||
// widget->yAxis2->setTickLabelSide(QCPAxis::lsInside);
|
|
||||||
// widget->yAxis2->setRange(0, 100);
|
|
||||||
// // 设置刻度
|
|
||||||
// // 创建文本刻度 Ticker
|
|
||||||
// QSharedPointer<QCPAxisTickerText> textTicker(new QCPAxisTickerText);
|
|
||||||
// double minVal = widget->yAxis2->range().lower;
|
|
||||||
// double maxVal = widget->yAxis2->range().upper;
|
|
||||||
// int value = 2;
|
|
||||||
// // 计算步长:(最大值 - 最小值) / 等分数
|
|
||||||
// double step = (maxVal - minVal) / value;
|
|
||||||
// // 生成刻度
|
|
||||||
// for (int i = 0; i <= value; ++i) {
|
|
||||||
// double value = minVal + step * i;
|
|
||||||
// // 取整显示(34.0 显示为 "34")
|
|
||||||
// QString label = QString::number(qRound(value));
|
|
||||||
// textTicker->addTick(value, label);
|
|
||||||
// }
|
|
||||||
// // 应用 Ticker
|
|
||||||
// widget->yAxis2->setTicker(textTicker);
|
|
||||||
|
|
||||||
|
|
||||||
// 加载slf文件 开始
|
|
||||||
QVector<double> x, y;
|
QVector<double> x, y;
|
||||||
|
|
||||||
Slf_CORE_PHYSICS *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;
|
|
||||||
}
|
|
||||||
int iIndex=logio->OpenTable(strLineName.toStdString().c_str());
|
|
||||||
if(iIndex>-1) {
|
|
||||||
int FieldNo=0;
|
|
||||||
int count=logio->GetTableRecordCount(iIndex);
|
|
||||||
|
|
||||||
QString FieldName = "AC";
|
// // 加载slf文件 开始
|
||||||
|
// QVector<double> x, y;
|
||||||
|
// Slf_CORE_PHYSICS *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;
|
||||||
|
// }
|
||||||
|
// int iIndex=logio->OpenTable(strLineName.toStdString().c_str());
|
||||||
|
// if(iIndex>-1) {
|
||||||
|
// int FieldNo=0;
|
||||||
|
// int count=logio->GetTableRecordCount(iIndex);
|
||||||
|
|
||||||
if(!FieldName.isEmpty()) {
|
// QString FieldName = "AC";
|
||||||
static int err=0;
|
|
||||||
FieldNo=logio->GetTableFieldNo(iIndex,(char *)FieldName.toStdString().c_str());
|
|
||||||
if(FieldNo<0) {
|
|
||||||
if(!err)QMessageBox::information(nullptr, "提示", "岩心试验数据模块初始加载数据不成功,因为隐含"+FieldName+"字段在实际数据表中不存在,稍后请您重新选择有效字段!");
|
|
||||||
err++;
|
|
||||||
delete logio;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else err=0;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
delete logio;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
int len=logio->GetTableRecordLength(iIndex);
|
|
||||||
m_pResult=(Slf_CORE_PHYSICS *)new char[len+1];
|
|
||||||
char buf[100];
|
|
||||||
for(int i=0;i<count;i++) {
|
|
||||||
logio->GetTableFieldData(iIndex,1,buf,i+1);
|
|
||||||
sscanf(buf,"%f",&m_pResult->Depth);
|
|
||||||
logio->GetTableFieldData(iIndex,2,buf,i+1);
|
|
||||||
sscanf(buf,"%f",&m_pResult->CorrDepth);
|
|
||||||
// logio->ReadTable(iIndex,i+1,m_pResult);
|
|
||||||
|
|
||||||
int Order = m_pResult->Order;
|
// if(!FieldName.isEmpty()) {
|
||||||
float depth = m_pResult->Depth;
|
// static int err=0;
|
||||||
float CorrDepth = m_pResult->CorrDepth;
|
// FieldNo=logio->GetTableFieldNo(iIndex,(char *)FieldName.toStdString().c_str());
|
||||||
float CoreValue = m_pResult->CoreValue;
|
// if(FieldNo<0) {
|
||||||
logio->GetTableFieldData(iIndex,FieldNo,buf,i+1);
|
// if(!err)QMessageBox::information(nullptr, "提示", "岩心试验数据模块初始加载数据不成功,因为隐含"+FieldName+"字段在实际数据表中不存在,稍后请您重新选择有效字段!");
|
||||||
|
// err++;
|
||||||
|
// delete logio;
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// else err=0;
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// delete logio;
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// int len=logio->GetTableRecordLength(iIndex);
|
||||||
|
// m_pResult=(Slf_CORE_PHYSICS *)new char[len+1];
|
||||||
|
// char buf[100];
|
||||||
|
// for(int i=0;i<count;i++) {
|
||||||
|
// logio->GetTableFieldData(iIndex,1,buf,i+1);
|
||||||
|
// sscanf(buf,"%f",&m_pResult->Depth);
|
||||||
|
// logio->GetTableFieldData(iIndex,2,buf,i+1);
|
||||||
|
// sscanf(buf,"%f",&m_pResult->CorrDepth);
|
||||||
|
// // logio->ReadTable(iIndex,i+1,m_pResult);
|
||||||
|
|
||||||
CoreValue=0;
|
// int Order = m_pResult->Order;
|
||||||
sscanf(buf,"%f",&CoreValue);
|
// float depth = m_pResult->Depth;
|
||||||
//
|
// float CorrDepth = m_pResult->CorrDepth;
|
||||||
|
// float CoreValue = m_pResult->CoreValue;
|
||||||
|
// logio->GetTableFieldData(iIndex,FieldNo,buf,i+1);
|
||||||
|
|
||||||
if(i==0)
|
// CoreValue=0;
|
||||||
{
|
// sscanf(buf,"%f",&CoreValue);
|
||||||
//最大值,最小值默认采用第一个有效值
|
// //
|
||||||
//vmax = vmin = CoreValue;
|
|
||||||
|
|
||||||
//默认采用0-100范围
|
// if(i==0)
|
||||||
if(vmax<CoreValue)vmax=CoreValue;
|
// {
|
||||||
if(vmin>CoreValue)vmin=CoreValue;
|
// //最大值,最小值默认采用第一个有效值
|
||||||
}
|
// //vmax = vmin = CoreValue;
|
||||||
else
|
|
||||||
{
|
// //默认采用0-100范围
|
||||||
//
|
// if(vmax<CoreValue)vmax=CoreValue;
|
||||||
if(vmax<CoreValue)vmax=CoreValue;
|
// if(vmin>CoreValue)vmin=CoreValue;
|
||||||
if(vmin>CoreValue)vmin=CoreValue;
|
// }
|
||||||
}
|
// else
|
||||||
//
|
// {
|
||||||
x.append(-CorrDepth);
|
// //
|
||||||
y.append(CoreValue);
|
// if(vmax<CoreValue)vmax=CoreValue;
|
||||||
// 已经加载了slf文件内容 显示界面上
|
// if(vmin>CoreValue)vmin=CoreValue;
|
||||||
widget->addCorePhysicsWithParam(Order, static_cast<double>(-depth), static_cast<double>(-CorrDepth), static_cast<double>(-CoreValue));
|
// }
|
||||||
}
|
// //
|
||||||
logio->CloseTable(iIndex);
|
// x.append(-CorrDepth);
|
||||||
delete m_pResult;
|
// y.append(CoreValue);
|
||||||
}
|
// // 已经加载了slf文件内容 显示界面上
|
||||||
delete logio;
|
// widget->addCorePhysicsWithParam(Order, static_cast<double>(-depth), static_cast<double>(-CorrDepth), static_cast<double>(-CoreValue));
|
||||||
// 加载slf文件结束
|
// }
|
||||||
|
// logio->CloseTable(iIndex);
|
||||||
|
// delete m_pResult;
|
||||||
|
// }
|
||||||
|
// delete logio;
|
||||||
|
// // 加载slf文件结束
|
||||||
|
|
||||||
|
// 加载slf文件
|
||||||
|
widget->loadFromSLFCorePhysics(strSlfName, strLineName);
|
||||||
|
|
||||||
QString strAliasName = "岩心实验数据";
|
QString strAliasName = "岩心实验数据";
|
||||||
QString strUnit = "";
|
QString strUnit = "";
|
||||||
|
|
@ -7077,15 +7060,6 @@ void FormDraw::initCorePhysics(QMyCustomPlot *widget, QString strSlfName, QStrin
|
||||||
addRandomGraph(widget, x, y, strSlfName, strLineName, strAliasName, strUnit,
|
addRandomGraph(widget, x, y, strSlfName, strLineName, strAliasName, strUnit,
|
||||||
newLeftScale, newRightScale, strScaleType, lineColor, width, lineStyle, stringList);
|
newLeftScale, newRightScale, strScaleType, lineColor, width, lineStyle, stringList);
|
||||||
|
|
||||||
// if(stringList.size() >= 1)
|
|
||||||
// {
|
|
||||||
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// addRandomGraph(widget, x, y, strSlfName, strLineName, strAliasName, strUnit);
|
|
||||||
// }
|
|
||||||
|
|
||||||
//支持框选------------------
|
//支持框选------------------
|
||||||
// widget->setSelectionRectMode(QCP::SelectionRectMode::srmSelect);
|
// widget->setSelectionRectMode(QCP::SelectionRectMode::srmSelect);
|
||||||
widget->graph(0)->setSelectable(QCP::SelectionType::stMultipleDataRanges);// stSingleData
|
widget->graph(0)->setSelectable(QCP::SelectionType::stMultipleDataRanges);// stSingleData
|
||||||
|
|
|
||||||
|
|
@ -229,7 +229,7 @@ public:
|
||||||
|
|
||||||
//岩心图片数据
|
//岩心图片数据
|
||||||
void initIMAGE_DATA(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QStringList listOtherProperty={});
|
void initIMAGE_DATA(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QStringList listOtherProperty={});
|
||||||
bool LoadFromIMAGE_SLF(QMyCustomPlot *widget, QString strSlfName, QString strLineName);
|
// bool LoadFromIMAGE_SLF(QMyCustomPlot *widget, QString strSlfName, QString strLineName);
|
||||||
|
|
||||||
//深度
|
//深度
|
||||||
void initDepth(QMyCustomPlot *widget);
|
void initDepth(QMyCustomPlot *widget);
|
||||||
|
|
|
||||||
|
|
@ -1917,8 +1917,47 @@ void QMyCustomPlot::addItemsImage(){
|
||||||
//属性清空
|
//属性清空
|
||||||
PropertyService()->InitCurrentViewInfo();
|
PropertyService()->InitCurrentViewInfo();
|
||||||
}
|
}
|
||||||
void QMyCustomPlot::deleteItemsImage(){}
|
void QMyCustomPlot::deleteItemsImage()
|
||||||
void QMyCustomPlot::refreshItemsImage(){}
|
{
|
||||||
|
if(QMessageBox::information(NULL,QObject::tr("提示"),QObject::tr("该功能将清除当前组件展示的全部信息,清除后无法恢复,但会备份到对应的\"_BAK\"中,确定清除吗?"),QMessageBox::Yes|QMessageBox::No)!=QMessageBox::Yes) return;
|
||||||
|
QString obj = m_strLineName + "BAK";
|
||||||
|
CopyToSLFFile(m_strSlfName, false, (char *)obj.toStdString().c_str());
|
||||||
|
AddTableToWellRound();
|
||||||
|
|
||||||
|
//删除对象
|
||||||
|
TransparentDraggableImage *pDraggableRect =NULL;
|
||||||
|
QMap<QString,QObject *>::Iterator it = m_mapDraggable_Image.begin();
|
||||||
|
while( it != m_mapDraggable_Image.end() )
|
||||||
|
{
|
||||||
|
pDraggableRect = (TransparentDraggableImage*)it.value();
|
||||||
|
it++;
|
||||||
|
pDraggableRect->deleteRect();
|
||||||
|
}
|
||||||
|
this->replot();
|
||||||
|
|
||||||
|
//保存
|
||||||
|
SaveToSLFImage();
|
||||||
|
//属性清空
|
||||||
|
PropertyService()->InitCurrentViewInfo();
|
||||||
|
}
|
||||||
|
void QMyCustomPlot::refreshItemsImage()
|
||||||
|
{
|
||||||
|
//删除对象
|
||||||
|
TransparentDraggableImage *pDraggableRect =NULL;
|
||||||
|
QMap<QString,QObject *>::Iterator it = m_mapDraggable_Image.begin();
|
||||||
|
while( it != m_mapDraggable_Image.end() )
|
||||||
|
{
|
||||||
|
pDraggableRect = (TransparentDraggableImage*)it.value();
|
||||||
|
it++;
|
||||||
|
pDraggableRect->deleteRect();
|
||||||
|
}
|
||||||
|
|
||||||
|
//重新加载
|
||||||
|
this->LoadFromIMAGE_SLF(m_strSlfName, m_strLineName);
|
||||||
|
this->replot();
|
||||||
|
//属性清空
|
||||||
|
PropertyService()->InitCurrentViewInfo();
|
||||||
|
}
|
||||||
|
|
||||||
// 增加
|
// 增加
|
||||||
void QMyCustomPlot::addCorePhysics()
|
void QMyCustomPlot::addCorePhysics()
|
||||||
|
|
@ -1952,10 +1991,46 @@ void QMyCustomPlot::pasteCorePhysics()
|
||||||
{}
|
{}
|
||||||
//全部清空
|
//全部清空
|
||||||
void QMyCustomPlot::deleteCorePhysics()
|
void QMyCustomPlot::deleteCorePhysics()
|
||||||
{}
|
{
|
||||||
|
if(QMessageBox::information(NULL,QObject::tr("提示"),QObject::tr("该功能将清除当前组件展示的全部信息,清除后无法恢复,但会备份到对应的\"_BAK\"中,确定清除吗?"),QMessageBox::Yes|QMessageBox::No)!=QMessageBox::Yes) return;
|
||||||
|
QString obj = m_strLineName + "BAK";
|
||||||
|
CopyToSLFFile(m_strSlfName, false, (char *)obj.toStdString().c_str());
|
||||||
|
AddTableToWellRound();
|
||||||
|
|
||||||
|
//删除对象
|
||||||
|
TransparentDraggableCorePhysics *pDraggableRect =NULL;
|
||||||
|
QMap<QString,QObject *>::Iterator it = m_mapDraggable_CorePhysics.begin();
|
||||||
|
while( it != m_mapDraggable_CorePhysics.end() )
|
||||||
|
{
|
||||||
|
pDraggableRect = (TransparentDraggableCorePhysics*)it.value();
|
||||||
|
it++;
|
||||||
|
pDraggableRect->deleteRect();
|
||||||
|
}
|
||||||
|
this->replot();
|
||||||
|
|
||||||
|
//保存
|
||||||
|
saveToSLFCorePhysics();
|
||||||
|
//属性清空
|
||||||
|
PropertyService()->InitCurrentViewInfo();
|
||||||
|
}
|
||||||
//刷新数据
|
//刷新数据
|
||||||
void QMyCustomPlot::refreshCorePhysics()
|
void QMyCustomPlot::refreshCorePhysics()
|
||||||
{}
|
{
|
||||||
|
//删除对象
|
||||||
|
TransparentDraggableCorePhysics *pDraggableRect =NULL;
|
||||||
|
QMap<QString,QObject *>::Iterator it = m_mapDraggable_CorePhysics.begin();
|
||||||
|
while( it != m_mapDraggable_CorePhysics.end() )
|
||||||
|
{
|
||||||
|
pDraggableRect = (TransparentDraggableCorePhysics*)it.value();
|
||||||
|
it++;
|
||||||
|
pDraggableRect->deleteRect();
|
||||||
|
}
|
||||||
|
//重新加载
|
||||||
|
this->loadFromSLFCorePhysics(m_strSlfName, m_strLineName);
|
||||||
|
this->replot();
|
||||||
|
//属性清空
|
||||||
|
PropertyService()->InitCurrentViewInfo();
|
||||||
|
}
|
||||||
|
|
||||||
//右键--添加录井剖面
|
//右键--添加录井剖面
|
||||||
void QMyCustomPlot::onEditGeoLith()
|
void QMyCustomPlot::onEditGeoLith()
|
||||||
|
|
@ -3600,6 +3675,148 @@ void QMyCustomPlot::RefreshItems_GeoLith()
|
||||||
PropertyService()->InitCurrentViewInfo();
|
PropertyService()->InitCurrentViewInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QMyCustomPlot::LoadFromIMAGE_SLF(QString strSlfName, QString strLineName)
|
||||||
|
{
|
||||||
|
{
|
||||||
|
QString ss=strSlfName;
|
||||||
|
CMemRdWt *logio=new CMemRdWt();
|
||||||
|
if(ss==""||!logio->Open(ss.toStdString().c_str(),CSlfIO::modeRead))
|
||||||
|
{
|
||||||
|
delete logio;
|
||||||
|
// QMessageBox::information(NULL,"提示","SLF文件打开失败,请检查!!",QMessageBox::Yes);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
int iIndex=logio->OpenTable(strLineName.toStdString().c_str());
|
||||||
|
if(iIndex>-1) {
|
||||||
|
int len=logio->GetTableRecordLength(iIndex);
|
||||||
|
if(len<sizeof(IMAGE_DATA)) len=sizeof(IMAGE_DATA);
|
||||||
|
char*buf=new char[len+1];
|
||||||
|
IMAGE_DATA *m_Result=(IMAGE_DATA *)buf;
|
||||||
|
|
||||||
|
int count=logio->GetTableRecordCount(iIndex);
|
||||||
|
for(int i=0;i<count;i++) {
|
||||||
|
memset(m_Result,0,sizeof(IMAGE_DATA));
|
||||||
|
logio->ReadTable(iIndex,i+1,m_Result);
|
||||||
|
// WelllogItem* item=AddItem(m_Result->StartDepth,m_Result->EndDepth);
|
||||||
|
// if(!item) continue;
|
||||||
|
// OGWordsResultItem* pResult = dynamic_cast<OGWordsResultItem*>(item);
|
||||||
|
//logio->GetTableFieldData(iIndex,(char*)FieldName.toStdString().c_str(),m_Result->Image,i+1);
|
||||||
|
|
||||||
|
|
||||||
|
// SetCharacters(m_Result->Words);
|
||||||
|
|
||||||
|
// fontColor=QColor(0,0,0,255);
|
||||||
|
// backgroundColor=QColor(255,255,255,255);
|
||||||
|
// wordfont.setFamily("黑体");
|
||||||
|
// wordfont.setPointSize(10);
|
||||||
|
|
||||||
|
//显示图片Image
|
||||||
|
QString filename=QString::fromLocal8Bit(m_Result->Image);
|
||||||
|
int pos=filename.lastIndexOf("\\");
|
||||||
|
int pos1=filename.lastIndexOf("/");
|
||||||
|
if(pos1>pos) pos=pos1;
|
||||||
|
if(filename.lastIndexOf(".")>-1) {
|
||||||
|
int aa=filename.lastIndexOf(".");
|
||||||
|
if(aa<pos) {
|
||||||
|
filename="";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this->addImageToPlot(-m_Result->EndDepth, -m_Result->StartDepth, filename, static_cast<double>(m_Result->Left), static_cast<double>(m_Result->Width));
|
||||||
|
}
|
||||||
|
logio->CloseTable(iIndex);
|
||||||
|
delete buf;
|
||||||
|
}
|
||||||
|
delete logio;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool QMyCustomPlot::loadFromSLFCorePhysics(QString strSlfName, QString strLineName)
|
||||||
|
{
|
||||||
|
float vmax = 100;
|
||||||
|
float vmin = 0;
|
||||||
|
// 加载slf文件 开始
|
||||||
|
QVector<double> x, y;
|
||||||
|
Slf_CORE_PHYSICS *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(strLineName.toStdString().c_str());
|
||||||
|
if(iIndex>-1) {
|
||||||
|
int FieldNo=0;
|
||||||
|
int count=logio->GetTableRecordCount(iIndex);
|
||||||
|
|
||||||
|
QString FieldName = "AC";
|
||||||
|
|
||||||
|
if(!FieldName.isEmpty()) {
|
||||||
|
static int err=0;
|
||||||
|
FieldNo=logio->GetTableFieldNo(iIndex,(char *)FieldName.toStdString().c_str());
|
||||||
|
if(FieldNo<0) {
|
||||||
|
if(!err)QMessageBox::information(nullptr, "提示", "岩心试验数据模块初始加载数据不成功,因为隐含"+FieldName+"字段在实际数据表中不存在,稍后请您重新选择有效字段!");
|
||||||
|
err++;
|
||||||
|
delete logio;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else err=0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
delete logio;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
int len=logio->GetTableRecordLength(iIndex);
|
||||||
|
m_pResult=(Slf_CORE_PHYSICS *)new char[len+1];
|
||||||
|
char buf[100];
|
||||||
|
for(int i=0;i<count;i++) {
|
||||||
|
logio->GetTableFieldData(iIndex,1,buf,i+1);
|
||||||
|
sscanf(buf,"%f",&m_pResult->Depth);
|
||||||
|
logio->GetTableFieldData(iIndex,2,buf,i+1);
|
||||||
|
sscanf(buf,"%f",&m_pResult->CorrDepth);
|
||||||
|
// logio->ReadTable(iIndex,i+1,m_pResult);
|
||||||
|
|
||||||
|
int Order = m_pResult->Order;
|
||||||
|
float depth = m_pResult->Depth;
|
||||||
|
float CorrDepth = m_pResult->CorrDepth;
|
||||||
|
float CoreValue = m_pResult->CoreValue;
|
||||||
|
logio->GetTableFieldData(iIndex,FieldNo,buf,i+1);
|
||||||
|
|
||||||
|
CoreValue=0;
|
||||||
|
sscanf(buf,"%f",&CoreValue);
|
||||||
|
//
|
||||||
|
|
||||||
|
if(i==0)
|
||||||
|
{
|
||||||
|
//最大值,最小值默认采用第一个有效值
|
||||||
|
//vmax = vmin = CoreValue;
|
||||||
|
|
||||||
|
//默认采用0-100范围
|
||||||
|
if(vmax<CoreValue)vmax=CoreValue;
|
||||||
|
if(vmin>CoreValue)vmin=CoreValue;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//
|
||||||
|
if(vmax<CoreValue)vmax=CoreValue;
|
||||||
|
if(vmin>CoreValue)vmin=CoreValue;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
x.append(-CorrDepth);
|
||||||
|
y.append(CoreValue);
|
||||||
|
// 已经加载了slf文件内容 显示界面上
|
||||||
|
this->addCorePhysicsWithParam(Order, static_cast<double>(-depth), static_cast<double>(-CorrDepth), static_cast<double>(-CoreValue));
|
||||||
|
}
|
||||||
|
logio->CloseTable(iIndex);
|
||||||
|
delete m_pResult;
|
||||||
|
}
|
||||||
|
delete logio;
|
||||||
|
// 加载slf文件结束
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool QMyCustomPlot::LoadFromSLF_SwallCore(QString strSlfName, QString strLineName)
|
bool QMyCustomPlot::LoadFromSLF_SwallCore(QString strSlfName, QString strLineName)
|
||||||
{
|
{
|
||||||
WALLCORE_DATA m_Result;
|
WALLCORE_DATA m_Result;
|
||||||
|
|
|
||||||
|
|
@ -227,10 +227,12 @@ public:
|
||||||
// 岩心图片
|
// 岩心图片
|
||||||
QMap<QString,QString> zoneOrderImage;
|
QMap<QString,QString> zoneOrderImage;
|
||||||
bool SaveToSLFImage();
|
bool SaveToSLFImage();
|
||||||
|
bool LoadFromIMAGE_SLF(QString strSlfName, QString strLineName);
|
||||||
|
|
||||||
// 岩心分析
|
// 岩心分析
|
||||||
QMap<QString,QString> zoneOrderCorePhysics;
|
QMap<QString,QString> zoneOrderCorePhysics;
|
||||||
bool saveToSLFCorePhysics();
|
bool saveToSLFCorePhysics();
|
||||||
|
bool loadFromSLFCorePhysics(QString strSlfName, QString strLineName);
|
||||||
|
|
||||||
//井壁取心
|
//井壁取心
|
||||||
QStringList liths_SWallCore;
|
QStringList liths_SWallCore;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user