Files
geomative/GeomativeStudio/cpp/logging/CDialogLoggingCreateTaskWnd.cpp
T
coco df489d5640 a
2026-07-03 16:05:30 +08:00

254 lines
8.3 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// D:\zm\GeomativeV2.5\cpp\logging\CDialogLoggingCreateTaskWnd.cpp : 实现文件
//
#include "stdafx.h"
#include "GeoMative.h"
#include "logging\CDialogLoggingCreateTaskWnd.h"
#include "logging\CLoggingDataOper.h"
#include "afxdialogex.h"
#define LOGGING_MESSAGEBOX_TITLE _T("CDialogLoggingCreateTaskWnd")
extern int g_iUILanguage;
// CDialogLoggingCreateTaskWnd 对话框
IMPLEMENT_DYNAMIC(CDialogLoggingCreateTaskWnd, CDialog)
CDialogLoggingCreateTaskWnd::CDialogLoggingCreateTaskWnd(CWnd* pParent /*=NULL*/)
: CDialog(CDialogLoggingCreateTaskWnd::IDD, pParent)
{
}
CDialogLoggingCreateTaskWnd::~CDialogLoggingCreateTaskWnd()
{
}
void CDialogLoggingCreateTaskWnd::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_COMBO_WAVEFORM, m_comWaveform);
DDX_Control(pDX, IDC_COMBO_LOGGING_DIRECTION, m_comLoggingDirection);
}
BEGIN_MESSAGE_MAP(CDialogLoggingCreateTaskWnd, CDialog)
ON_BN_CLICKED(IDOK, &CDialogLoggingCreateTaskWnd::OnBnClickedOk)
ON_BN_CLICKED(IDCANCEL, &CDialogLoggingCreateTaskWnd::OnBnClickedCancel)
END_MESSAGE_MAP()
// CDialogLoggingCreateTaskWnd 消息处理程序
BOOL CDialogLoggingCreateTaskWnd::OnInitDialog()
{
CDialog::OnInitDialog();
GetDlgItem(IDC_EDIT_TRACE)->SetWindowTextA(_T("0"));
m_comWaveform.AddString(_T("0+0-"));
m_comWaveform.SetCurSel(0);
if (LANG_ZHCN == g_iUILanguage)
{
SetWindowTextA(_T("新建任务"));
GetDlgItem(IDC_STATIC_TASK_NAME)->SetWindowTextA(_T("任务名*"));
GetDlgItem(IDC_STATIC_TEST_LOCATION)->SetWindowTextA(_T("测试地点:"));
GetDlgItem(IDC_STATIC)->SetWindowTextA(_T("测井类型*"));
GetDlgItem(IDC_CHECK_LONG_POTENTIAL_LOG)->SetWindowTextA(_T("长电位测井"));
GetDlgItem(IDC_CHECK_SHORT_POTENTIAL_LOG)->SetWindowTextA(_T("短电位测井"));
GetDlgItem(IDC_CHECK_GRADIENT_LOG)->SetWindowTextA(_T("梯度测井"));
GetDlgItem(IDC_CHECK_SP_LOG)->SetWindowTextA(_T("SP测井"));
GetDlgItem(IDC_STATIC_TRACE)->SetWindowTextA(_T("迭代次数:"));
GetDlgItem(IDC_STATIC_WAVEFORM)->SetWindowTextA(_T("发射波形:"));
GetDlgItem(IDC_STATIC_SAMPLING_INTERVAL)->SetWindowTextA(_T("采样间隔:"));
GetDlgItem(IDC_STATIC_INITIAL_DEPTH)->SetWindowTextA(_T("初始深度*"));
GetDlgItem(IDC_STATIC_END_DEPTH)->SetWindowTextA(_T("结束深度*"));
GetDlgItem(IDC_STATIC_LOGGING_DIRECTION)->SetWindowTextA(_T("测井方向*"));
GetDlgItem(IDC_STATIC_LOGGING_INTERVAL)->SetWindowTextA(_T("测井间隔*"));
GetDlgItem(IDC_STATIC_INSTRUMENT_ZERO_LENGTH)->SetWindowTextA(_T("仪器零长*"));
GetDlgItem(IDC_STATIC_PERIOD)->SetWindowTextA(_T("周期*"));
GetDlgItem(IDOK)->SetWindowTextA(_T("确定"));
GetDlgItem(IDCANCEL)->SetWindowTextA(_T("取消"));
m_comLoggingDirection.AddString(_T("向上"));
m_comLoggingDirection.AddString(_T("向下"));
}
else
{
m_comLoggingDirection.AddString(_T("up"));
m_comLoggingDirection.AddString(_T("down"));
}
m_comLoggingDirection.SetCurSel(0);
// TODO: 在此添加额外的初始化
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
void CDialogLoggingCreateTaskWnd::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CString strTaskName;
GetDlgItem(IDC_EDIT_TASK_NAME)->GetWindowTextA(strTaskName);
if (strTaskName.IsEmpty())
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("任务名不能为空"));
else
MessageBoxEx(NULL, _T("Task name cannot be empty"), LOGGING_MESSAGEBOX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return;
}
CString strTestLocation;
GetDlgItem(IDC_EDIT_TEST_LOCATION)->GetWindowTextA(strTestLocation);
BYTE byLogTypes = 0;
int iTemp = -1;
iTemp = ((CButton*)GetDlgItem(IDC_CHECK_SP_LOG))->GetCheck();
if (iTemp > 0)
{
byLogTypes |= 1;
}
iTemp = ((CButton*)GetDlgItem(IDC_CHECK_LONG_POTENTIAL_LOG))->GetCheck();
if (iTemp > 0)
{
byLogTypes |= 2;
}
iTemp = ((CButton*)GetDlgItem(IDC_CHECK_SHORT_POTENTIAL_LOG))->GetCheck();
if (iTemp > 0)
{
byLogTypes |= 4;
}
iTemp = ((CButton*)GetDlgItem(IDC_CHECK_GRADIENT_LOG))->GetCheck();
if (iTemp > 0)
{
byLogTypes |= 8;
}
if (byLogTypes <= 0)
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("请选择测井类型"));
else
MessageBoxEx(NULL, _T("Please select the logging type"), LOGGING_MESSAGEBOX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return;
}
CString strTrace;
GetDlgItem(IDC_EDIT_TRACE)->GetWindowTextA(strTrace);
if (strTrace.IsEmpty())
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("迭代次数不能为空"));
else
MessageBoxEx(NULL, _T("Number of iterations cannot be empty"), LOGGING_MESSAGEBOX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return;
}
int iWaveform = m_comWaveform.GetCurSel();
if (iWaveform < 0)
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("请选择发射波形"));
else
MessageBoxEx(NULL, _T("Please select the launch waveform"), LOGGING_MESSAGEBOX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return;
}
CString strSamplingInterval;
GetDlgItem(IDC_EDIT_SAMPLING_INTERVAL)->GetWindowTextA(strSamplingInterval);
if (strSamplingInterval.IsEmpty())
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("采样间隔不能为空"));
else
MessageBoxEx(NULL, _T("Sampling interval must not be empty"), LOGGING_MESSAGEBOX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return;
}
CString strInitialDepth;
GetDlgItem(IDC_EDIT_INITIAL_DEPTH)->GetWindowTextA(strInitialDepth);
if (strInitialDepth.IsEmpty())
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("初始深度不能为空"));
else
MessageBoxEx(NULL, _T("Initial depth cannot be empty"), LOGGING_MESSAGEBOX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return;
}
CString strEndDepth;
GetDlgItem(IDC_EDIT_END_DEPTH)->GetWindowTextA(strEndDepth);
if (strEndDepth.IsEmpty())
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("结束深度不能为空"));
else
MessageBoxEx(NULL, _T("End depth cannot be empty"), LOGGING_MESSAGEBOX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return;
}
int iLogDir = m_comLoggingDirection.GetCurSel();
if (iLogDir < 0)
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("请选择测井方向"));
else
MessageBoxEx(NULL, _T("Please select the logging direction"), LOGGING_MESSAGEBOX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return;
}
CString strLoggingInterval;
GetDlgItem(IDC_EDIT_LOGGING_INTERVAL)->GetWindowTextA(strLoggingInterval);
if (strLoggingInterval.IsEmpty())
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("测井间隔不能为空"));
else
MessageBoxEx(NULL, _T("Log interval must not be empty"), LOGGING_MESSAGEBOX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return;
}
CString strInstrumentZeroLength;
GetDlgItem(IDC_EDIT_INSTRUMENT_ZERO_LENGTH)->GetWindowTextA(strInstrumentZeroLength);
if (strInstrumentZeroLength.IsEmpty())
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("仪器零长不能为空"));
else
MessageBoxEx(NULL, _T("Instrument zero length cannot be empty"), LOGGING_MESSAGEBOX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return;
}
CString strPeriod;
GetDlgItem(IDC_EDIT_PERIOD)->GetWindowTextA(strPeriod);
if (strPeriod.IsEmpty())
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("周期不能为空"));
else
MessageBoxEx(NULL, _T("Period cannot be empty"), LOGGING_MESSAGEBOX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return;
}
//将数据希尔
BOOL bRes = CLoggingDataOper::GetInstance()->SaveTaskInfoIntoDB(strTaskName, strTestLocation, byLogTypes, strTrace, iWaveform, strSamplingInterval, strInitialDepth, strEndDepth, iLogDir, strLoggingInterval,strInstrumentZeroLength,strPeriod);
if (bRes)
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("创建任务成功"));
else
MessageBoxEx(NULL, _T("Create task successful"), LOGGING_MESSAGEBOX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
}
else
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("创建任务失败"));
else
MessageBoxEx(NULL, _T("Failed to create task"), LOGGING_MESSAGEBOX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
}
CDialog::OnOK();
}
void CDialogLoggingCreateTaskWnd::OnBnClickedCancel()
{
CDialog::OnCancel();
}