📄 crdbsdlg.cpp
字号:
// CRDBSDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "FLYSNOW.h"
#include "CRDBSDlg.h"
#include ".\crdbsdlg.h"
#include "EXIT.h"
#include "About.h"
// CCRDBSDlg 对话框
IMPLEMENT_DYNAMIC(CCRDBSDlg, CDialog)
CCRDBSDlg::CCRDBSDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCRDBSDlg::IDD, pParent)
, m_customername(_T(""))
, m_customernum(_T(""))
, m_phone(_T(""))
, m_address(_T(""))
, m_rentCumnumser(_T(""))
, m_Dname(_T(""))
, m_Dnum(_T(""))
, m_star(_T(""))
, m_editor(_T(""))
, m_writer(_T(""))
, m_company(_T(""))
, m_sum(_T(""))
, m_lendcustomernum(_T(""))
, m_lendDiscname(_T(""))
, m_lendmoney(_T(""))
, m_date(COleDateTime::GetCurrentTime())
{
}
CCRDBSDlg::~CCRDBSDlg()
{
}
void CCRDBSDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST_CUSTOMER, m_listCustomer);
DDX_Control(pDX, IDC_LIST_DISC, m_listDisc);
DDX_Control(pDX, IDC_LIST_CUSTOMER_DISC, m_listCustomerDisc);
DDX_Text(pDX, IDC_EDIT_CUSTOMER_NAME, m_customername);
DDX_Text(pDX, IDC_EDIT_CUSTOMER_NUMER, m_customernum);
DDX_Text(pDX, IDC_EDIT_CUSTOMER_PHONE, m_phone);
DDX_Text(pDX, IDC_EDIT_CUSTOMER_MAIL, m_address);
DDX_Text(pDX, IDC_EDIT_RENTNUM, m_rentCumnumser);
DDX_Control(pDX, IDC_LIST_LEND, m_listlend);
DDX_Text(pDX, IDC_EDIT_NAME, m_Dname);
DDX_Text(pDX, IDC_EDIT_STAR, m_Dnum);
DDX_Text(pDX, IDC_EDIT_WRITER, m_star);
DDX_Text(pDX, IDC_EDIT_NUMBER, m_editor);
DDX_Text(pDX, IDC_EDIT_EDITOR, m_writer);
DDX_Text(pDX, IDC_EDIT_COMPANY, m_company);
DDX_Text(pDX, IDC_EDIT_SUM, m_sum);
DDX_Text(pDX, IDC_EDIT_LENDCUSNUM, m_lendcustomernum);
DDX_Text(pDX, IDC_EDIT_LENDDISCNUM, m_lendDiscname);
DDX_Text(pDX, IDC_EDIT_LENDDISCNUM2, m_lendmoney);
DDX_DateTimeCtrl(pDX, IDC_DATE, m_date);
}
BEGIN_MESSAGE_MAP(CCRDBSDlg, CDialog)
ON_BN_CLICKED(IDC_BUTTON11, OnBnClickedButton11)
ON_NOTIFY(NM_CLICK, IDC_LIST_CUSTOMER, OnClickListCustomer)
ON_BN_CLICKED(IDC_BTN_CUSTOMER_ADD, OnBnClickedBtnCustomerAdd)
ON_BN_CLICKED(IDC_BTN_CUSTOMER_MOD, OnBnClickedBtnCustomerMod)
ON_BN_CLICKED(IDC_BTN_CUSTOMER_DEL, OnBnClickedBtnCustomerDel)
ON_BN_CLICKED(IDC_BTN_CUSTOMER_QUERY, OnBnClickedBtnCustomerQuery)
ON_BN_CLICKED(IDC_BTN_CUSTOMER_QUERY2, OnBnClickedBtnCustomerQuery2)
ON_BN_CLICKED(IDC_BTN_CUSTOMER_ADD2, OnBnClickedBtnCustomerAdd2)
ON_BN_CLICKED(IDC_BUTTON12, OnBnClickedButton12)
ON_BN_CLICKED(IDC_BUTTON13, OnBnClickedButton13)
ON_BN_CLICKED(IDC_BTN_DISC_ADD, OnBnClickedBtnDiscAdd)
ON_BN_CLICKED(IDC_DISC_SHOWALL, OnBnClickedDiscShowall)
ON_BN_CLICKED(IDC_BTN_DISC_MOD, OnBnClickedBtnDiscMod)
ON_NOTIFY(NM_CLICK, IDC_LIST_DISC, OnClickListDisc)
ON_BN_CLICKED(IDC_BTN_DISC_DEL, OnBnClickedBtnDiscDel)
ON_BN_CLICKED(IDC_BTN_DISC_QUERY, OnBnClickedBtnDiscQuery)
ON_BN_CLICKED(IDC_RENT, OnBnClickedRent)
ON_BN_CLICKED(IDC_BUTTON10, OnBnClickedButton10)
ON_BN_CLICKED(IDC_BUTTON14, OnBnClickedButton14)
ON_NOTIFY(NM_CLICK, IDC_LIST_LEND, OnClickListLend)
ON_WM_CREATE()
END_MESSAGE_MAP()
void CCRDBSDlg::InitControl() //初始化列表
{ DWORD dwExStyle=LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP ;
m_listCustomer.SetExtendedStyle(dwExStyle);
m_listDisc.SetExtendedStyle(dwExStyle);
m_listCustomerDisc.SetExtendedStyle(dwExStyle);
m_listlend.SetExtendedStyle(dwExStyle);
m_listCustomer.InsertColumn(0,"住址",LVCFMT_CENTER,105);
m_listCustomer.InsertColumn(0,"电话",LVCFMT_CENTER,95);
m_listCustomer.InsertColumn(0,"账号",LVCFMT_CENTER,95);
m_listCustomer.InsertColumn(0,"姓名",LVCFMT_CENTER,94);
m_listDisc.InsertColumn(0,"拷贝数",LVCFMT_CENTER,95);
m_listDisc.InsertColumn(0,"出品公司",LVCFMT_CENTER,95);
m_listDisc.InsertColumn(0,"导演",LVCFMT_CENTER,95);
m_listDisc.InsertColumn(0,"制片人",LVCFMT_CENTER,95);
m_listDisc.InsertColumn(0,"演员",LVCFMT_CENTER,95);
m_listDisc.InsertColumn(0,"序号",LVCFMT_CENTER,105);
m_listDisc.InsertColumn(0,"名称",LVCFMT_CENTER,106);
m_listCustomerDisc.InsertColumn(0,"押金",LVCFMT_CENTER,50);
m_listCustomerDisc.InsertColumn(0,"租碟时间",LVCFMT_CENTER,120);
m_listCustomerDisc.InsertColumn(0,"租碟名称",LVCFMT_CENTER,100);
m_listlend.InsertColumn(0,"出租时间",LVCFMT_CENTER,118);
m_listlend.InsertColumn(0,"客户账号",LVCFMT_CENTER,60);
m_listlend.InsertColumn(0,"影碟名称",LVCFMT_CENTER,60);
}
// CCRDBSDlg 消息处理程序
BOOL CCRDBSDlg::OnInitDialog()
{
CDialog::OnInitDialog();
InitControl();
InitCtrlCustomerData();
InitCtrlDiscData();
InitCtrllendData();
// TODO: 在此添加额外的初始化
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
CCRDBSDlg maindlg;
CEXIT exitdlg;
void CCRDBSDlg::OnBnClickedButton11()
{
exitdlg.DoModal();
// TODO: 在此添加控件通知处理程序代码
}
Ccustomer m_customerset;
Crent m_rentset;
CDatabase m_database;
CString strSql;
CDisc m_discset;
void CCRDBSDlg::InsertCustomerInfoItem(CString name,
CString num,CString phone,
CString address) //在客户信息Listctril中显示数据
{int nIndex= m_listCustomer.InsertItem(0,name);
m_listCustomer.SetItemText(nIndex,1,num );
m_listCustomer.SetItemText(nIndex,2,phone);
m_listCustomer.SetItemText(nIndex,3,address);
}
void CCRDBSDlg:: InsertRentInfoItem(CString RDname,CString date,CString money) //在租碟信息Listctril中显示数据
{int nIndex= m_listCustomerDisc.InsertItem(0,RDname);
m_listCustomerDisc.SetItemText(nIndex,1, date);
m_listCustomerDisc.SetItemText(nIndex,2,money);
}
void CCRDBSDlg::InsertDiscInfoItem(CString name,CString num,CString star,CString writer,
CString editor,CString company, long sum)//在影碟信息Listctril中显示数据
{CString a;
a.Format("%ld",sum);
LV_ITEM lvitem;
lvitem.pszText=(char*)(LPCTSTR)a;
int nIndex= m_listDisc.InsertItem(0,name);
m_listDisc.SetItemText(nIndex,1,num );
m_listDisc.SetItemText(nIndex,2,star);
m_listDisc.SetItemText(nIndex,3,writer);
m_listDisc.SetItemText(nIndex,4,editor);
m_listDisc.SetItemText(nIndex,5,company);
m_listDisc.SetItemText(nIndex,6,a);
}
void CCRDBSDlg::InitCtrlRentData() //显示用客户出租影碟
{
UpdateData(TRUE);
m_rentset.m_pDatabase=&m_database;
strSql.Format("select * from rent where Cnum='%s'",m_rentCumnumser);
m_rentset.Open(AFX_DB_USE_DEFAULT_TYPE,strSql);
if(m_rentset.IsEOF()){m_listCustomerDisc.DeleteAllItems();
AfxMessageBox("没有此客户相关资料,请检查客户账号是否正确");
m_rentCumnumser=" ";m_rentset.Close();}
else {m_listCustomerDisc.DeleteAllItems();
m_rentset.MoveFirst();
while(!m_rentset.IsEOF())
{CString RDname,num,date,money;
m_rentset.GetFieldValue("RDname",RDname);
m_rentset.GetFieldValue("date",date);
m_rentset.GetFieldValue("money",money);
InsertRentInfoItem(RDname,date,money);
m_rentset.MoveNext();}}
m_rentset.Close();
}
void CCRDBSDlg::InitCtrlCustomerData() //客户信息-读取全部数据
{ UpdateData(TRUE);
m_customerset.m_pDatabase=&m_database;
strSql.Format("select * from customer order by Cnum " );
m_customerset.Open(AFX_DB_USE_DEFAULT_TYPE,strSql);
if(m_customerset.IsEOF())
{m_customerset.Close();return;
}
m_customerset.MoveFirst();
while(!m_customerset.IsEOF())
{
CString name,num,phone,address;
m_customerset.GetFieldValue("Cname",name);
m_customerset.GetFieldValue("Cnum",num);
m_customerset.GetFieldValue("phone",phone);
m_customerset.GetFieldValue("address",address);
InsertCustomerInfoItem(name,num,phone,address);
m_customerset.MoveNext();}
m_customerset.Close();
}
void CCRDBSDlg::InitCtrlDiscData() //影碟信息-读取全部数据
{ UpdateData(TRUE);
m_discset.m_pDatabase=&m_database;
strSql.Format("select * from Disc order by Dnum" );
m_discset.Open(AFX_DB_USE_DEFAULT_TYPE,strSql);
if(m_discset.IsEOF())
{m_discset.Close();return;}
m_discset.MoveFirst();
while(!m_discset.IsEOF())
{
CString name,num,star,writer,editor,company;long sum;
CString a;
m_discset.GetFieldValue("Dname",name);
m_discset.GetFieldValue("Dnum",num);
m_discset.GetFieldValue("star",star);
m_discset.GetFieldValue("writer",writer);
m_discset.GetFieldValue("editor",editor);
m_discset.GetFieldValue("company",company);
CDBVariant y;
m_discset.GetFieldValue("sum",y);
sum=y.m_lVal;
InsertDiscInfoItem(name,num,star,writer,editor,company,sum);
m_discset.MoveNext();}
m_discset.Close();
}
void CCRDBSDlg::customeradd() //添加客户函数
{if(!UpdateData())
return;
if(m_customername.IsEmpty())
{AfxMessageBox("请输入客户姓名");return;
}
if(m_customernum.IsEmpty())
{AfxMessageBox("请输入客户账号");return;
}
CString sql;
CRecordset rs(&m_database);
sql.Format("select Cnum from customer where Cnum='%s'",m_customernum);
rs.Open( CRecordset::snapshot,sql);
CString strCode=_T("");
if(!rs.IsEOF())
{rs.GetFieldValue((short)0,strCode);
}
if(!strCode.IsEmpty())
{AfxMessageBox("已有此客户账号,请重新输入客户的账号");
return;}
else {
sql.Format("Insert into customer (Cname,Cnum,phone,address) VALUES('%s','%s','%s','%s')",
m_customername,m_customernum, m_phone,m_address);
TRACE(sql);
m_database.ExecuteSQL(sql);
InsertCustomerInfoItem(m_customername,m_customernum,m_phone,m_address);
}
}
void CCRDBSDlg::customerMod() //修改客户信息
{int nItem=m_listCustomer.GetNextItem(-1,LVNI_SELECTED);
if(nItem==-1)
{AfxMessageBox("请选择要修改的客户");
return;
}
CString strcustomer=m_listCustomer.GetItemText(nItem,0);
if(!UpdateData())
return;
CString sql;
sql.Format("update customer set Cnum='%s',phone='%s',address='%s' where Cname='%s'", m_customernum, m_phone,m_address,strcustomer);
TRACE(sql);
m_database.ExecuteSQL(sql);
}
void CCRDBSDlg::customerDel() //删除客户信息
{int nItem=m_listCustomer.GetNextItem(-1,LVNI_SELECTED);
if(nItem==-1)
{AfxMessageBox("请选择要删除的客户");
return;}
CString delcustomer=m_listCustomer.GetItemText(nItem,1);
if(!UpdateData())
return;
CString sql;
sql.Format("delete from customer where Cnum='%s'",delcustomer);
m_database.ExecuteSQL(sql);
sql.Format("delete from rent where Cnum='%s'",delcustomer);
m_database.ExecuteSQL(sql);
m_listCustomer.DeleteItem(nItem);
}
void CCRDBSDlg::Discadd() //添加影碟函数
{if(!UpdateData())
return;
if(m_Dname.IsEmpty())
{AfxMessageBox("请输入影碟名称");
return;
}
if(m_Dnum.IsEmpty())
{AfxMessageBox("请输入影碟序号");
return;
}
if(m_sum.IsEmpty())
{AfxMessageBox("请输入影碟拷贝数");
return;
}
CString sql;
CRecordset rs(&m_database);
sql.Format("select Dnum from Disc where Dnum='%s'",m_Dnum);
rs.Open( CRecordset::snapshot,sql);
CString strCode=_T("");
if(!rs.IsEOF())
{rs.GetFieldValue((short)0,strCode);
}
rs.Close();
if(!strCode.IsEmpty())
{AfxMessageBox("已有此影碟序号,请重新输入影碟的序号");
return;}
else {
sql.Format("Insert into Disc (Dname,Dnum,star,writer,editor,company,sum) VALUES('%s','%s','%s','%s','%s','%s','%s')",
m_Dname,m_Dnum,m_star,m_writer,m_editor,m_company,m_sum);
TRACE(sql);
m_database.ExecuteSQL(sql);
CDBVariant y;
m_discset.Open();
m_discset.GetFieldValue("sum",y);
m_discset.Close();
long sum;
sum=y.m_lVal;
InsertDiscInfoItem(m_Dname,m_Dnum,m_star,m_writer,m_editor,m_company,sum);
}
}
void CCRDBSDlg::DiscMod() //修改影碟信息
{int nItem=m_listDisc.GetNextItem(-1,LVNI_SELECTED);
if(nItem==-1)
{AfxMessageBox("请选择要修改的影碟");
return;
}
CString strcustomer=m_listDisc.GetItemText(nItem,0);
if(!UpdateData())
return;
CString sql;
sql.Format("update Disc set Dnum='%s',star='%s',writer='%s',editor='%s',company='%s',sum='%s' where Dname='%s'", m_Dnum, m_star,m_writer,m_editor,m_company,m_sum,strcustomer);
TRACE(sql);
m_database.ExecuteSQL(sql);
}
void CCRDBSDlg::DiscDel() //删除影碟信息
{int nItem=m_listDisc.GetNextItem(-1,LVNI_SELECTED);
if(nItem==-1)
{AfxMessageBox("请选择要删除的影碟");
return;}
CString delcustomer=m_listDisc.GetItemText(nItem,0);
if(!UpdateData())
return;
CString sql,str;
str.Format("select * from rent where RDname='%s'",m_Dname);
m_rentset.m_pDatabase=&m_database;
m_rentset.Open(AFX_DB_USE_DEFAULT_TYPE,str);
if(!m_rentset.IsEOF())
{AfxMessageBox("该影碟有租出,不可删除");m_rentset.Close();return;
}
m_rentset.Close();
str.Format("delete from rent where RDname='%s'",delcustomer);
m_database.ExecuteSQL(str);
sql.Format("delete from Disc where Dname='%s'",delcustomer);
m_database.ExecuteSQL(sql); m_listDisc.DeleteItem(nItem);
m_listDisc.DeleteAllItems();
InitCtrlDiscData();
}
void CCRDBSDlg::customerserarch() //查询客户信息
{ UpdateData(TRUE);
m_customerset.m_pDatabase=&m_database;
strSql.Format("select * from customer where Cname='%s' or Cnum='%s'",m_customername,m_customernum);
m_customerset.Open(AFX_DB_USE_DEFAULT_TYPE,strSql);
if(m_customerset.IsEOF()){
AfxMessageBox("没有此客户的相关资料,请检查客户姓名或账号是否正确");
m_customername="";m_customerset.Close();}
else {
m_listCustomer.DeleteAllItems();
m_customerset.MoveFirst();
while(!m_customerset.IsEOF())
{
CString name,num,phone,address,id;
m_customerset.GetFieldValue("Cname",name);
m_customerset.GetFieldValue("Cnum",num);
m_customerset.GetFieldValue("phone",phone);
m_customerset.GetFieldValue("address",address);
InsertCustomerInfoItem(name,num,phone,address);
m_customerset.MoveNext();}
m_customerset.Close();}
}
void CCRDBSDlg::Discserarch() //查询影碟信息
{ UpdateData(TRUE);
m_discset.m_pDatabase=&m_database;
strSql.Format("select * from Disc where Dname='%s' or Dnum='%s'",m_Dname,m_Dnum);
m_discset.Open(AFX_DB_USE_DEFAULT_TYPE,strSql);
if(m_discset.IsEOF()){
AfxMessageBox("没有此影碟的相关资料,请检查影碟名称或序号是否正确");
m_Dname="";m_discset.Close();}
else {
m_listDisc.DeleteAllItems();
m_discset.MoveFirst();
while(!m_discset.IsEOF())
{
CString name,num,star,writer,editor,company;long sum;
m_discset.GetFieldValue("Dname",name);
m_discset.GetFieldValue("Dnum",num);
m_discset.GetFieldValue("star",star);
m_discset.GetFieldValue("writer",writer);
m_discset.GetFieldValue("editor",editor);
m_discset.GetFieldValue("company",company);
CDBVariant y;
m_discset.GetFieldValue("sum",y);
sum=y.m_lVal;
InsertDiscInfoItem(name,num,star,writer,editor,company,sum);
m_discset.MoveNext();}
m_discset.Close();}
}
void CCRDBSDlg::InsertlendInfoItem(CString RDname,CString date,CString Cnum)
{int nIndex= m_listlend.InsertItem(0,RDname);
m_listlend.SetItemText(nIndex,1,Cnum );
m_listlend.SetItemText(nIndex,2,date);
}
void CCRDBSDlg::InitCtrllendData() //显示未还影碟
{UpdateData(TRUE);
m_rentset.m_pDatabase=&m_database;
strSql.Format("select * from rent order by RDname");
m_rentset.Open(AFX_DB_USE_DEFAULT_TYPE,strSql);
if(m_rentset.IsEOF())
{ m_rentset.Close();return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -