📄 kinddlg.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 + -