www.gusucode.com > VC++酒店业务管理系统源程序代码-源码程序 > VC++酒店业务管理系统源程序代码-源码程序\code\代码\DlgViewDC.cpp
// DlgViewDC.cpp : implementation file // Download by http://www.NewXing.com #include "stdafx.h" #include "RMS.h" #include "DlgViewDC.h" #include "DataBinding.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif extern void _tmstr(CTime& tm, LPTSTR buf); ///////////////////////////////////////////////////////////////////////////// // CDlgViewDC dialog CDlgViewDC::CDlgViewDC(CWnd* pParent /*=NULL*/) : CDialog(CDlgViewDC::IDD, pParent) { //{{AFX_DATA_INIT(CDlgViewDC) m_date = 0; m_desk = _T(""); m_name = _T(""); m_desk2 = _T(""); m_no = _T(""); m_number = 0.0f; m_date2 = _T(""); //}}AFX_DATA_INIT } void CDlgViewDC::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDlgViewDC) DDX_Control(pDX, IDC_LIST_VDC, m_list); DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER_VDDATE, m_date); DDX_Text(pDX, IDC_EDIT_VDDESK, m_desk); DDX_Text(pDX, IDC_EDIT_VDCNAME, m_name); DDX_Text(pDX, IDC_EDIT_VDDESK2, m_desk2); DDX_Text(pDX, IDC_EDIT_VDNO, m_no); DDX_Text(pDX, IDC_EDIT_VDNUMBER, m_number); DDV_MinMaxFloat(pDX, m_number, 1.f, 10000.f); DDX_Text(pDX, IDC_EDIT_DATE, m_date2); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CDlgViewDC, CDialog) //{{AFX_MSG_MAP(CDlgViewDC) ON_BN_CLICKED(IDC_BTN_VDVD, OnBtnVdvd) ON_BN_CLICKED(IDC_BTN_VDUPD, OnBtnVdupd) ON_BN_CLICKED(IDC_BTN_VDDEL, OnBtnVddel) ON_NOTIFY(NM_CLICK, IDC_LIST_VDC, OnClickListVdc) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDlgViewDC message handlers BOOL CDlgViewDC::OnInitDialog() { CDialog::OnInitDialog(); m_list.InsertColumn(0,"桌号"); m_list.InsertColumn(1,"菜谱号"); m_list.InsertColumn(2,"菜名"); m_list.InsertColumn(3,"数量"); m_list.InsertColumn(4,"日期"); RECT rect; m_list.GetWindowRect(&rect); int wid = rect.right - rect.left; m_list.SetColumnWidth(0,wid/5); m_list.SetColumnWidth(1,wid/5); m_list.SetColumnWidth(2,wid/5); m_list.SetColumnWidth(3,wid/5); m_list.SetColumnWidth(4,wid/5); m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT); m_number = 1.0f; m_date = CTime::GetCurrentTime(); UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CDlgViewDC::RefreshData() { char date[128]; _tmstr(m_date, date); m_list.DeleteAllItems(); m_list.SetRedraw(FALSE); _RecordsetPtr pRst = NULL; IADORecordBinding *picRs = NULL; //Interface Pointer declared.(VC++ Extensions) CDCRs rs; try { CString sql_; sql_.Format("SELECT * FROM DC WHERE dc_desk='%s' AND dc_date='%s'", m_desk, date); _bstr_t strSQL = sql_; TESTHR(pRst.CreateInstance(__uuidof(Recordset))); pRst = m_DBCnt->Execute(strSQL, NULL, adCmdText); TESTHR(pRst->QueryInterface(__uuidof(IADORecordBinding),(LPVOID*)&picRs)); TESTHR(picRs->BindToRecordset(&rs)); int i = 0; char buf[128]; while (!pRst->adoEOF) { m_list.InsertItem(0, rs.m_sz_desk); m_list.SetItemText(i, 1, rs.m_sz_no); m_list.SetItemText(i, 2, rs.m_sz_name); sprintf(buf, "%f", rs.m_f_number); m_list.SetItemText(i, 3, buf); m_list.SetItemText(i, 4, rs.m_sz_date); pRst->MoveNext(); } picRs->Release(); pRst->Close(); } catch(_com_error& e) { AfxMessageBox(e.ErrorMessage()); m_list.SetRedraw(TRUE); return; } m_list.SetRedraw(TRUE); } void CDlgViewDC::OnBtnVdvd() { if (!UpdateData()) return; if (m_desk.GetLength()==0) { MessageBox("请输入桌号!"); return; } RefreshData(); } void CDlgViewDC::OnBtnVdupd() { if (!UpdateData()) return; CString sql_; sql_.Format("UPDATE DC SET DC_NUMBER='%f' " "WHERE DC_DESK='%s' AND " "CP_NO='%s' AND " "DC_DATE='%s'", m_number, m_desk2, m_no, m_date2); _bstr_t sql = sql_;//"TRUNCATE TABLE DC"; try { m_DBCnt->Execute(sql,NULL,adCmdText); } catch(_com_error& e) { AfxMessageBox(e.ErrorMessage()); return; } MessageBox("完成操作!"); UpdateData(); RefreshData(); } void CDlgViewDC::OnBtnVddel() { if (!UpdateData()) return; CString sql_; sql_.Format("DELETE FROM DC " "WHERE DC_DESK='%s' AND " "CP_NO='%s' AND " "DC_DATE='%s'", m_desk2, m_no, m_date2); _bstr_t sql = sql_; try { m_DBCnt->Execute(sql,NULL,adCmdText); } catch(_com_error& e) { AfxMessageBox(e.ErrorMessage()); return; } MessageBox("完成操作!"); UpdateData(); RefreshData(); } void CDlgViewDC::OnClickListVdc(NMHDR* pNMHDR, LRESULT* pResult) { int i = m_list.GetSelectionMark(); m_desk2 = m_list.GetItemText(i,0); m_no = m_list.GetItemText(i,1); m_name = m_list.GetItemText(i,2); m_number = (float)atof(m_list.GetItemText(i,3)); m_date2 = m_list.GetItemText(i,4); UpdateData(FALSE); *pResult = 0; }