程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 商店管理系統源代碼(一)

商店管理系統源代碼(一)

編輯:C++入門知識

[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();
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved