📄 dlgbillmanager.cpp
字号:
// DlgBillManager.cpp : implementation file
//
#include "stdafx.h"
#include "Lhj_cyglxt.h"
#include "DlgBillManager.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgBillManager dialog
extern CDatabase m_db;
CDlgBillManager::CDlgBillManager(CWnd* pParent /*=NULL*/)
: CDialog(CDlgBillManager::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgBillManager)
m_sum = _T("");
m_deletenum = _T("");
m_billnum = _T("");
//}}AFX_DATA_INIT
}
void CDlgBillManager::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgBillManager)
DDX_Control(pDX, IDC_LIST_billlist, m_billlist);
DDX_Text(pDX, IDC_EDIT_sum, m_sum);
DDX_Text(pDX, IDC_EDIT_deletenum, m_deletenum);
DDX_Text(pDX, IDC_EDIT_billnum, m_billnum);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgBillManager, CDialog)
//{{AFX_MSG_MAP(CDlgBillManager)
ON_NOTIFY(NM_CLICK, IDC_LIST_billlist, OnClickLISTbilllist)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgBillManager message handlers
BOOL CDlgBillManager::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
if(!UpdateData())
return 0;
if(!m_db.IsOpen())
{
MessageBox("数据库未打开");
return 0;
}
TRY
{
CString c;
DWORD dwExStyle = LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES |
LVS_EX_HEADERDRAGDROP | LVS_EX_ONECLICKACTIVATE | LVS_EX_UNDERLINEHOT;
m_billlist.SetExtendedStyle(dwExStyle);
m_billlist.InsertColumn(0,"账单号",LVCFMT_CENTER,80);
m_billlist.InsertColumn(1,"会员卡号",LVCFMT_CENTER,80);
m_billlist.InsertColumn(2,"人数",LVCFMT_CENTER,50);
m_billlist.InsertColumn(3,"桌号",LVCFMT_CENTER,50);
m_billlist.InsertColumn(4,"结帐人员",LVCFMT_CENTER,80);
m_billlist.InsertColumn(5,"支付状态",LVCFMT_CENTER,80);
m_billlist.InsertColumn(6,"开始时间",LVCFMT_CENTER,150);
m_billlist.InsertColumn(7,"结束时间",LVCFMT_CENTER,150);
m_billlist.InsertColumn(8,"总消费",LVCFMT_CENTER,60);
m_billlist.InsertColumn(9,"实收",LVCFMT_CENTER,60);
m_billlist.InsertColumn(10,"找回",LVCFMT_CENTER,60);
initbilllist();
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox ("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgBillManager::initbilllist()
{
CRecordset rs(&m_db);
CString sql;
sql.Format("select bill_id,bill.vip_card,person_num,table_no,get_money_person,pay_state,begin_time,end_time,total_price,receive,change_back from bill");
rs.Open(CRecordset::dynaset, sql);
CString billid,cardid,personnum,tableno,username,paystate,begintime,endtime,totalprice,receive,changeback;
int i=0;//账单数
float sum=0.0;
int temp; CDBVariant var;
m_billlist.DeleteAllItems();//去除所以记录
while (!rs.IsEOF())
{ rs.GetFieldValue((short)0, var, SQL_C_SLONG);// billid,
if (var.m_dwType != DBVT_NULL)
temp= var.m_lVal;
billid.Format("%d",temp);
var.Clear();
m_billlist.InsertItem(i,billid);
rs.GetFieldValue(1,cardid);
m_billlist.SetItemText(i,1,cardid);// cardid,
rs.GetFieldValue((short)2, var, SQL_C_SLONG);// personnum
if (var.m_dwType != DBVT_NULL)
temp= var.m_lVal;
personnum.Format("%d",temp);
var.Clear();
m_billlist.SetItemText(i,2,personnum);
rs.GetFieldValue((short)3, var, SQL_C_SLONG);//,tableno
if (var.m_dwType != DBVT_NULL)
temp= var.m_lVal;
tableno.Format("%d",temp);
var.Clear();
m_billlist.SetItemText(i,3,tableno);
rs.GetFieldValue(4,username);//,username
m_billlist.SetItemText(i,4,username);
rs.GetFieldValue(5,paystate);//,paystate
m_billlist.SetItemText(i,5,paystate);
rs.GetFieldValue(6,begintime);//,begintime,
m_billlist.SetItemText(i,6,begintime);
rs.GetFieldValue(7,endtime);//endtime
m_billlist.SetItemText(i,7,endtime);
rs.GetFieldValue(8,totalprice);//totalprice
m_billlist.SetItemText(i,8,totalprice);
rs.GetFieldValue(9,receive);//receive
m_billlist.SetItemText(i,9,receive);
rs.GetFieldValue(10,changeback);//,,,changeback;
m_billlist.SetItemText(i,10,changeback);
sum=sum+atof(totalprice);
rs.MoveNext();
i++;
}
m_billnum.Format("%d",i);m_sum.Format("%.3f",sum);
rs.Close();
UpdateData(FALSE);
}
void CDlgBillManager::OnClickLISTbilllist(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
//得到当前选中的行
POSITION pos = m_billlist.GetFirstSelectedItemPosition();
//如果选中一行
CString billid,sql;
if(pos)
{
int nItem = m_billlist.GetNextSelectedItem(pos);
billid=m_billlist.GetItemText(nItem,0);
}
TRY
{
if(AfxMessageBox("确定删除账单吗?",MB_YESNO)==IDNO)
{
return;
}
int temp;temp=atoi(billid);
sql.Format("delete from bill where bill_id=%d",temp);
TRACE(sql);
m_db.ExecuteSQL(sql);
AfxMessageBox("删除成功");
initbilllist();
UpdateData(FALSE);
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox ("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
UpdateData(FALSE);
*pResult = 0;
}
void CDlgBillManager::OnOK()
{
// TODO: Add extra validation here
TRY
{
UpdateData(TRUE);
if(AfxMessageBox("确定成批删除账单吗?一旦删除大量资料将无法找回",MB_YESNO)==IDNO)
{
return;
}
int temp;temp=atoi(m_deletenum);
CString sql;
sql.Format("delete from bill where bill_id=%d",temp);
TRACE(sql);
m_db.ExecuteSQL(sql);
AfxMessageBox("删除成功");
initbilllist();
UpdateData(FALSE);
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox ("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
UpdateData(FALSE);
//CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -