📄 dlgviewdc.cpp
字号:
// DlgViewDC.cpp : implementation file
//
#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;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -