📄 jinhuodan.cpp
字号:
// jinhuodan.cpp : implementation file
//
#include "stdafx.h"
#include "glxt.h"
#include "jinhuodan.h"
#include "fpmxbSet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// jinhuodan dialog
jinhuodan::jinhuodan(CWnd* pParent /*=NULL*/)
: CDialog(jinhuodan::IDD, pParent)
{
//{{AFX_DATA_INIT(jinhuodan)
m_Tickno = _T("");
m_Gno = _T("");
m_Gprice = 0.0;
m_subtotal = 0.0;
m_Tcount = 0;
//}}AFX_DATA_INIT
}
void jinhuodan::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(jinhuodan)
DDX_Control(pDX, IDC_LIST1, m_list);
DDX_Text(pDX, IDC_EDIT1, m_Tickno);
DDX_Text(pDX, IDC_EDIT2, m_Gno);
DDX_Text(pDX, IDC_EDIT4, m_Gprice);
DDX_Text(pDX, IDC_EDIT5, m_subtotal);
DDX_Text(pDX, IDC_EDIT3, m_Tcount);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(jinhuodan, CDialog)
//{{AFX_MSG_MAP(jinhuodan)
ON_BN_CLICKED(IDC_BUTTON1, OnButtonadd)
ON_BN_CLICKED(IDC_BUTTON2, OnButtonshanchu)
ON_BN_CLICKED(IDC_BUTTON3, OnButtonupdate)
ON_BN_CLICKED(IDC_BUTTON4, OnButtonxianshi)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// jinhuodan message handlers
void jinhuodan::OnButtonadd()
{
// TODO: Add your control notification handler code here
if(!m_rs.IsOpen())
m_rs.Open();
try
{
m_rs.AddNew();
UpdateData(TRUE);
m_rs.m_Tickno=m_Tickno;
m_rs.m_Gno=m_Gno;
m_rs.m_Tcount=m_Tcount;
m_rs.m_Gprice=m_Gprice;
m_rs.m_subtotal=m_subtotal;
m_rs.Update();
}
catch(CDBException * e)
{
AfxMessageBox(e->m_strError,MB_ICONEXCLAMATION);
e->Delete();
//m_rs.MoveFirst();
m_Tickno=m_rs.m_Tickno;
m_Gno=m_rs.m_Gno;
m_Tcount=m_rs.m_Tcount;
m_Gprice=m_rs.m_Gprice;
m_subtotal=m_rs.m_subtotal;
UpdateData(FALSE);
}
try
{
m_rs.Requery();
}
catch(CDBException * e)
{
AfxMessageBox("Can not Requery!",MB_ICONEXCLAMATION);
e->Delete();
}
Refresh();
m_rs.Close();
}
void jinhuodan::OnButtonshanchu()
{
// TODO: Add your control notification handler code here
if(!m_rs.IsOpen())
m_rs.Open();
if(m_rs.IsEOF()||m_rs.IsBOF())
return;
try
{
m_rs.Delete();
}
catch(CDBException * e)
{
AfxMessageBox(e->m_strError,MB_ICONEXCLAMATION);
e->Delete();
return;
}
try
{
m_rs.Requery();
}
catch(CDBException * e)
{
AfxMessageBox("Can not Requery!",MB_ICONEXCLAMATION);
e->Delete();
}
m_rs.MoveFirst();
m_Tickno=m_rs.m_Tickno;
m_Gno=m_rs.m_Gno;
m_Tcount=m_rs.m_Tcount;
m_Gprice=m_rs.m_Gprice;
m_subtotal=m_rs.m_subtotal;
UpdateData(FALSE);
Refresh();
m_rs.Close();
}
void jinhuodan::OnButtonupdate()
{
// TODO: Add your control notification handler code here
if(!m_rs.IsOpen())
m_rs.Open();
CString cstickno,csgno;
int tcount;
float dgprice,dsubtotal;
while(m_rs.m_Tickno!=m_Tickno)
{
m_rs.MoveNext();
}
cstickno=m_rs.m_Tickno;
csgno=m_rs.m_Gno;
tcount=m_rs.m_Tcount;
dgprice=m_rs.m_Gprice;
dsubtotal=m_rs.m_subtotal;
try
{
m_rs.Edit();
UpdateData(TRUE);
m_rs.m_Tickno=m_Tickno;
m_rs.m_Gno=m_Gno;
m_rs.m_Tcount=m_Tcount;
m_rs.m_Gprice=m_Gprice;
m_rs.m_subtotal=m_subtotal;
m_rs.Update();
}
catch(CDBException * e)
{
AfxMessageBox(e->m_strError,MB_ICONEXCLAMATION);
e->Delete();
m_Tickno=cstickno;
m_Gno=csgno;
m_Tcount=tcount;
m_Gprice=dgprice;
m_subtotal=dsubtotal;
UpdateData(FALSE);
}
Refresh() ;
m_rs.Close();
}
void jinhuodan::OnButtonxianshi()
{
// TODO: Add your control notification handler code here
if(!m_rs.IsOpen())
m_rs.Open();
m_list.DeleteAllItems();
int n = 0 ;
while(!m_rs.IsEOF())
{
m_list.InsertItem(n,"");
CString s;
s.Format("%s",m_rs.m_Tickno);
m_list.SetItemText(n,0,s);
s.Format("%s",m_rs.m_Gno);
m_list.SetItemText(n,1,s);
s.Format("%s",m_rs.m_Tcount);
m_list.SetItemText(n,2,s);
s.Format("%.1f",m_rs.m_Gprice);
m_list.SetItemText(n,3,s);
s.Format("%.1f",m_rs.m_subtotal);
m_list.SetItemText(n,4,s);
m_rs.MoveNext();
n++;
}
m_rs.Close();
}
void jinhuodan::Refresh()
{
if(!m_rs.IsOpen())
m_rs.Open();
m_list.DeleteAllItems();
int n = 0 ;
m_rs.MoveFirst();
while(!m_rs.IsEOF())
{
m_list.InsertItem(n,"");
CString s;
s.Format("%s",m_rs.m_Tickno);
m_list.SetItemText(n,0,s);
s.Format("%s",m_rs.m_Gno);
m_list.SetItemText(n,1,s);
s.Format("%s",m_rs.m_Tcount);
m_list.SetItemText(n,2,s);
s.Format("%.1f",m_rs.m_Gprice);
m_list.SetItemText(n,3,s);
s.Format("%.1f",m_rs.m_subtotal);
m_list.SetItemText(n,4,s);
m_rs.MoveNext();
n++;
}
}
void jinhuodan::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
int index=m_list.GetNextItem(-1,LVNI_SELECTED);
if(index!=-1)
{
m_Tickno=m_list.GetItemText(index,0);
m_Gno=m_list.GetItemText(index,1);
int(m_Tcount)=atof(m_list.GetItemText(index,2));
double(m_Gprice)=atof(m_list.GetItemText(index,3));
double(m_subtotal)=atof(m_list.GetItemText(index,4));
UpdateData(FALSE);
*pResult = 0;
}
m_db.Open(_T("gshDSN"));
m_rs.m_pDatabase=&m_db;
m_rs.Open();
m_Tickno=m_rs.m_Tickno;
m_Gno=m_rs.m_Gno;
m_Tcount=m_rs.m_Tcount;
m_Gprice=m_rs.m_Gprice;
m_subtotal=m_rs.m_subtotal;
UpdateData(FALSE);
*pResult = 0;
}
BOOL jinhuodan::OnInitDialog()
{
CDialog::OnInitDialog();
m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT );
m_list.InsertColumn(0,"发票号",LVCFMT_LEFT,200);
m_list.InsertColumn(1,"商品编号",LVCFMT_LEFT,100);
m_list.InsertColumn(2,"数量",LVCFMT_LEFT,80);
m_list.InsertColumn(3,"单价",LVCFMT_LEFT,80);
m_list.InsertColumn(4,"小计",LVCFMT_LEFT,200);
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -