📄 modifydlg3.cpp
字号:
// ModifyDlg3.cpp : implementation file
//
#include "stdafx.h"
#include "draw.h"
#include "ModifyDlg3.h"
#include "BrowseDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern void GetTimeFromStr(CString strTm, CTime &tm);
/////////////////////////////////////////////////////////////////////////////
// CModifyDlg3 dialog
CModifyDlg3::CModifyDlg3(CWnd* pParent /*=NULL*/)
: CDialog(CModifyDlg3::IDD, pParent)
{
//{{AFX_DATA_INIT(CModifyDlg3)
// NOTE: the ClassWizard will add member initialization here
m_BUSHESHIJIAN = CTime::GetCurrentTime();
m_GOUKUAN = 0.0;
m_LINENO = _T("");
m_MAISHEN = 0.0;
m_QX = 0.0;
m_QY = 0.0;
m_QZ = 0.0;
m_ZX = 0.0;
m_ZY = 0.0;
m_ZZ = 0.0;
m_pParent=(CBrowseDlg *)pParent;
m_GUANCHANG = 0.0;
IsAdd=FALSE;
//}}AFX_DATA_INIT
}
void CModifyDlg3::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CModifyDlg)
DDX_DateTimeCtrl(pDX, IDC_BUSHESHIJIAN, m_BUSHESHIJIAN);
DDX_Text(pDX, IDC_GOUKUAN, m_GOUKUAN);
DDV_MinMaxDouble(pDX, m_GOUKUAN, 0., 1000.);
DDX_Text(pDX, IDC_LINENO, m_LINENO);
DDV_MaxChars(pDX, m_LINENO, 8);
DDX_Text(pDX, IDC_MAISHEN, m_MAISHEN);
DDX_Text(pDX, IDC_QX, m_QX);
DDX_Text(pDX, IDC_QY, m_QY);
DDX_Text(pDX, IDC_QZ, m_QZ);
DDX_Text(pDX, IDC_ZX, m_ZX);
DDX_Text(pDX, IDC_ZY, m_ZY);
DDX_Text(pDX, IDC_ZZ, m_ZZ);
DDX_Text(pDX, IDC_GUANCHANG, m_GUANCHANG);
DDV_MinMaxDouble(pDX, m_GUANCHANG, 0., 10000.);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CModifyDlg3, CDialog)
//{{AFX_MSG_MAP(CModifyDlg3)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CModifyDlg3 message handlers
BOOL CModifyDlg3::OnInitDialog()
{
CDialog::OnInitDialog();
if(!IsAdd)
{
CRecordset * pSet=new CRecordset(&((CDrawApp*) AfxGetApp())->m_pdatabase);
CString sqlstr;
sqlstr.Format("select * from POWER where ID='%s'",m_pParent->m_ID);
pSet->Open(CRecordset::dynaset,_T(sqlstr));
if(!pSet->IsBOF())
{
pSet->MoveFirst();
CString f;
CString & f1=f;
pSet->GetFieldValue("LINE_NO",f1);
m_LINENO=CString(f);
pSet->GetFieldValue("MAISHEN",f1);
m_MAISHEN=atof(f);
pSet->GetFieldValue("GOUKUAN",f1);
m_GOUKUAN=atof(f);
pSet->GetFieldValue("QIDIANX",f1);
m_QX=atof(f);
pSet->GetFieldValue("QIDIANY",f1);
m_QY=atof(f);
pSet->GetFieldValue("QIDIANZ",f1);
m_QZ=atof(f);
pSet->GetFieldValue("ZHONGDIANX",f1);
m_ZX=atof(f);
pSet->GetFieldValue("ZHONGDIANY",f1);
m_ZY=atof(f);
pSet->GetFieldValue("ZHONGDIANZ",f1);
m_ZZ=atof(f);
pSet->GetFieldValue("BUSHESHIJIAN",f1);
GetTimeFromStr(f,m_BUSHESHIJIAN);
}
pSet->Close();
delete pSet;
}
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CModifyDlg3::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
//验证管道编号的有效性
if(LineNoValid()==false)
return;
//形成修改和添加的SQL语句
CString sqlstr;
if(!IsAdd)
sqlstr.Format("update POWER set LINE_NO='%s',MAISHEN=%f,GOUKUAN=%f,GUANCHANG=%f,QIDIANX=%f,QIDIANY=%f,QIDIANZ=%f,ZHONGDIANX=%f,ZHONGDIANY=%f,ZHONGDIANZ=%f,BUSHESHIJIAN='%s' where ID='%s'",m_LINENO,m_MAISHEN,m_GOUKUAN,m_GUANCHANG,m_QX,m_QY,m_QZ,m_ZX,m_ZY,m_ZZ,m_BUSHESHIJIAN.Format("%y-%m-%d"),m_pParent->m_ID);
else
{
//计算ID值
CString strID;
CString & strID1=strID;
CRecordset * pSet=new CRecordset(&((CDrawApp*) AfxGetApp())->m_pdatabase);
sqlstr.Format("select ID from POWER order by LINE_NO");
pSet->Open(CRecordset::dynaset,_T(sqlstr));
if(!pSet->IsBOF())
{
pSet->MoveFirst();
int temp=-1;
while(!pSet->IsEOF())
{
pSet->GetFieldValue("ID",strID1);
if(atoi(strID)>temp)
temp=atoi(strID);
pSet->MoveNext();
}
temp++;
strID.Format("%d",temp);
}
else
strID="30000001";//如果表为空,ID值为O
sqlstr.Format("insert into POWER (ID,LINE_NO,MAISHEN,GOUKUAN,GUANCHANG,QIDIANX,QIDIANY,QIDIANZ,ZHONGDIANX,ZHONGDIANY,ZHONGDIANZ,BUSHESHIJIAN) values('%s','%s',%f,%f,%f,%f,%f,%f,%f,%f,%f,'%s')",strID,m_LINENO,m_MAISHEN,m_GOUKUAN,m_GUANCHANG,m_QX,m_QY,m_QZ,m_ZX,m_ZY,m_ZZ,m_BUSHESHIJIAN.Format("%y-%m-%d"));
pSet->Close();
delete pSet;
}
((CDrawApp*)AfxGetApp())->m_pdatabase.ExecuteSQL(_T(sqlstr));
CDialog::OnOK();
}
bool CModifyDlg3::LineNoValid()//管线有效性检验
{
m_LINENO.TrimLeft();
m_LINENO.TrimRight();
bool bTag=true;
for(int i=0;i<m_LINENO.GetLength();i++)
{
char ch=m_LINENO.GetAt(i);
if(ch<'0' || ch>'9')
{
bTag=false;
break;
}
}
if(m_LINENO.GetLength()!=8 || !bTag)
{
AfxMessageBox("请输入8位数字组成的编号 !");
GetDlgItem(IDC_LINENO)->SetFocus();
return false;
}
CRecordset * pSet=new CRecordset(&((CDrawApp*) AfxGetApp())->m_pdatabase);
if(IsAdd)
pSet->Open(CRecordset::dynaset,_T("select ID from POWER where LINE_NO='"+m_LINENO+"'"));
else
pSet->Open(CRecordset::dynaset,_T("select ID from POWER where LINE_NO='"+m_LINENO+"' and ID<>'"+m_pParent->m_ID+"'"));
if(!pSet->IsBOF())
{
AfxMessageBox("管线编号不能重复!");
GetDlgItem(IDC_LINENO)->SetFocus();
return false;
}
pSet->Close();
delete pSet;
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -