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

📄 materials.cpp

📁 一个很好的VC源代码
💻 CPP
字号:
// MaterialS.cpp : implementation file
//

#include "stdafx.h"
#include "aoManage.h"
#include "MaterialS.h"
#include "MainFrm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMaterialS dialog


CMaterialS::CMaterialS(CWnd* pParent /*=NULL*/)
	: CParentDlg(CMaterialS::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMaterialS)
	m_strSerial = _T("");
	m_strPName = _T("");
	m_strPCode = _T("");
	m_strUnit = _T("");
	m_strDemo = _T("");
	m_strCClass = _T("");
	m_strSupply = _T("");
	m_strPType = _T("");
	//}}AFX_DATA_INIT
	m_pCClass=new CDaoRecordset(&((CMainFrame*)AfxGetMainWnd())->m_db);
	m_pMaterial=new CDaoRecordset(&((CMainFrame*)AfxGetMainWnd())->m_db);
	m_pSupply=new CDaoRecordset(&((CMainFrame*)AfxGetMainWnd())->m_db);
	m_nID=0;
}


void CMaterialS::DoDataExchange(CDataExchange* pDX)
{
	CParentDlg::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMaterialS)
	DDX_Control(pDX, IDC_COMBO1, m_ctlCbCClass);
	DDX_Control(pDX, IDC_COMBO2, m_ctlCbSupply);
	DDX_Text(pDX, IDC_EDIT1, m_strSerial);
	DDX_Text(pDX, IDC_EDIT2, m_strPName);
	DDX_Text(pDX, IDC_EDIT3, m_strPCode);
	DDX_Text(pDX, IDC_EDIT4, m_strUnit);
	DDX_Text(pDX, IDC_EDIT5, m_strDemo);
	DDX_CBString(pDX, IDC_COMBO1, m_strCClass);
	DDX_CBString(pDX, IDC_COMBO2, m_strSupply);
	DDX_Text(pDX, IDC_EDIT6, m_strPType);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMaterialS, CParentDlg)
	//{{AFX_MSG_MAP(CMaterialS)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_WM_CLOSE()
	ON_CBN_KILLFOCUS(IDC_COMBO1, OnKillfocusCombo1)
	ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMaterialS message handlers


BOOL CMaterialS::OnInitDialog() 
{
	CParentDlg::OnInitDialog();
	
	m_pCClass->Open(AFX_DAO_USE_DEFAULT_TYPE,"select * from cclass");
	m_pMaterial->Open(AFX_DAO_USE_DEFAULT_TYPE,"select * from material");
	m_pSupply->Open(AFX_DAO_USE_DEFAULT_TYPE,"select * from supply");

	COleVariant vCode,vName;
	CString strTemp;
	while (!m_pCClass->IsEOF())
	{
		m_pCClass->GetFieldValue("code",vCode);
		m_pCClass->GetFieldValue("name",vName);
		strTemp=(LPCTSTR)vCode.bstrVal;
		strTemp+="   ";
		strTemp+=(LPCTSTR)vName.bstrVal;
		m_ctlCbCClass.AddString(strTemp);
		m_pCClass->MoveNext();
	}
	while (!m_pSupply->IsEOF())
	{
		m_pSupply->GetFieldValue("scode",vCode);
		m_pSupply->GetFieldValue("sname",vName);
		strTemp=(LPCTSTR)vCode.bstrVal;
		strTemp+="   ";
		strTemp+=(LPCTSTR)vName.bstrVal;
		m_ctlCbSupply.AddString(strTemp);
		m_pSupply->MoveNext();
	}
	CString strFltr;
	strFltr.Format("id=%d",m_nID);
	if (m_pMaterial->FindFirst(strFltr))
	{
		COleVariant vVal;
		m_pMaterial->GetFieldValue("serial",vVal);
		m_strSerial=(LPCTSTR)vVal.bstrVal;
		m_pMaterial->GetFieldValue("cclass",vVal);
		m_strCClass=(LPCTSTR)vVal.bstrVal;
		m_pMaterial->GetFieldValue("pname",vVal);
		m_strPName=(LPCTSTR)vVal.bstrVal;
		m_pMaterial->GetFieldValue("pcode",vVal);
		m_strPCode=(LPCTSTR)vVal.bstrVal;
		m_pMaterial->GetFieldValue("ptype",vVal);
		m_strPType=(LPCTSTR)vVal.bstrVal;
		m_pMaterial->GetFieldValue("unit",vVal);
		m_strUnit=(LPCTSTR)vVal.bstrVal;
		m_pMaterial->GetFieldValue("demo",vVal);
		m_strDemo=(LPCTSTR)vVal.bstrVal;
		m_pMaterial->GetFieldValue("supplycode",vVal);
		m_strSupply=(LPCTSTR)vVal.bstrVal;
	}
	UpdateData(FALSE);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CMaterialS::OnButton1() 
{
	if (MessageBox("是否真的要修改?","",MB_OKCANCEL)==IDCANCEL)
		return;
	UpdateData(TRUE);
	if (!m_strCClass.GetLength()||!m_strPName.GetLength()||!m_strPCode.GetLength())
	{
		MessageBox("分类号,品名或品号不能为空");
		return;
	}
	m_pMaterial->Edit();
	m_pMaterial->SetFieldValue("serial",(LPCTSTR)m_strSerial);
	m_pMaterial->SetFieldValue("cclass",(LPCTSTR)m_strCClass.Left(2));
	m_pMaterial->SetFieldValue("pname",(LPCTSTR)m_strPName);
	m_pMaterial->SetFieldValue("pcode",(LPCTSTR)m_strPCode);
	m_pMaterial->SetFieldValue("ptype",(LPCTSTR)m_strPType);
	m_pMaterial->SetFieldValue("unit",(LPCTSTR)m_strUnit);
	m_pMaterial->SetFieldValue("supplycode",(LPCTSTR)m_strSupply.Left(7));
	m_pMaterial->SetFieldValue("demo",(LPCTSTR)m_strDemo);
	m_pMaterial->Update();
	MessageBox("记录已成功修改");
	OnOK();
}

void CMaterialS::OnButton2() 
{
	OnCancel();
}

void CMaterialS::OnClose() 
{
	if (m_pCClass->IsOpen())
		m_pCClass->Close();
	if (m_pMaterial->IsOpen())
		m_pMaterial->Close();
	if (m_pSupply->IsOpen())
		m_pSupply->Close();
	CParentDlg::OnClose();
}

void CMaterialS::OnKillfocusCombo1() 
{
	UpdateData(TRUE);
	CString strFltr="???"+m_strSerial+"??";
	strFltr="pcode like '"+strFltr+"\'";
	//if (m_pMaterial->FindFirst(strFltr))
	if (m_pMaterial->FindLast(strFltr))
	{
		CString strTemp;
		COleVariant vVal;
		m_pMaterial->GetFieldValue("pcode",vVal);
		strTemp=(LPCTSTR)vVal.bstrVal;
		strTemp=strTemp.Right(2);
		m_strPCode.Format("%02d",atoi(strTemp)+1);
	}
	else
		m_strPCode="01";
	m_strPCode="1"+m_strCClass.Left(2)+m_strSerial+m_strPCode;
	UpdateData(FALSE);
}

void CMaterialS::OnButton5() 
{
	if (MessageBox("是否真的要删除?","",MB_OKCANCEL)==IDCANCEL)
		return;
	m_pMaterial->Delete();
	MessageBox("记录已被删除");
	OnOK();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -