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

📄 kinddlg.cpp

📁 车行管理系统
💻 CPP
字号:
// KindDlg.cpp : implementation file
//

#include "stdafx.h"
#include "pro.h"
#include "KindDlg.h"
#include "krecset.h"

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

/////////////////////////////////////////////////////////////////////////////
// CKindDlg dialog


CKindDlg::CKindDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CKindDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CKindDlg)
	m_kadd = _T("");
	m_einval = 0.0;
	m_r = FALSE;
	//}}AFX_DATA_INIT
}


void CKindDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CKindDlg)
	DDX_Control(pDX, IDC_KINDADD, m_badd);
	DDX_Control(pDX, IDC_INVAL, m_einvalc);
	DDX_Control(pDX, IDC_KADD, m_addctrl);
	DDX_Control(pDX, IDC_SMSG, m_smsg);
	DDX_Control(pDX, IDC_CKIND, m_ListCtrl);
	DDX_Text(pDX, IDC_KADD, m_kadd);
	DDV_MaxChars(pDX, m_kadd, 30);
	DDX_Text(pDX, IDC_INVAL, m_einval);
	DDX_Check(pDX, IDC_R, m_r);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CKindDlg, CDialog)
	//{{AFX_MSG_MAP(CKindDlg)
	ON_BN_CLICKED(IDC_KINDADD, OnKindadd)
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	ON_BN_CLICKED(IDC_R, OnR)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CKindDlg message handlers

void CKindDlg::OnKindadd() 
{
	UpdateData();
	if(m_kadd.GetLength ())
	{
		if(k_db.IsOpen ())
		{
			if(!m_r)
			{
				if(!k_db.IsBOF ())k_db.MoveFirst ();
				while(!k_db.IsEOF() )
				{
					if(strcmp(k_db.m_column1,m_kadd)==0)
					{
						MessageBox("该记车型已登记.");
						m_kadd="";
						UpdateData(FALSE);
						m_addctrl.SetFocus ();
						return;
					}
					if(!k_db.IsEOF ())k_db.MoveNext ();
				}
				
			}
			if(m_einval ==0)
			{
				MessageBox("入库不能为0");
				m_einvalc.SetFocus ();
				return;
				
				
			}
			if(!m_r)k_db.AddNew ();
			else k_db.Edit ();
			k_db.m_column1 =m_kadd;
			k_db.m_inval =m_einval;
			
			k_db.Update ();
			m_kadd="";
			m_einval=0;
			k_db.Requery();
			m_kadd="";
			UpdateData(FALSE);
			m_addctrl.SetFocus ();
			show();
			m_ListCtrl.EnsureVisible(m_ListCtrl.GetItemCount() -1,TRUE);//自己下拉
			if(m_r)OnR();
		}
		else 
		{
			
			MessageBox("数据库打开错误!");
			
		}
	}
	else return;
	
}

BOOL CKindDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

	LV_COLUMN lvc;
	
	lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH /*| LVCF_FMT*/;
	

		k_db.Open ();
	lvc.iSubItem = 0;
	lvc.pszText = (char *)"ID";
	lvc.cx = 30;
	m_ListCtrl.InsertColumn(0,&lvc);
	
	lvc.iSubItem = 1;
	lvc.pszText = (char *)"型号";
	lvc.cx = 100;
	m_ListCtrl.InsertColumn(1,&lvc);
	lvc.iSubItem = 2;
	lvc.pszText = (char *)"入库";
	lvc.cx = 80;
	m_ListCtrl.InsertColumn(2,&lvc);

	k_db.Requery();
	show();
	m_ListCtrl.SetItemState(0, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);


	m_addctrl.SetFocus ();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

int CKindDlg::show()
{
	if(!k_db.IsOpen ())
	{
		MessageBox("记录集打开错误");
		return 0;
	}
	m_ListCtrl.DeleteAllItems();

	//k_db.Requery();
	int i=0;
	if(!k_db.IsBOF ())k_db.MoveFirst ();
	while(!k_db.IsEOF() )
	{
	CString s;
	s.Format ("%d",i+1 );
	m_ListCtrl.InsertItem (i,s,0);
	m_ListCtrl.SetItemData (i,(DWORD)k_db.m_ID );
	m_ListCtrl.SetItemText (i,0,s );
	s.Format ("%s",k_db.m_column1 );
	m_ListCtrl.SetItemText(i,1,s);
	s.Format ("%0.2f",k_db.m_inval );
	m_ListCtrl.SetItemText(i,2,s);
	i++;
	k_db.MoveNext ();
	}
	
	return i;



}

void CKindDlg::OnButton3() 
{
	// TODO: Add your control notification handler code here
	//MessageBox("我是林利");

	
	POSITION pos=m_ListCtrl.GetFirstSelectedItemPosition();
	if(pos==NULL)
	{
		showmsg("没有记录被选择.");
		m_addctrl.SetFocus ();
	}
	else
	{
		int idx;
		long id;
		int dc=0;
		while(pos)
		{
			idx=m_ListCtrl.GetNextSelectedItem (pos);
			id=m_ListCtrl.GetItemData (idx);
			if(!k_db.IsBOF ())k_db.MoveFirst();
			while(!k_db.IsEOF ())
			{
				if(k_db.m_ID!=id)
				k_db.MoveNext ();
				else
				{
					k_db.Delete ();
					dc++;
					k_db.Requery();
					break;
				}
				
			}
			

		}
		k_db.Requery();
		this->show ();
		char tp[256];
		sprintf(tp,"已删除 %d 条记录.",dc);
		showmsg(tp);
		m_ListCtrl.EnsureVisible(m_ListCtrl.GetItemCount() -1,TRUE);//自己下拉
		m_addctrl.SetFocus ();
	}




	
}

//DEL int CKindDlg::KGetCurSel()
//DEL {
//DEL m_ListCtrl.GetItemState (i,
//DEL }

void CKindDlg::showmsg(char *msg)
{
	if(!lstrlen(msg))return;
	m_smsg.SetWindowText (msg);

}

void CKindDlg::OnR() 
{
	// TODO: Add your control notification handler code here
	if(!m_r)
	{
		UpdateData(FALSE);
		UpdateData();
		POSITION pos=m_ListCtrl.GetFirstSelectedItemPosition();
		if(pos==NULL)
		{
			MessageBox("没有用户名被选择.");
			m_r=FALSE;
			UpdateData(FALSE);
			
		}
		else
		{
			int idx;
			long id;
			
			idx=m_ListCtrl.GetNextSelectedItem (pos);
			id=m_ListCtrl.GetItemData (idx);
			if(!k_db.IsBOF ())k_db.MoveFirst();
			while(!k_db.IsEOF ())
			{
				if(k_db.m_ID!=id)
					k_db.MoveNext ();
				else
				{
					m_kadd=k_db.m_column1;
					
					m_einval=k_db.m_inval ;
					m_r=TRUE;
					m_badd.SetWindowText ("修改");
					UpdateData(FALSE);

					return;
					
					
				}
				
			}
			MessageBox("未找到记录");
			m_r=FALSE;
			UpdateData(FALSE);
			return;
		}
		////////////////////////////////////
		// TODO: Add your control notification handler code here
		
		
		
	}
	else 
	{
		m_kadd="";
		m_einval=0;
		m_r=FALSE;
		m_badd.SetWindowText ("增加");
		UpdateData(FALSE);
	}
}

⌨️ 快捷键说明

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