📄 returndlg.cpp
字号:
// ReturnDlg.cpp : implementation file
//
#include "stdafx.h"
#include "lib.h"
#include "ReturnDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CReturnDlg dialog
CReturnDlg::CReturnDlg(CWnd* pParent /*=NULL*/)
: CDialog(CReturnDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CReturnDlg)
m_movieid = _T("");
m_Userid = _T("");
m_moviename = _T("");
m_movienum = _T("");
m_Borrownum = _T("");
m_Username = _T("");
//}}AFX_DATA_INIT
//returnStyle=1;
}
void CReturnDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CReturnDlg)
DDX_Text(pDX, IDC_EDIT_MOVIEID, m_movieid);
DDX_Text(pDX, IDC_EDIT_USERID, m_Userid);
DDX_Text(pDX, IDC_STATIC_MOVIENAME, m_moviename);
DDX_Text(pDX, IDC_STATIC_MOVIENUM, m_movienum);
DDX_Text(pDX, IDC_STATIC_BORROWNUM, m_Borrownum);
DDX_Text(pDX, IDC_STATIC_USERNAME, m_Username);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CReturnDlg, CDialog)
//{{AFX_MSG_MAP(CReturnDlg)
ON_BN_CLICKED(IDC_BUTTON1, OnReturn)
ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
ON_BN_CLICKED(IDC_RADIO3, OnRadio3)
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDCANCEL, &CReturnDlg::OnBnClickedCancel)
ON_EN_CHANGE(IDC_EDIT_MOVIEID, &CReturnDlg::OnEnChangeEditMovieid)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CReturnDlg message handlers
void CReturnDlg::OnReturn()
{
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
UpdateData();
if(CheckValid())
{
CString pp;
UpdateData(false);
SaveData();
pp="归还成功";
if (returnStyle!="0") pp=pp+price;
AfxMessageBox(pp);
}
}
void CReturnDlg::OnRadio1()
{
// TODO: Add your control notification handler code here
returnStyle="0";
}
void CReturnDlg::OnRadio2()
{
// TODO: Add your control notification handler code here
returnStyle="1";
}
void CReturnDlg::OnRadio3()
{
// TODO: Add your control notification handler code here
returnStyle="2";
}
BOOL CReturnDlg::CheckValid()
{
//检查输入的合法性
char buffer[20];//
if(m_Userid.IsEmpty() || m_movieid.IsEmpty())
{
AfxMessageBox("请输入会员号和影碟号!");
return false;
}
m_UserSet.Open();
m_UserSet.m_strFilter="userid='"+m_Userid+"'";
m_UserSet.Requery();
if(m_UserSet.GetRecordCount()==0)
{
AfxMessageBox("您的会员号输入有误,请重新输入!");
GetDlgItem(IDC_EDIT_USERID)->SetFocus();
m_UserSet.Close();
return false;
}
else
{
m_Username=m_UserSet.m_username;//
ltoa(m_UserSet.m_borrownum,buffer,10);
m_Borrownum=buffer;//
UpdateData(false);//
};
m_movieSet.Open();
m_movieSet.m_strFilter="movieid='"+m_movieid+"'";
m_movieSet.Requery();
if(m_movieSet.GetRecordCount()==0)
{
AfxMessageBox("您的影碟号输入有误,请重新输入!");
GetDlgItem(IDC_EDIT_MOVIEID)->SetFocus();
m_UserSet.Close();
m_movieSet.Close();
return false;
}
else
{
m_moviename=m_movieSet.m_moviename;//
ltoa(m_movieSet.m_remain,buffer,10);
m_movienum=buffer;//
UpdateData(false);//
}
///////检验此人是否租过此碟//////////////
m_BorrowSet.Open();
CString ppstr;
ppstr="userid='"+m_Userid+"'"+"and movieid='"+m_movieid+"'"+"and remaindate<=30";
// ppstr="PP='"+m_pp+"'"+"and "+"&&LX='"+m_gn+"'";
m_BorrowSet.m_strFilter=ppstr;
m_BorrowSet.Requery();
//m_BorrowSet.m_remaindata==999
if(m_BorrowSet.GetRecordCount()==0)
{
AfxMessageBox("你未租此碟,请重新输入!");
GetDlgItem(IDC_EDIT_MOVIEID)->SetFocus();
m_UserSet.Close();
m_movieSet.Close();
m_BorrowSet.Close();
return false;
}
return true;
}
void CReturnDlg::SaveData()
{
//将数据保存到数据库
//设置租碟期限是一个月
char buffer[20];
//注销borrow表中的借期
m_BorrowSet.Edit();
m_BorrowSet.m_remaindate=999;
m_BorrowSet.Update();
//保存数据到user表
m_UserSet.Edit();
m_UserSet.m_borrownum--;
m_UserSet.Update();
//保存数据到movie表
if (returnStyle=="0")
{
m_movieSet.Edit();
m_movieSet.m_remain++;
m_movieSet.Update();
}
//更新对话框的数据
ltoa(m_movieSet.m_remain,buffer,10);
m_movienum=buffer;//
ltoa(m_UserSet.m_borrownum,buffer,10);
m_Borrownum=buffer;
//
price=m_movieSet.m_price;
int strLength=price.GetLength();//使价格只保留两位小数
price=price.Left(strLength-2);
price=" 您应赔偿"+price+"*"+returnStyle;
m_BorrowSet.Close();
m_UserSet.Close();
m_movieSet.Close();
UpdateData(false);
if (returnStyle=="1")
movieRepair();
if (returnStyle=="2")
movieDel();
//关闭数据集
}
void CReturnDlg::movieRepair()
{
m_BorrowSet.Open();
m_UserSet.Open();
//保存数据到borrow表
m_BorrowSet.AddNew();
m_BorrowSet.m_userid="10000";
m_BorrowSet.m_movieid=m_movieid;
m_BorrowSet.m_remaindate=15;
m_BorrowSet.Update();
//保存数据到user表
m_UserSet.m_strFilter="userid='10000'";
m_UserSet.Requery();
m_UserSet.Edit();
m_UserSet.m_borrownum+=1;
m_UserSet.Update();
m_BorrowSet.Close();
m_UserSet.Close();
}
void CReturnDlg::movieDel()
{
m_BorrowSet.Open();
m_UserSet.Open();
//保存数据到borrow表
m_BorrowSet.AddNew();
m_BorrowSet.m_userid="10001";
m_BorrowSet.m_movieid=m_movieid;
m_BorrowSet.m_remaindate=1000;
m_BorrowSet.Update();
//保存数据到user表
m_UserSet.m_strFilter="userid='10001'";
m_UserSet.Requery();
m_UserSet.Edit();
m_UserSet.m_borrownum+=1;
m_UserSet.Update();
m_BorrowSet.Close();
m_UserSet.Close();
}
void CReturnDlg::OnBnClickedCancel()
{
// TODO: 在此添加控件通知处理程序代码
OnCancel();
}
void CReturnDlg::OnEnChangeEditMovieid()
{
// TODO: 如果该控件是 RICHEDIT 控件,则它将不会
// 发送该通知,除非重写 CDialog::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
// TODO: 在此添加控件通知处理程序代码
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -