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

📄 crdbsdlg.cpp

📁 VC++与access实现的音像商店管理系统 VC++与access实现的音像商店管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -