⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modifydlg3.cpp

📁 VC做的矢量画图程序!
💻 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 + -