FinaceDlg.cpp
上传用户:tyjx315
上传日期:2015-01-18
资源大小:1685k
文件大小:7k
源码类别:

百货/超市行业

开发平台:

Visual C++

  1. // FinaceDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "SuperMarket.h"
  5. #include "FinaceDlg.h"
  6. #include "afxdb.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CFinaceDlg dialog
  14. CFinaceDlg::CFinaceDlg(CWnd* pParent /*=NULL*/)
  15. : CDialog(CFinaceDlg::IDD, pParent)
  16. {
  17. //{{AFX_DATA_INIT(CFinaceDlg)
  18. m_month = _T("");
  19. m_investment = 0.0f;
  20. m_stock_money = 0.0f;
  21. //}}AFX_DATA_INIT
  22. }
  23. void CFinaceDlg::DoDataExchange(CDataExchange* pDX)
  24. {
  25. CDialog::DoDataExchange(pDX);
  26. //{{AFX_DATA_MAP(CFinaceDlg)
  27. DDX_Control(pDX, IDC_LIST1, m_list);
  28. DDX_Text(pDX, IDC_EDIT1, m_month);
  29. DDX_Text(pDX, IDC_EDIT2, m_investment);
  30. DDX_Text(pDX, IDC_EDIT5, m_stock_money);
  31. //}}AFX_DATA_MAP
  32. }
  33. BEGIN_MESSAGE_MAP(CFinaceDlg, CDialog)
  34. //{{AFX_MSG_MAP(CFinaceDlg)
  35. ON_BN_CLICKED(IDC_UPDATE, OnUpdate)
  36. ON_BN_CLICKED(IDC_ACCOUNT, OnAccount)
  37. //}}AFX_MSG_MAP
  38. END_MESSAGE_MAP()
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CFinaceDlg message handlers
  41. void CFinaceDlg::OnUpdate() //更新
  42. {
  43. // TODO: Add your control notification handler code here
  44.      UpdateData(); 
  45.  CDatabase dbTemp;
  46.  CRecordset  rs( &dbTemp);
  47.  CString strSQL; 
  48.  CString str0,str1;
  49.  float invest,stock;
  50.  
  51.  dbTemp.OpenEx("Driver={Microsoft Access Driver (*.mdb)};DBQ=超市管理数据库.mdb;"); 
  52.  rs.Open(AFX_DB_USE_DEFAULT_TYPE,"select * From 财务报表 where month='"+m_month+"'");
  53.  if(!rs.IsEOF())
  54.  { 
  55.  rs.GetFieldValue((short)1,str0);   
  56.      rs.GetFieldValue((short)5,str1);
  57.  invest=atof(str0);
  58.  stock=atof(str1);
  59.  invest=invest+m_investment;
  60.  stock=stock+m_stock_money;
  61.  str0.Format("%.2f",invest);
  62.  str1.Format("%.2f",stock);
  63.  strSQL="update 财务报表 set investment='"+str0+"' where month='"+m_month+"'"; 
  64.      dbTemp.ExecuteSQL(strSQL);
  65.          strSQL="update 财务报表 set stock='"+str1+"' where month='"+m_month+"'"; 
  66.      dbTemp.ExecuteSQL(strSQL);
  67.      rs.Close();    
  68.  }
  69.  else
  70.  {
  71.  str0.Format("%.2f",m_investment);
  72.  str1.Format("%.2f",m_stock_money);
  73.  strSQL="insert into 财务报表 values('"+m_month+"','"+str0+"','0.00','0.00','0.00','"+str1+"')"; 
  74.  dbTemp.ExecuteSQL(strSQL);  
  75.      rs.Close();
  76.  }
  77.  MessageBox("更新成功!");
  78. m_month = _T("");
  79. m_investment = 0.0f;
  80. m_stock_money = 0.0f;
  81. UpdateData(false);
  82. }
  83. int CFinaceDlg::Cet_Month(CString str)
  84. {
  85. int year,month,day;
  86. sscanf(str,"%d-%d-%d",&year,&month,&day);
  87. return month;
  88. }
  89. void CFinaceDlg::OnAccount()  //结算
  90. {
  91. // TODO: Add your control notification handler code here
  92.      CTime time;
  93.  UpdateData(); 
  94.  CDatabase dbTemp;
  95.  CRecordset  rs( &dbTemp);
  96.  CString str0,str1,str2,str3,str4,str5;
  97.  CString strSQL;
  98.  int month;
  99.  float money,totalmoney=0;
  100.  m_time = time.GetCurrentTime();
  101.  m_time.GetMonth();
  102.  month=atoi(m_month);
  103.  dbTemp.OpenEx("Driver={Microsoft Access Driver (*.mdb)};DBQ=超市管理数据库.mdb;");
  104.  
  105.  if(month<m_time.GetMonth())  //如果是已结算过的月份,输出财务报表
  106.  {
  107.  rs.Open(AFX_DB_USE_DEFAULT_TYPE,"select * From 财务报表 where month='"+m_month+"'");
  108.          rs.GetFieldValue((short)0,str0);   
  109.      rs.GetFieldValue((short)1,str1);
  110.  rs.GetFieldValue((short)2,str2);   
  111.      rs.GetFieldValue((short)3,str3);
  112.  rs.GetFieldValue((short)4,str4);   
  113.      rs.GetFieldValue((short)5,str5);
  114.  m_list.InsertItem   (addtime,str0);//写第一列;   
  115.  m_list.SetItemText   (addtime,1,str1);//第二列;   
  116.  m_list.SetItemText   (addtime,2,str2);//第三列;   
  117.  m_list.SetItemText   (addtime,3,str3);//第四列;  
  118.  m_list.SetItemText   (addtime,4,str4);//第五列; 
  119.  m_list.SetItemText   (addtime,5,str5);//第五列;
  120.  addtime++;
  121.  UpdateData(false);
  122.  rs.Close();  
  123.  }
  124.  else if(month==m_time.GetMonth()) //如果是当前月份,计算财务报表并输出
  125.  {
  126.  rs.Open(AFX_DB_USE_DEFAULT_TYPE,"select * From 工资表");
  127.  while(!rs.IsEOF())   //计算月工资发放额
  128.  {
  129.             rs.GetFieldValue((short)2,str2);
  130. money=atof(str2);
  131. totalmoney=totalmoney+money;
  132. rs.MoveNext(); 
  133.  }
  134.  str2.Format("%.2f",totalmoney);
  135.  strSQL="update 财务报表 set totalsalary='"+str2+"' where month='"+m_month+"'"; 
  136.      dbTemp.ExecuteSQL(strSQL);
  137.  totalmoney=0;
  138.  rs.Close();
  139.  rs.Open(AFX_DB_USE_DEFAULT_TYPE,"select * From 销售表");  //计算月销售总额
  140.  while(!rs.IsEOF())
  141.  {
  142.  rs.GetFieldValue((short)2,str2);
  143.  month = Cet_Month(str2);
  144.  if(month==m_time.GetMonth())
  145.  {
  146.  rs.GetFieldValue((short)1,str2);
  147.  money=atof(str2);
  148.      totalmoney=totalmoney+money;
  149.  }
  150.  rs.MoveNext();
  151.  str2.Format("%.2f",totalmoney);
  152.      strSQL="update 财务报表 set sale='"+str2+"' where month='"+m_month+"'"; 
  153.          dbTemp.ExecuteSQL(strSQL);
  154.  }
  155.  totalmoney=0;
  156.  rs.Close();
  157.  
  158.  rs.Open(AFX_DB_USE_DEFAULT_TYPE,"select * From 退货表");  //计算退货总额
  159.  while(!rs.IsEOF())
  160.  {
  161.  rs.GetFieldValue((short)5,str2);
  162.  month = Cet_Month(str2);
  163.  if(month==m_time.GetMonth())
  164.  {
  165.  rs.GetFieldValue((short)4,str2);
  166.  money=atof(str2);
  167.      totalmoney=totalmoney+money;
  168.  }
  169.  rs.MoveNext();
  170.  str2.Format("%.2f",totalmoney);
  171.      strSQL="update 财务报表 set refundent='"+str2+"' where month='"+m_month+"'"; 
  172.          dbTemp.ExecuteSQL(strSQL);
  173.  }
  174.  rs.Close();
  175.  rs.Open(AFX_DB_USE_DEFAULT_TYPE,"select * From 财务报表 where month='"+m_month+"'");
  176.          rs.GetFieldValue((short)0,str0);   
  177.      rs.GetFieldValue((short)1,str1);
  178.  rs.GetFieldValue((short)2,str2);   
  179.      rs.GetFieldValue((short)3,str3);
  180.  rs.GetFieldValue((short)4,str4);   
  181.      rs.GetFieldValue((short)5,str5);
  182.  m_list.InsertItem   (addtime,str0);//写第一列;   
  183.  m_list.SetItemText   (addtime,1,str1);//第二列;   
  184.  m_list.SetItemText   (addtime,2,str2);//第三列;   
  185.  m_list.SetItemText   (addtime,3,str3);//第四列;  
  186.  m_list.SetItemText   (addtime,4,str4);//第五列; 
  187.  m_list.SetItemText   (addtime,5,str5);//第五列;
  188.  addtime++;
  189.  UpdateData(false);
  190.  rs.Close();  
  191.  }
  192.  else    //如果是还未到的月份,输出不能结算
  193.  {
  194.  MessageBox("还未到该月份,不能结算");  
  195.  }
  196. m_month = _T("");
  197. m_investment = 0.0f;
  198. m_stock_money = 0.0f;
  199. UpdateData(false);
  200. }
  201. BOOL CFinaceDlg::OnInitDialog() 
  202. {
  203. CDialog::OnInitDialog();
  204. addtime=0;
  205. // TODO: Add extra initialization here
  206. m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_ONECLICKACTIVATE);
  207. m_list.InsertColumn(0,"月份",LVCFMT_LEFT,80);
  208. m_list.InsertColumn(1,"经理投资",LVCFMT_LEFT,100);
  209. m_list.InsertColumn(2,"工资额",LVCFMT_LEFT,100);
  210. m_list.InsertColumn(3,"销售额",LVCFMT_LEFT,100);
  211. m_list.InsertColumn(4,"退款额",LVCFMT_LEFT,100);
  212.     m_list.InsertColumn(5,"采购金",LVCFMT_LEFT,100);
  213.  
  214. return TRUE;  // return TRUE unless you set the focus to a control
  215.               // EXCEPTION: OCX Property Pages should return FALSE
  216. }