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

📄 modifydlg.cpp

📁 VC做的矢量画图程序!
💻 CPP
字号:
// ModifyDlg.cpp : implementation file
//

#include "stdafx.h"
#include "draw.h"
#include "ModifyDlg.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);
/////////////////////////////////////////////////////////////////////////////
// CModifyDlg dialog


CModifyDlg::CModifyDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CModifyDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CModifyDlg)
	m_BUSHESHIJIAN = CTime::GetCurrentTime();
	m_CAILIAO = 0;
	m_FAMENNO = _T("");
	m_GOUKUAN = 0.0;
	m_GUANJING = 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 CModifyDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CModifyDlg)
	DDX_DateTimeCtrl(pDX, IDC_BUSHESHIJIAN, m_BUSHESHIJIAN);
	DDX_Text(pDX, IDC_FAMENNO, m_FAMENNO);
	DDX_Text(pDX, IDC_GOUKUAN, m_GOUKUAN);
	DDV_MinMaxDouble(pDX, m_GOUKUAN, 0., 1000.);
	DDX_Text(pDX, IDC_GUANJING, m_GUANJING);
	DDV_MinMaxDouble(pDX, m_GUANJING, 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(CModifyDlg, CDialog)
	//{{AFX_MSG_MAP(CModifyDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CModifyDlg message handlers

BOOL CModifyDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();

	CComboBox * pCom=(CComboBox *)GetDlgItem(IDC_CAILIAO);
	pCom->InsertString(0,"普通铸铁");
    pCom->InsertString(1,"球墨铸铁");
	pCom->InsertString(2,"镀锌管");
	pCom->InsertString(4,"其它");
	pCom->InsertString(5,"");
	if(!IsAdd)
	{
	  CRecordset * pSet=new CRecordset(&((CDrawApp*) AfxGetApp())->m_pdatabase);
      CString sqlstr;
	  sqlstr.Format("select * from UPWATER  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("CAILIAO",f1);
		m_CAILIAO=atoi(f);
		pSet->GetFieldValue("GUANJING",f1);
		m_GUANJING=atof(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("FAMENNO",f1);
		m_FAMENNO=CString(f);
		pSet->GetFieldValue("BUSHESHIJIAN",f1);
		GetTimeFromStr(f,m_BUSHESHIJIAN);
		
		//设置COMBOX		
		if(m_CAILIAO==1)
		pCom->SetCurSel(0);
		else if(m_CAILIAO==2)
        pCom->SetCurSel(1);
		else if(m_CAILIAO==3)
        pCom->SetCurSel(2);
		else if(m_CAILIAO==4)
        pCom->SetCurSel(3);
		else if(m_CAILIAO==0)
        pCom->SetCurSel(4);
	
	  }
	  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 CModifyDlg::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData(true);
	//验证管道编号的有效性
	if(LineNoValid()==false)
		return;
	//裁剪m_FAMMENNO
	m_FAMENNO.TrimLeft();
	m_FAMENNO.TrimRight();
	//获得材料字段的整形值
	CComboBox *pCom=(CComboBox *)GetDlgItem(IDC_CAILIAO);
	if(pCom->GetCurSel()!=CB_ERR)
	{
		int SelIndex=pCom->GetCurSel();
	    if( SelIndex==0) 
			m_CAILIAO=1;
		else if(SelIndex==1)
			m_CAILIAO=2;
		else if(SelIndex==2)
			m_CAILIAO=3;
		else if(SelIndex==3)
			m_CAILIAO=4;
		else if(SelIndex==4)
			m_CAILIAO=0;
	}
	//形成修改和添加的SQL语句

    CString sqlstr;
	if(!IsAdd)
	   sqlstr.Format("update UPWATER set LINE_NO='%s',GUANJING=%f,CAILIAO=%d,MAISHEN=%f,GOUKUAN=%f,GUANCHANG=%f,QIDIANX=%f,QIDIANY=%f,QIDIANZ=%f,ZHONGDIANX=%f,ZHONGDIANY=%f,ZHONGDIANZ=%f,FAMENNO='%s',BUSHESHIJIAN='%s' where ID='%s'",m_LINENO,m_GUANJING,m_CAILIAO,m_MAISHEN,m_GOUKUAN,m_GUANCHANG,m_QX,m_QY,m_QZ,m_ZX,m_ZY,m_ZZ,m_FAMENNO,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 UPWATER 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="0";//如果表为空,ID值为O
   
	   sqlstr.Format("insert into UPWATER (ID,LINE_NO,GUANJING,CAILIAO,MAISHEN,GOUKUAN,GUANCHANG,QIDIANX,QIDIANY,QIDIANZ,ZHONGDIANX,ZHONGDIANY,ZHONGDIANZ,BUSHESHIJIAN,FAMENNO) values('%s','%s',%f,%d,%f,%f,%f,%f,%f,%f,%f,%f,%f,'%s','%s')",strID,m_LINENO,m_GUANJING,m_CAILIAO,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_FAMENNO);
	   pSet->Close();
	   delete pSet;
	}
	((CDrawApp*)AfxGetApp())->m_pdatabase.ExecuteSQL(_T(sqlstr));
	CDialog::OnOK();
}

bool CModifyDlg::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 LINE_NO from UPWATER where LINE_NO='"+m_LINENO+"'"));
	else
    pSet->Open(CRecordset::dynaset,_T("select LINE_NO from UPWATER 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 + -