[cpp]
/ SalesManagementSystemDlg.h : header file
//
#if !defined(AFX_SALESMANAGEMENTSYSTEMDLG_H__105B9A75_F845_4C7E_8FEF_84A37882625E__INCLUDED_)
#define AFX_SALESMANAGEMENTSYSTEMDLG_H__105B9A75_F845_4C7E_8FEF_84A37882625E__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "MyButton.h"
//#define ID_BTNTIME WM_USER+100
/////////////////////////////////////////////////////////////////////////////
// CSalesManagementSystemDlg dialog
class CSalesManagementSystemDlg : public CDialog
{
// Construction
public:
CSalesManagementSystemDlg(CWnd* pParent = NULL); // standard constructor
CString strCode, strName;
// Dialog Data
//{{AFX_DATA(CSalesManagementSystemDlg)
enum { IDD = IDD_SALESMANAGEMENTSYSTEM_DIALOG };
CMyButton m_btnUserName;
CMyButton m_btnAdmin;
CMyButton m_ctrlTime;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSalesManagementSystemDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CSalesManagementSystemDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnCommodityclassify();
afx_msg void OnCommodityinfo();
afx_msg void OnClientinfo();
afx_msg void OnProviderinfo();
afx_msg void OnImport();
afx_msg void OnStockcheck();
afx_msg void OnSalebill();
afx_msg void OnAlarm();
afx_msg void OnDailyincomereport();
afx_msg void OnCommodityinforeport();
afx_msg void OnCopy();
afx_msg void OnDelete();
afx_msg void OnRestore();
afx_msg void OnBillamount();
afx_msg void OnCommoditysaleamount();
afx_msg void OnMonthaccount();
afx_msg void OnExcessalarm();
afx_msg void OnIncomereport();
afx_msg void OnLittlealarm();
afx_msg void OnUser();
afx_msg void OnPassword();
afx_msg void OnClose();
afx_msg void OnEsc();
afx_msg void OnClientintegral();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_SALESMANAGEMENTSYSTEMDLG_H__105B9A75_F845_4C7E_8FEF_84A37882625E__INCLUDED_)
// SalesManagementSystemDlg.cpp : implementation file
//
#include "stdafx.h"
#include "SalesManagementSystem.h"
#include "SalesManagementSystemDlg.h"
#include "DiagLog.h"
#include "MyTime.h"
#include "MyButton.h"
#include "CommodityClassify.h"
#include "CommodityInfo.h"
#include "DlgClient.h"
#include "DlgProvider.h"
#include "DlgImport.h"
#include "DlgReport.h"
#include "SalesBill.h"
#include "DlgReport.h"
#include "DlgPasswd.h"
#include "DlgUser.h"
#include "DlgQuit.h"
#include "DlgIntegral.h"
#include "ADOConn.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSalesManagementSystemDlg dialog
CSalesManagementSystemDlg::CSalesManagementSystemDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSalesManagementSystemDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSalesManagementSystemDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CSalesManagementSystemDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSalesManagementSystemDlg)
DDX_Control(pDX, IDC_USERNAME, m_btnUserName);
DDX_Control(pDX, IDC_ADMIN, m_btnAdmin);
DDX_Control(pDX, IDC_TIME, m_ctrlTime);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSalesManagementSystemDlg, CDialog)
//{{AFX_MSG_MAP(CSalesManagementSystemDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_TIMER()
ON_BN_CLICKED(IDC_COMMODITYCLASSIFY, OnCommodityclassify)
ON_BN_CLICKED(IDC_COMMODITYINFO, OnCommodityinfo)
ON_BN_CLICKED(IDC_CLIENTINFO, OnClientinfo)
ON_BN_CLICKED(IDC_PROVIDERINFO, OnProviderinfo)
ON_BN_CLICKED(IDC_IMPORT, OnImport)
ON_BN_CLICKED(IDC_STOCKCHECK, OnStockcheck)
ON_BN_CLICKED(IDC_SALEBILL, OnSalebill)
ON_BN_CLICKED(IDC_ALARM, OnAlarm)
ON_COMMAND(IDM_DAILYINCOMEREPORT, OnDailyincomereport)
ON_COMMAND(IDM_COMMODITYINFOREPORT, OnCommodityinforeport)
ON_COMMAND(IDM_COPY, OnCopy)
ON_COMMAND(IDM_DELETE, OnDelete)
ON_COMMAND(IDM_RESTORE, OnRestore)
ON_COMMAND(IDM_BILLAMOUNT, OnBillamount)
ON_COMMAND(IDM_COMMODITYSALEAMOUNT, OnCommoditysaleamount)
ON_COMMAND(IDM_MONTHACCOUNT, OnMonthaccount)
ON_COMMAND(IDM_EXCESSALARM, OnExcessalarm)
ON_COMMAND(IDM_INCOMEREPORT, OnIncomereport)
ON_COMMAND(IDM_LITTLEALARM, OnLittlealarm)
ON_COMMAND(IDM_USER, OnUser)
ON_COMMAND(IDM_PASSWORD, OnPassword)
ON_WM_CLOSE()
ON_COMMAND(IDM_ESC, OnEsc)
ON_COMMAND(IDM_CLIENTINTEGRAL, OnClientintegral)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSalesManagementSystemDlg message handlers
BOOL CSalesManagementSystemDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
CString strTime;
CMyTime myTime;
strTime = myTime.GetDateString(FALSE) + " " + myTime.GetWeekDay() + " " + myTime.GetTimeString(FALSE);
m_ctrlTime.SetXAlign(0);
m_ctrlTime.SetWindowText(strTime);
m_btnAdmin.SetXAlign(0);
m_btnUserName.SetXAlign(0);
m_btnAdmin.SetWindowText("管理員:");
m_btnUserName.SetWindowText(strName);
SetTimer(1, 1000, NULL);
return TRUE; // return TRUE unless you set the focus to a control
}
void CSalesManagementSystemDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CSalesManagementSystemDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CSalesManagementSystemDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CSalesManagementSystemDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CString strTime;
CMyTime myTime;
strTime = myTime.GetDateString(FALSE) + " " + myTime.GetWeekDay() + " " + myTime.GetTimeString(FALSE);
switch(nIDEvent)
{
case 1:
m_ctrlTime.SetXAlign(0);
m_ctrlTime.SetWindowText(strTime);
break;
default:
break;
}
CDialog::OnTimer(nIDEvent);
}
void CSalesManagementSystemDlg::OnCommodityclassify()
{
// TODO: Add your control notification handler code here
CCommodityClassify classifyDlg;
classifyDlg.DoModal();
}
void CSalesManagementSystemDlg::OnCommodityinfo()
{
// TODO: Add your control notification handler code here
CCommodityInfo infoDlg;
infoDlg.DoModal();
}
void CSalesManagementSystemDlg::OnClientinfo()
{
// TODO: Add your control notification handler code here
CDlgClient dlgClient;
dlgClient.DoModal();
}
void CSalesManagementSystemDlg::OnProviderinfo()
{
// TODO: Add your control notification handler code here
CDlgProvider dlgProvider;
dlgProvider.DoModal();
}
void CSalesManagementSystemDlg::OnImport()
{
// TODO: Add your control notification handler code here
CDlgImport dlgImport;
dlgImport.m_strBiller = strName;
dlgImport.m_strProvider = "";
dlgImport.DoModal();
}
void CSalesManagementSystemDlg::OnStockcheck()
{
// TODO: Add your control notification handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT CommodityInfo.*, StoreInfo.stockprice, StoreInfo.saleprice, StoreInfo.num ";
strSQL = strSQL + "FROM CommodityInfo INNER JOIN StoreInfo ON CommodityInfo.barcode = StoreInfo.barcode";
dlgReport.strTitle = "商品庫存統計報表";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnSalebill()
{
// TODO: Add your control notification handler code here
CSalesBill dlgSaleBill;
dlgSaleBill.m_strBiller = strName;
dlgSaleBill.DoModal();
}
void CSalesManagementSystemDlg::OnAlarm()
{
// TODO: Add your control notification handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT CommodityInfo.*, StoreInfo.stockprice, StoreInfo.saleprice, StoreInfo.num ";
strSQL = strSQL + "FROM CommodityInfo INNER JOIN StoreInfo ON CommodityInfo.barcode = StoreInfo.barcode ";
strSQL = strSQL + "WHERE StoreInfo.num < CommodityInfo.minnum";
dlgReport.strTitle = "商品過少統計報表";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnDailyincomereport()
{
// TODO: Add your command handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT * FROM SaleBill";
dlgReport.strTitle = "營業收入日報表";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnCommodityinforeport()
{
// TODO: Add your command handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT * FROM CommodityInfo";
dlgReport.strTitle = "商品信息明細報表";
dlgReport.strSQL =strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnCopy()
{
// TODO: Add your command handler code here
CADOConn adoMain;
CString strDataPath;
CString strBackupPath;
CMyTime myTime;
strDataPath = adoMain.GetAppPath() + "\\data\\ShopSale.mdb";
strBackupPath = adoMain.GetAppPath() + "\\data\\BackUp\\" + myTime.GetSimpleString() + ".mdb";
if (CopyFile(strDataPath, strBackupPath, FALSE))
{
MessageBox("備份成功", "提示", MB_OK | MB_ICONINFORMATION);
}
else
{
MessageBox("備份失敗", "提示", MB_OK | MB_ICONWARNING);
}
}
void CSalesManagementSystemDlg::OnDelete()
{
// TODO: Add your command handler code here
CADOConn adoMain;
CString strSql;
CString str[6]={"StockBill", "StockCommodity", "SaleBill", "SaleCommodity"};
if (MessageBox("確定數據清理嗎?此操作將刪除進貨/銷售有關記錄!", "提示", MB_OKCANCEL | MB_ICONQUESTION) != IDOK)
{
return;
}
OnCopy();
for(int i = 0; i < 4; i++)
{
strSql = "DELETE FROM " + str[i];
adoMain.ExecuteSQL(strSql);
}
MessageBox("數據清理完畢!", "提示", MB_OK | MB_ICONINFORMATION);
adoMain.ExitConnect();
}
void CSalesManagementSystemDlg::OnRestore()
{
// TODO: Add your command handler code here
CString strDataPath;
CADOConn adoMain;
CFileDialog fileDlg(TRUE, "mdb", adoMain.GetAppPath() + "\\data\\BackUp\\*.mdb", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "數據庫文件(*.mdb)|*.mdb||");
strDataPath = adoMain.GetAppPath() + "\\data\\ShopSale.mdb";
if (fileDlg.DoModal() == IDOK)
{
if(MessageBox("確定恢復嗎?", "", MB_OKCANCEL | MB_ICONQUESTION) != IDOK)
{
return;
}
DeleteFile(strDataPath);
CopyFile(fileDlg.GetPathName(), strDataPath, FALSE);
}
}
void CSalesManagementSystemDlg::OnBillamount()
{
// TODO: Add your command handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT * FROM SaleBill";
dlgReport.strTitle = "銷售單統計報表";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnCommoditysaleamount()
{
// TODO: Add your command handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT * FROM SaleCommodity";
dlgReport.strTitle = "銷售商品統計報表";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnMonthaccount()
{
// TODO: Add your command handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT * FROM SaleBill";
dlgReport.strTitle = "銷售月度結算";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnExcessalarm()
{
// TODO: Add your command handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT CommodityInfo.*, StoreInfo.stockprice, StoreInfo.saleprice, StoreInfo.num ";
strSQL = strSQL + "FROM CommodityInfo INNER JOIN StoreInfo ON CommodityInfo.barcode = StoreInfo.barcode ";
strSQL = strSQL + "WHERE StoreInfo.num > CommodityInfo.maxnum";
dlgReport.strTitle = "商品過多統計報表";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnIncomereport()
{
// TODO: Add your command handler code here
}
void CSalesManagementSystemDlg::OnLittlealarm()
{
// TODO: Add your command handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT CommodityInfo.*, StoreInfo.stockprice, StoreInfo.saleprice, StoreInfo.num ";
strSQL = strSQL + "FROM CommodityInfo INNER JOIN StoreInfo ON CommodityInfo.barcode = StoreInfo.barcode ";
strSQL = strSQL + "WHERE StoreInfo.num < CommodityInfo.minnum";
dlgReport.strTitle = "商品過少統計報表";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnUser()
{
// TODO: Add your command handler code here
CDlgUser dlgUser;
dlgUser.DoModal();
}
void CSalesManagementSystemDlg::OnPassword()
{
// TODO: Add your command handler code here
CDlgPasswd dlgPasswd;
dlgPasswd.strCode = strCode;
dlgPasswd.DoModal();
}
void CSalesManagementSystemDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
OnEsc();
}
void CSalesManagementSystemDlg::OnEsc()
{
// TODO: Add your command handler code here
CDlgQuit dlgQuit;
if (dlgQuit.DoModal() == IDOK)
{
if (dlgQuit.iBackup == 1)
{
CSalesManagementSystemDlg::OnCopy();
}
CDialog::OnOK();
}
}
void CSalesManagementSystemDlg::OnClientintegral()
{
// TODO: Add your command handler code here
CDlgIntegral dlgIntegral;
dlgIntegral.DoModal();
}
// SalesManagementSystemDlg.h : header file
//
#if !defined(AFX_SALESMANAGEMENTSYSTEMDLG_H__105B9A75_F845_4C7E_8FEF_84A37882625E__INCLUDED_)
#define AFX_SALESMANAGEMENTSYSTEMDLG_H__105B9A75_F845_4C7E_8FEF_84A37882625E__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "MyButton.h"
//#define ID_BTNTIME WM_USER+100
/////////////////////////////////////////////////////////////////////////////
// CSalesManagementSystemDlg dialog
class CSalesManagementSystemDlg : public CDialog
{
// Construction
public:
CSalesManagementSystemDlg(CWnd* pParent = NULL); // standard constructor
CString strCode, strName;
// Dialog Data
//{{AFX_DATA(CSalesManagementSystemDlg)
enum { IDD = IDD_SALESMANAGEMENTSYSTEM_DIALOG };
CMyButton m_btnUserName;
CMyButton m_btnAdmin;
CMyButton m_ctrlTime;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSalesManagementSystemDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CSalesManagementSystemDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnCommodityclassify();
afx_msg void OnCommodityinfo();
afx_msg void OnClientinfo();
afx_msg void OnProviderinfo();
afx_msg void OnImport();
afx_msg void OnStockcheck();
afx_msg void OnSalebill();
afx_msg void OnAlarm();
afx_msg void OnDailyincomereport();
afx_msg void OnCommodityinforeport();
afx_msg void OnCopy();
afx_msg void OnDelete();
afx_msg void OnRestore();
afx_msg void OnBillamount();
afx_msg void OnCommoditysaleamount();
afx_msg void OnMonthaccount();
afx_msg void OnExcessalarm();
afx_msg void OnIncomereport();
afx_msg void OnLittlealarm();
afx_msg void OnUser();
afx_msg void OnPassword();
afx_msg void OnClose();
afx_msg void OnEsc();
afx_msg void OnClientintegral();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_SALESMANAGEMENTSYSTEMDLG_H__105B9A75_F845_4C7E_8FEF_84A37882625E__INCLUDED_)
// SalesManagementSystemDlg.cpp : implementation file
//
#include "stdafx.h"
#include "SalesManagementSystem.h"
#include "SalesManagementSystemDlg.h"
#include "DiagLog.h"
#include "MyTime.h"
#include "MyButton.h"
#include "CommodityClassify.h"
#include "CommodityInfo.h"
#include "DlgClient.h"
#include "DlgProvider.h"
#include "DlgImport.h"
#include "DlgReport.h"
#include "SalesBill.h"
#include "DlgReport.h"
#include "DlgPasswd.h"
#include "DlgUser.h"
#include "DlgQuit.h"
#include "DlgIntegral.h"
#include "ADOConn.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSalesManagementSystemDlg dialog
CSalesManagementSystemDlg::CSalesManagementSystemDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSalesManagementSystemDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSalesManagementSystemDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CSalesManagementSystemDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSalesManagementSystemDlg)
DDX_Control(pDX, IDC_USERNAME, m_btnUserName);
DDX_Control(pDX, IDC_ADMIN, m_btnAdmin);
DDX_Control(pDX, IDC_TIME, m_ctrlTime);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSalesManagementSystemDlg, CDialog)
//{{AFX_MSG_MAP(CSalesManagementSystemDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_TIMER()
ON_BN_CLICKED(IDC_COMMODITYCLASSIFY, OnCommodityclassify)
ON_BN_CLICKED(IDC_COMMODITYINFO, OnCommodityinfo)
ON_BN_CLICKED(IDC_CLIENTINFO, OnClientinfo)
ON_BN_CLICKED(IDC_PROVIDERINFO, OnProviderinfo)
ON_BN_CLICKED(IDC_IMPORT, OnImport)
ON_BN_CLICKED(IDC_STOCKCHECK, OnStockcheck)
ON_BN_CLICKED(IDC_SALEBILL, OnSalebill)
ON_BN_CLICKED(IDC_ALARM, OnAlarm)
ON_COMMAND(IDM_DAILYINCOMEREPORT, OnDailyincomereport)
ON_COMMAND(IDM_COMMODITYINFOREPORT, OnCommodityinforeport)
ON_COMMAND(IDM_COPY, OnCopy)
ON_COMMAND(IDM_DELETE, OnDelete)
ON_COMMAND(IDM_RESTORE, OnRestore)
ON_COMMAND(IDM_BILLAMOUNT, OnBillamount)
ON_COMMAND(IDM_COMMODITYSALEAMOUNT, OnCommoditysaleamount)
ON_COMMAND(IDM_MONTHACCOUNT, OnMonthaccount)
ON_COMMAND(IDM_EXCESSALARM, OnExcessalarm)
ON_COMMAND(IDM_INCOMEREPORT, OnIncomereport)
ON_COMMAND(IDM_LITTLEALARM, OnLittlealarm)
ON_COMMAND(IDM_USER, OnUser)
ON_COMMAND(IDM_PASSWORD, OnPassword)
ON_WM_CLOSE()
ON_COMMAND(IDM_ESC, OnEsc)
ON_COMMAND(IDM_CLIENTINTEGRAL, OnClientintegral)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSalesManagementSystemDlg message handlers
BOOL CSalesManagementSystemDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
CString strTime;
CMyTime myTime;
strTime = myTime.GetDateString(FALSE) + " " + myTime.GetWeekDay() + " " + myTime.GetTimeString(FALSE);
m_ctrlTime.SetXAlign(0);
m_ctrlTime.SetWindowText(strTime);
m_btnAdmin.SetXAlign(0);
m_btnUserName.SetXAlign(0);
m_btnAdmin.SetWindowText("管理員:");
m_btnUserName.SetWindowText(strName);
SetTimer(1, 1000, NULL);
return TRUE; // return TRUE unless you set the focus to a control
}
void CSalesManagementSystemDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CSalesManagementSystemDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CSalesManagementSystemDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CSalesManagementSystemDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CString strTime;
CMyTime myTime;
strTime = myTime.GetDateString(FALSE) + " " + myTime.GetWeekDay() + " " + myTime.GetTimeString(FALSE);
switch(nIDEvent)
{
case 1:
m_ctrlTime.SetXAlign(0);
m_ctrlTime.SetWindowText(strTime);
break;
default:
break;
}
CDialog::OnTimer(nIDEvent);
}
void CSalesManagementSystemDlg::OnCommodityclassify()
{
// TODO: Add your control notification handler code here
CCommodityClassify classifyDlg;
classifyDlg.DoModal();
}
void CSalesManagementSystemDlg::OnCommodityinfo()
{
// TODO: Add your control notification handler code here
CCommodityInfo infoDlg;
infoDlg.DoModal();
}
void CSalesManagementSystemDlg::OnClientinfo()
{
// TODO: Add your control notification handler code here
CDlgClient dlgClient;
dlgClient.DoModal();
}
void CSalesManagementSystemDlg::OnProviderinfo()
{
// TODO: Add your control notification handler code here
CDlgProvider dlgProvider;
dlgProvider.DoModal();
}
void CSalesManagementSystemDlg::OnImport()
{
// TODO: Add your control notification handler code here
CDlgImport dlgImport;
dlgImport.m_strBiller = strName;
dlgImport.m_strProvider = "";
dlgImport.DoModal();
}
void CSalesManagementSystemDlg::OnStockcheck()
{
// TODO: Add your control notification handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT CommodityInfo.*, StoreInfo.stockprice, StoreInfo.saleprice, StoreInfo.num ";
strSQL = strSQL + "FROM CommodityInfo INNER JOIN StoreInfo ON CommodityInfo.barcode = StoreInfo.barcode";
dlgReport.strTitle = "商品庫存統計報表";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnSalebill()
{
// TODO: Add your control notification handler code here
CSalesBill dlgSaleBill;
dlgSaleBill.m_strBiller = strName;
dlgSaleBill.DoModal();
}
void CSalesManagementSystemDlg::OnAlarm()
{
// TODO: Add your control notification handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT CommodityInfo.*, StoreInfo.stockprice, StoreInfo.saleprice, StoreInfo.num ";
strSQL = strSQL + "FROM CommodityInfo INNER JOIN StoreInfo ON CommodityInfo.barcode = StoreInfo.barcode ";
strSQL = strSQL + "WHERE StoreInfo.num < CommodityInfo.minnum";
dlgReport.strTitle = "商品過少統計報表";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnDailyincomereport()
{
// TODO: Add your command handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT * FROM SaleBill";
dlgReport.strTitle = "營業收入日報表";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnCommodityinforeport()
{
// TODO: Add your command handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT * FROM CommodityInfo";
dlgReport.strTitle = "商品信息明細報表";
dlgReport.strSQL =strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnCopy()
{
// TODO: Add your command handler code here
CADOConn adoMain;
CString strDataPath;
CString strBackupPath;
CMyTime myTime;
strDataPath = adoMain.GetAppPath() + "\\data\\ShopSale.mdb";
strBackupPath = adoMain.GetAppPath() + "\\data\\BackUp\\" + myTime.GetSimpleString() + ".mdb";
if (CopyFile(strDataPath, strBackupPath, FALSE))
{
MessageBox("備份成功", "提示", MB_OK | MB_ICONINFORMATION);
}
else
{
MessageBox("備份失敗", "提示", MB_OK | MB_ICONWARNING);
}
}
void CSalesManagementSystemDlg::OnDelete()
{
// TODO: Add your command handler code here
CADOConn adoMain;
CString strSql;
CString str[6]={"StockBill", "StockCommodity", "SaleBill", "SaleCommodity"};
if (MessageBox("確定數據清理嗎?此操作將刪除進貨/銷售有關記錄!", "提示", MB_OKCANCEL | MB_ICONQUESTION) != IDOK)
{
return;
}
OnCopy();
for(int i = 0; i < 4; i++)
{
strSql = "DELETE FROM " + str[i];
adoMain.ExecuteSQL(strSql);
}
MessageBox("數據清理完畢!", "提示", MB_OK | MB_ICONINFORMATION);
adoMain.ExitConnect();
}
void CSalesManagementSystemDlg::OnRestore()
{
// TODO: Add your command handler code here
CString strDataPath;
CADOConn adoMain;
CFileDialog fileDlg(TRUE, "mdb", adoMain.GetAppPath() + "\\data\\BackUp\\*.mdb", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "數據庫文件(*.mdb)|*.mdb||");
strDataPath = adoMain.GetAppPath() + "\\data\\ShopSale.mdb";
if (fileDlg.DoModal() == IDOK)
{
if(MessageBox("確定恢復嗎?", "", MB_OKCANCEL | MB_ICONQUESTION) != IDOK)
{
return;
}
DeleteFile(strDataPath);
CopyFile(fileDlg.GetPathName(), strDataPath, FALSE);
}
}
void CSalesManagementSystemDlg::OnBillamount()
{
// TODO: Add your command handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT * FROM SaleBill";
dlgReport.strTitle = "銷售單統計報表";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnCommoditysaleamount()
{
// TODO: Add your command handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT * FROM SaleCommodity";
dlgReport.strTitle = "銷售商品統計報表";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnMonthaccount()
{
// TODO: Add your command handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT * FROM SaleBill";
dlgReport.strTitle = "銷售月度結算";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnExcessalarm()
{
// TODO: Add your command handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT CommodityInfo.*, StoreInfo.stockprice, StoreInfo.saleprice, StoreInfo.num ";
strSQL = strSQL + "FROM CommodityInfo INNER JOIN StoreInfo ON CommodityInfo.barcode = StoreInfo.barcode ";
strSQL = strSQL + "WHERE StoreInfo.num > CommodityInfo.maxnum";
dlgReport.strTitle = "商品過多統計報表";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnIncomereport()
{
// TODO: Add your command handler code here
}
void CSalesManagementSystemDlg::OnLittlealarm()
{
// TODO: Add your command handler code here
CDlgReport dlgReport;
CString strSQL;
strSQL = "SELECT CommodityInfo.*, StoreInfo.stockprice, StoreInfo.saleprice, StoreInfo.num ";
strSQL = strSQL + "FROM CommodityInfo INNER JOIN StoreInfo ON CommodityInfo.barcode = StoreInfo.barcode ";
strSQL = strSQL + "WHERE StoreInfo.num < CommodityInfo.minnum";
dlgReport.strTitle = "商品過少統計報表";
dlgReport.strSQL = strSQL;
dlgReport.DoModal();
}
void CSalesManagementSystemDlg::OnUser()
{
// TODO: Add your command handler code here
CDlgUser dlgUser;
dlgUser.DoModal();
}
void CSalesManagementSystemDlg::OnPassword()
{
// TODO: Add your command handler code here
CDlgPasswd dlgPasswd;
dlgPasswd.strCode = strCode;
dlgPasswd.DoModal();
}
void CSalesManagementSystemDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
OnEsc();
}
void CSalesManagementSystemDlg::OnEsc()
{
// TODO: Add your command handler code here
CDlgQuit dlgQuit;
if (dlgQuit.DoModal() == IDOK)
{
if (dlgQuit.iBackup == 1)
{
CSalesManagementSystemDlg::OnCopy();
}
CDialog::OnOK();
}
}
void CSalesManagementSystemDlg::OnClientintegral()
{
// TODO: Add your command handler code here
CDlgIntegral dlgIntegral;
dlgIntegral.DoModal();
}