|
|
|
|
@ -926,24 +926,29 @@ void nmWxAutomaticFitting::setupControlPanel()
|
|
|
|
|
QLabel* wellLabel = new QLabel(tr("Target Well:"));
|
|
|
|
|
m_targetWellCombo = new QComboBox();
|
|
|
|
|
|
|
|
|
|
// 添加垂直井
|
|
|
|
|
for(int i = 0; i < m_verticalWells.size(); ++i) {
|
|
|
|
|
m_targetWellCombo->addItem(m_verticalWells[i].getWellName());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 添加水平井
|
|
|
|
|
for(int i = 0; i < m_horizontalWells.size(); ++i) {
|
|
|
|
|
m_targetWellCombo->addItem(m_horizontalWells[i].getWellName());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 添加垂直压裂井
|
|
|
|
|
for(int i = 0; i < m_verticalFracturedWells.size(); ++i) {
|
|
|
|
|
m_targetWellCombo->addItem(m_verticalFracturedWells[i].getWellName());
|
|
|
|
|
}
|
|
|
|
|
// 目标井先加入当前分析主井,再加入已勾选且具备流量、压力数据的包含井。
|
|
|
|
|
nmDataAnalyzeManager* pManager = nmDataAnalyzeManager::getCurrentInstance();
|
|
|
|
|
if(pManager != nullptr) {
|
|
|
|
|
const QString sPrimaryWellCode = pManager->getPrimaryWellCode();
|
|
|
|
|
nmDataWellBase* pPrimaryWell = pManager->findWellByCode(sPrimaryWellCode);
|
|
|
|
|
if(pPrimaryWell != nullptr) {
|
|
|
|
|
m_targetWellCombo->addItem(pPrimaryWell->getWellName());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 添加水平压裂井
|
|
|
|
|
for(int i = 0; i < m_horizontalFracturedWells.size(); ++i) {
|
|
|
|
|
m_targetWellCombo->addItem(m_horizontalFracturedWells[i].getWellName());
|
|
|
|
|
if(pManager->getIncludeOtherWells()) {
|
|
|
|
|
const QVector<nmCalculationWellRef> vecIncludedWells =
|
|
|
|
|
pManager->getIncludedCalculationWells();
|
|
|
|
|
for(int nIndex = 0; nIndex < vecIncludedWells.size(); ++nIndex) {
|
|
|
|
|
const QString& sWellCode = vecIncludedWells[nIndex].m_sWellCode;
|
|
|
|
|
nmDataWellBase* pWellData = pManager->findWellByCode(sWellCode);
|
|
|
|
|
if(pWellData == nullptr || sWellCode == sPrimaryWellCode ||
|
|
|
|
|
pWellData->getFlowSegmentCount() <= 0 ||
|
|
|
|
|
pWellData->getPressurePoints().size() < 2) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
m_targetWellCombo->addItem(pWellData->getWellName());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
connect(m_targetWellCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(onWellSelected(int)));
|
|
|
|
|
|