⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 finacedlg.cpp

📁 超市管理系统 实现超市系统物流
💻 CPP
字号:
// FinaceDlg.cpp : implementation file
//

#include "stdafx.h"
#include "SuperMarket.h"
#include "FinaceDlg.h"
#include "afxdb.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFinaceDlg dialog


CFinaceDlg::CFinaceDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CFinaceDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CFinaceDlg)
	m_month = _T("");
	m_investment = 0.0f;
	m_stock_money = 0.0f;
	//}}AFX_DATA_INIT
}


void CFinaceDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFinaceDlg)
	DDX_Control(pDX, IDC_LIST1, m_list);
	DDX_Text(pDX, IDC_EDIT1, m_month);
	DDX_Text(pDX, IDC_EDIT2, m_investment);
	DDX_Text(pDX, IDC_EDIT5, m_stock_money);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFinaceDlg, CDialog)
	//{{AFX_MSG_MAP(CFinaceDlg)
	ON_BN_CLICKED(IDC_UPDATE, OnUpdate)
	ON_BN_CLICKED(IDC_ACCOUNT, OnAccount)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFinaceDlg message handlers

void CFinaceDlg::OnUpdate() //更新
{
	// TODO: Add your control notification handler code here
     UpdateData(); 
	 CDatabase dbTemp;
	 CRecordset  rs( &dbTemp);
	 CString strSQL; 
	 CString str0,str1;
	 float invest,stock;
	 
	 dbTemp.OpenEx("Driver={Microsoft Access Driver (*.mdb)};DBQ=超市管理数据库.mdb;"); 
	 rs.Open(AFX_DB_USE_DEFAULT_TYPE,"select * From 财务报表 where month='"+m_month+"'");
	 if(!rs.IsEOF())
	 { 
		 rs.GetFieldValue((short)1,str0);   
	     rs.GetFieldValue((short)5,str1);
		 invest=atof(str0);
		 stock=atof(str1);
		 invest=invest+m_investment;
		 stock=stock+m_stock_money;
		 str0.Format("%.2f",invest);
		 str1.Format("%.2f",stock);	
		 strSQL="update 财务报表 set investment='"+str0+"' where month='"+m_month+"'"; 
	     dbTemp.ExecuteSQL(strSQL);
         strSQL="update 财务报表 set stock='"+str1+"' where month='"+m_month+"'"; 
	     dbTemp.ExecuteSQL(strSQL);
	     rs.Close();    
	 }
	 else
	 {
		 str0.Format("%.2f",m_investment);
		 str1.Format("%.2f",m_stock_money);
		 strSQL="insert into 财务报表 values('"+m_month+"','"+str0+"','0.00','0.00','0.00','"+str1+"')"; 
		 dbTemp.ExecuteSQL(strSQL);	 
	     rs.Close();
	 }
	 MessageBox("更新成功!");
	m_month = _T("");
	m_investment = 0.0f;
	m_stock_money = 0.0f;
	UpdateData(false);
}
int CFinaceDlg::Cet_Month(CString str)
{
	int year,month,day;
	sscanf(str,"%d-%d-%d",&year,&month,&day);
	return month;
}


void CFinaceDlg::OnAccount()  //结算
{
	// TODO: Add your control notification handler code here
     CTime time;
	 UpdateData(); 
	 CDatabase dbTemp;
	 CRecordset  rs( &dbTemp);
	 CString str0,str1,str2,str3,str4,str5;
	 CString strSQL;
	 int month;
	 float money,totalmoney=0;
	 m_time = time.GetCurrentTime();
	 m_time.GetMonth();
	 month=atoi(m_month);
	 dbTemp.OpenEx("Driver={Microsoft Access Driver (*.mdb)};DBQ=超市管理数据库.mdb;");
	 
	 if(month<m_time.GetMonth())  //如果是已结算过的月份,输出财务报表
	 {
		 rs.Open(AFX_DB_USE_DEFAULT_TYPE,"select * From 财务报表 where month='"+m_month+"'");
         rs.GetFieldValue((short)0,str0);   
	     rs.GetFieldValue((short)1,str1);
		 rs.GetFieldValue((short)2,str2);   
	     rs.GetFieldValue((short)3,str3);
		 rs.GetFieldValue((short)4,str4);   
	     rs.GetFieldValue((short)5,str5);
		 m_list.InsertItem   (addtime,str0);//写第一列;   
		 m_list.SetItemText   (addtime,1,str1);//第二列;   
		 m_list.SetItemText   (addtime,2,str2);//第三列;   
		 m_list.SetItemText   (addtime,3,str3);//第四列;  
		 m_list.SetItemText   (addtime,4,str4);//第五列; 
		 m_list.SetItemText   (addtime,5,str5);//第五列;
		 addtime++;
		 UpdateData(false);
		 rs.Close();				 
	 }
	 else if(month==m_time.GetMonth()) //如果是当前月份,计算财务报表并输出
	 {
		 rs.Open(AFX_DB_USE_DEFAULT_TYPE,"select * From 工资表");
		 while(!rs.IsEOF())   //计算月工资发放额
		 {
            rs.GetFieldValue((short)2,str2);
			money=atof(str2);
			totalmoney=totalmoney+money;
			rs.MoveNext(); 			
		 }
		 str2.Format("%.2f",totalmoney);
		 strSQL="update 财务报表 set totalsalary='"+str2+"' where month='"+m_month+"'"; 
	     dbTemp.ExecuteSQL(strSQL);
		 totalmoney=0;
		 rs.Close();

		 rs.Open(AFX_DB_USE_DEFAULT_TYPE,"select * From 销售表");  //计算月销售总额
		 while(!rs.IsEOF())
		 {
			 rs.GetFieldValue((short)2,str2);
			 month = Cet_Month(str2);
			 if(month==m_time.GetMonth())
			 {
				 rs.GetFieldValue((short)1,str2);
				 money=atof(str2);
			     totalmoney=totalmoney+money;
			 }
			 rs.MoveNext();
			 str2.Format("%.2f",totalmoney);
		     strSQL="update 财务报表 set sale='"+str2+"' where month='"+m_month+"'"; 
	         dbTemp.ExecuteSQL(strSQL);
		 }
		 totalmoney=0;
		 rs.Close();
		 
		 rs.Open(AFX_DB_USE_DEFAULT_TYPE,"select * From 退货表");  //计算退货总额
		 while(!rs.IsEOF())
		 {
			 rs.GetFieldValue((short)5,str2);
			 month = Cet_Month(str2);
			 if(month==m_time.GetMonth())
			 {
				 rs.GetFieldValue((short)4,str2);
				 money=atof(str2);
			     totalmoney=totalmoney+money;
			 }
			 rs.MoveNext();
			 str2.Format("%.2f",totalmoney);
		     strSQL="update 财务报表 set refundent='"+str2+"' where month='"+m_month+"'"; 
	         dbTemp.ExecuteSQL(strSQL);
		 }
		 rs.Close();

		 rs.Open(AFX_DB_USE_DEFAULT_TYPE,"select * From 财务报表 where month='"+m_month+"'");
         rs.GetFieldValue((short)0,str0);   
	     rs.GetFieldValue((short)1,str1);
		 rs.GetFieldValue((short)2,str2);   
	     rs.GetFieldValue((short)3,str3);
		 rs.GetFieldValue((short)4,str4);   
	     rs.GetFieldValue((short)5,str5);
		 m_list.InsertItem   (addtime,str0);//写第一列;   
		 m_list.SetItemText   (addtime,1,str1);//第二列;   
		 m_list.SetItemText   (addtime,2,str2);//第三列;   
		 m_list.SetItemText   (addtime,3,str3);//第四列;  
		 m_list.SetItemText   (addtime,4,str4);//第五列; 
		 m_list.SetItemText   (addtime,5,str5);//第五列;
		 addtime++;
		 UpdateData(false);
		 rs.Close();				 
	 }
	 else    //如果是还未到的月份,输出不能结算
	 {
		 MessageBox("还未到该月份,不能结算");		 
	 }
	m_month = _T("");
	m_investment = 0.0f;
	m_stock_money = 0.0f;
	UpdateData(false);
}

BOOL CFinaceDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	addtime=0;
	
	// TODO: Add extra initialization here
	m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_ONECLICKACTIVATE);
	m_list.InsertColumn(0,"月份",LVCFMT_LEFT,80);
	m_list.InsertColumn(1,"经理投资",LVCFMT_LEFT,100);
	m_list.InsertColumn(2,"工资额",LVCFMT_LEFT,100);
	m_list.InsertColumn(3,"销售额",LVCFMT_LEFT,100);
	m_list.InsertColumn(4,"退款额",LVCFMT_LEFT,100);
    m_list.InsertColumn(5,"采购金",LVCFMT_LEFT,100);
	 	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -