湖南农业大学 课程设计论文
UpdateData(TRUE); CString str,sql; str.Format(\ CString str1; int temp=0; str1.Format(\ sql = \* FROM OrderInfo WHERE DeskNum = \and FoodCheck = \ m_pRecordset_Order.CreateInstance(\ m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch
*)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbFood.SetRefDataSource(NULL); m_dbFood.SetRefDataSource((LPUNKNOWN)m_pRecordset_Order); m_dbFood.SetColumnHeaders(2) ; m_dbFood.Refresh(); }
3.2结账模块设计
结账模块的功能是员工输入桌台代码进行结账、选择结账方式(包括现金结账、信用卡结账、支票结账、签单等)、自动找零。结账模块如图7所示:
图7 结账模块
为对话框类添加3个数据集对象,代码如下:
- 21 -
湖南农业大学 课程设计论文
_RecordsetPtr m_pRecordset_Paymode; _RecordsetPtr m_pRecordset_Order; _RecordsetPtr m_pRecordset_Desk; 对话框类的各成员函数的代码如下:
CPayDlg::CPayDlg(CWnd* pParent /*=NULL*/) : CDialog(CPayDlg::IDD, pParent) { //{{AFX_DATA_INIT(CPayDlg) m_strPaymode = _T(\ m_strPayUserName = _T(\ m_nPayDeskNumber = 0; m_nPayTotalPrice = 0; m_nPayRealPrice = 0; m_nPayRePrice = 0; m_timePay = COleDateTime::GetCurrentTime(); //}}AFX_DATA_INIT }
BOOL CPayDlg::OnInitDialog() //对话框初始化函数 { CDialog::OnInitDialog(); m_strPayUserName=theApp.m_name; CString sql; sql=\ m_pRecordset_Paymode.CreateInstance(\ m_pRecordset_Paymode->Open((_variant_t)sql,_variant_t((IDispatch
*)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Paymode->GetRecordCount()!=0) { while(!m_pRecordset_Paymode->adoEOF) { m_coPaymode.AddString((LPCTSTR)(_bstr_t)m_pRecordset_Paymode->GetCollect(\E\ m_pRecordset_Paymode->MoveNext(); } m_pRecordset_Paymode->Close(); m_coPaymode.SetCurSel(0); } UpdateData(FALSE); return TRUE; }
- 22 -
湖南农业大学 课程设计论文
void CPayDlg::OnUpdatePayDeskNumber()
//自动将对应桌号的点菜信息以及消费情况显示在桌面上 { UpdateData(TRUE); CString sql,str,str1; int temp=0; str.Format(\ str1.Format(\ sql=\ m_pRecordset_Desk.CreateInstance(\ m_pRecordset_Desk->Open((_variant_t)sql,_variant_t((IDispatch
*)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Desk->GetRecordCount()!=0) { m_nPayTotalPrice=m_pRecordset_Desk->GetCollect(\ } m_pRecordset_Desk->Close(); sql=\FROM OrderInfo WHERE DeskNum=\\ m_pRecordset_Order.CreateInstance(\ m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch
*)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbPay.SetRefDataSource(NULL); m_dbPay.SetRefDataSource((LPUNKNOWN)m_pRecordset_Order); m_dbPay.SetColumnHeaders(1); m_dbPay.Refresh(); UpdateData(FALSE); }
void CPayDlg::OnUpdatePayRealprice() //根据实收金额自动计算找零金额 { UpdateData(TRUE); m_nPayRePrice=m_nPayRealPrice-m_nPayTotalPrice; UpdateData(FALSE); }
void CPayDlg::OnOK() //确定按钮消息函数,将数据写回DESK表和ORDER表,结账完成 { UpdateData(TRUE); if(!m_strPaymode.IsEmpty()&&m_nPayRealPrice!=0) {
- 23 -
湖南农业大学 课程设计论文
CString sql,str,str1; int temp=0; str.Format(\ str1.Format(\ sql=\* FROM DeskInfo WHERE DeskNum=\AND DeskCheck=\ m_pRecordset_Desk.CreateInstance(\ m_pRecordset_Desk->Open((_variant_t)sql,_variant_t((IDispatch
*)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Desk->GetRecordCount!=0) { temp=1; str.Format(\ m_pRecordset_Desk->PutCollect(\ int selmode; selmode=m_coPaymode.GetCurSel(); m_coPaymode.GetLBText(selmode,m_strPaymode); m_pRecordset_Desk->PutCollect(\ CString paytime; CTime now=CTime::GetCurrentTime(); paytime=now.Format(_T(\ m_pRecordset_Desk->PutCollect(\ m_pRecordset_Desk->PutCollect(\ } m_pRecordset_Desk->Update(); m_pRecordset_Desk->Close(); str.Format(\ sql=\* FROM OrderInfo WHERE DeskNum=\AND FoodCheck=\ m_pRecordset_Order.CreateInstance(\ m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch
*)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Order->GetRecordCount()!=0) { temp=1; str.Format(\ while(!m_pRecordset_Order->adoEOF) { m_pRecordset_Order->PutCollect(\ m_pRecordset_Order->Update(); m_pRecordset_Order->MoveNext();
- 24 -
湖南农业大学 课程设计论文
}
} }
m_pRecordset_Order->Close();
str.Format(\ str+=\号桌已结账\ AfxMessageBox(str); CDialog::OnOK(); } else { AfxMessageBox(\请输入完整信息\}
到此,结账模块已经设计完成。
3.3交接班模块设计
交接班模块的功能是管理员统计当班数据(包括桌台数、人民币结账金额以及总金额等),为下班操作做准备。交接班模块如图8所示:
图8 交接班模块 为对话框类添加两个数据集对象,代码如下: _RecordsetPtr m_pRecordset_Off; _RecordsetPtr m_pRecordset_Desk;
对话框类的各成员函数的代码如下:
COffdutyDlg::COffdutyDlg(CWnd* pParent /*=NULL*/) : CDialog(COffdutyDlg::IDD, pParent)
- 25 -