?? project.cpp
字號:
// Project.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "Project.h"
#include "SkinMagicLib.h"
#include "MainFrm.h"
#include "ProjectDoc.h"
#include "ProjectView.h"
#include "SellBook.h"
#include "Login.h"
#include "BuyBook.h"
#include "RegVip.h"
#include "Search.h"
#include "EmpDlg.h"
#include "ModifyPsw.h"
#include "Information.h"
#include "ChartTab.h"
#include "HyperLink.h"
#include "ManVip.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CProjectApp
BEGIN_MESSAGE_MAP(CProjectApp, CWinApp)
//{{AFX_MSG_MAP(CProjectApp)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
ON_COMMAND(IDM_SYS_SELL, OnSysSell)
ON_COMMAND(IDM_SYS_BUY, OnSysBuy)
ON_COMMAND(IDM_SYS_REGVIP, OnSysRegvip)
ON_COMMAND(IDM_TOOL_CAL, OnToolCal)
ON_COMMAND(IDM_TOOL_TXT, OnToolTxt)
ON_COMMAND(IDM_TOOL_TASKMAN, OnToolTaskman)
ON_COMMAND(IDM_FIND, OnFind)
ON_COMMAND(IDM_MAN_EMP, OnManEmp)
ON_COMMAND(IDM_MAN_PASSWD, OnManPasswd)
ON_COMMAND(IDM_MAIN_CE, OnMainCe)
ON_COMMAND(IDM_MAIN_CV, OnMainCv)
ON_COMMAND(IDM_MAIN_CSB, OnMainCsb)
ON_COMMAND(IDM_MAN_CBD, OnManCbd)
ON_COMMAND(IDM_MAN_BOOK, OnManBook)
ON_COMMAND(IDM_CHART, OnChart)
ON_COMMAND(IDM_HELP_ZHUTI, OnHelpZhuti)
ON_COMMAND(IDM_SYS_LOGOUT, OnSysLogout)
ON_COMMAND(IDM_MAN_VIP, OnManVip)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CProjectApp construction
CProjectApp::CProjectApp()
{
CHECK = FALSE;
}
CProjectApp::~CProjectApp()
{
if(CHECK == TRUE) //如果數(shù)據(jù)庫打開,則關(guān)閉
{
pConn->Close();
pConn.Release();
}
::CoUninitialize();
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CProjectApp object
CProjectApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CProjectApp initialization
BOOL CProjectApp::InitInstance()
{
AfxEnableControlContainer();
//打開連接
if(FAILED(::CoInitialize(NULL)))
{
::MessageBox(NULL,"COM Init error","Error",MB_OK);
exit(-1);
}
//登陸
loop:
CLogin login;
if(login.DoModal() == IDOK)
{
if(login.m_Logincom == "")
{
AfxMessageBox("用戶不可為空!");
goto loop;
}
if(login.m_LoginPSW == "")
{
AfxMessageBox("密碼不可為空!");
goto loop;
}
User = login.m_Logincom;
CString connectstr;
connectstr.Format("Provider = \'%s\';Data Source = \'%s\';User Id = \'%s\'; Password = \'%s\'",login.m_Dbms,login.m_SetDatabase,login.m_SetUser,login.m_SetPsw);
_bstr_t conn = connectstr;
try
{
pConn.CreateInstance(__uuidof(Connection));
pConn->ConnectionString = conn;
pConn->Open("","","",-1);
}
catch(_com_error& ex)
{
AfxMessageBox(ex.Description());
login.m_SetDatabase = _T("angel");
login.m_SetUser = _T("shop");
login.m_SetPsw = _T("shop");
login.m_CheckSet = FALSE;
goto loop;
}
try
{
CString sql_; //在密碼表中查找,如果找到則成功登陸。
sql_.Format("SELECT NAME FROM PASSWORD WHERE NAME=\'%s\' AND PSW=\'%s\'",
login.m_Logincom, login.m_LoginPSW);
_bstr_t sql = sql_;
_RecordsetPtr pRst;
pRst = pConn->Execute(sql, NULL, adCmdText);
if (pRst->End)
{
AfxMessageBox("登陸失敗!");
pConn->Close();
pConn.Release();
CHECK = FALSE;
login.m_Logincom.Empty();
login.m_LoginPSW.Empty();
goto loop;
}
CHECK = TRUE;
pRst->Close();
pRst.Release();
}
catch(_com_error& e)
{
AfxMessageBox(e.ErrorMessage());
}
///////////////
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
LoadStdProfileSettings(0); // Load standard INI file options (including MRU)
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CProjectDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CProjectView));
AddDocTemplate(pDocTemplate);
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
if (!ProcessShellCommand(cmdInfo))
return FALSE;
VERIFY( 1 == InitSkinMagicLib( AfxGetInstanceHandle(), "Demo" ,
NULL,
NULL ) );
VERIFY( 1 == LoadSkinFromResource( AfxGetInstanceHandle() , "DEVIOR" ,"SKINMAGIC") );
VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , "MainFrame" ));
VERIFY( 1 == SetDialogSkin( "Dialog" ) );
((CMainFrame*)m_pMainWnd)->m_bSkinned = TRUE;
((CMainFrame*)m_pMainWnd)->m_nIndex = 0;
m_pMainWnd->SetWindowText(_T("書店銷售管理系統(tǒng)"));
m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
m_pMainWnd->UpdateWindow();
}
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
virtual BOOL OnInitDialog();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
CHyperLink m_Mail;
//}}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)
// No message handlers
//}}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)
DDX_Control(pDX, IDC_MAIL, m_Mail);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_Mail.SetURL(_T("mailto:wentao_gao@yahoo.com.cn"));
return TRUE;
}
// App command to run the dialog
void CProjectApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}
/////////////////////////////////////////////////////////////////////////////
// CProjectApp message handlers
void CProjectApp::OnSysSell()
{
CSellDlg sellbook;
sellbook.pConn = pConn;
sellbook.DoModal();
}
void CProjectApp::OnSysBuy()
{
CBuyDlg buybook;
buybook.pConn = pConn;
buybook.User = User;
buybook.DoModal();
}
void CProjectApp::OnSysRegvip()
{
CRegVipDlg regvip;
regvip.pConn = pConn;
regvip.DoModal();
}
void CProjectApp::OnFind()
{
CSearchDlg search;
search.pConn = pConn;
search.DoModal();
}
void CProjectApp::OnManVip()
{
CManVip manvip;
manvip.pConn = pConn;
manvip.DoModal();
}
void CProjectApp::OnManEmp()
{
CEmpDlg empdlg;
empdlg.pConn = pConn;
empdlg.DoModal();
}
void CProjectApp::OnManPasswd()
{
CModifyPsw modifypsw;
modifypsw.pConn = pConn;
modifypsw.User = User;
modifypsw.DoModal();
}
void CProjectApp::OnManBook()
{
CInforDlg infor;
infor.pConn =pConn;
infor.DoModal();
}
void CProjectApp::OnChart()
{
CChartTab ChartTab;
ChartTab.pConn = pConn;
ChartTab.DoModal();
}
void CProjectApp::OnToolCal()
{
CString str = "C:\\WINDOWS.0\\System32\\calc.exe";
::ShellExecute(NULL,"open",str,NULL,NULL,SW_SHOWNORMAL);
}
void CProjectApp::OnToolTxt()
{
CString str = "C:\\WINDOWS.0\\System32\\notepad.exe";
::ShellExecute(NULL,"open",str,NULL,NULL,SW_SHOWNORMAL);
}
void CProjectApp::OnToolTaskman()
{
CString str = "C:\\WINDOWS.0\\System32\\taskmgr.exe";
::ShellExecute(NULL,"open",str,NULL,NULL,SW_SHOWNORMAL);
}
void CProjectApp::OnMainCe() //清空員工信息
{
CString _sql;
_sql = "truncate table EMP";
_bstr_t sql;
sql =_sql;
try
{
if(AfxMessageBox("此操作無法恢復(fù),確認清空員工信息嗎?",MB_YESNO|MB_DEFBUTTON2) == IDOK)
{
pConn->Execute(sql,NULL,adCmdText);
AfxMessageBox("員工信息已清除");
}
}
catch(_com_error& e)
{
AfxMessageBox(e.Description());
}
}
void CProjectApp::OnMainCv() //清空會員信息
{
CString _sql;
_sql = "truncate table VIP";
_bstr_t sql;
sql =_sql;
try
{
if(AfxMessageBox("此操作無法恢復(fù),確認清空會員信息嗎?",MB_YESNO|MB_DEFBUTTON2) == IDOK)
{
pConn->Execute(sql,NULL,adCmdText);
AfxMessageBox("會員信息已清除");
}
}
catch(_com_error& e)
{
AfxMessageBox(e.Description());
}
}
void CProjectApp::OnMainCsb() //清空庫存信息
{
CString _sql;
_sql = "truncate table STOCK";
_bstr_t sql;
sql =_sql;
try
{
if(AfxMessageBox("此操作無法恢復(fù),確認清空庫存信息嗎?",MB_YESNO|MB_DEFBUTTON2) == IDOK)
{
pConn->Execute(sql,NULL,adCmdText);
AfxMessageBox("會員信息已清除");
}
}
catch(_com_error& e)
{
AfxMessageBox(e.Description());
}
}
void CProjectApp::OnManCbd() //清空進貨信息
{
CString _sql;
_sql = "truncate table BUY";
_bstr_t sql;
sql =_sql;
try
{
if(AfxMessageBox("此操作無法恢復(fù),確認清空進貨信息嗎?",MB_YESNO|MB_DEFBUTTON2) == IDOK)
{
pConn->Execute(sql,NULL,adCmdText);
AfxMessageBox("會員信息已清除");
}
}
catch(_com_error& e)
{
AfxMessageBox(e.Description());
}
}
void CProjectApp::OnHelpZhuti() //打開幫助文件
{
TCHAR szPath[100];
::GetCurrentDirectory (sizeof (szPath) / sizeof (TCHAR), szPath);
CString strPath = szPath;
strPath += "\\主題幫助.chm";
::ShellExecute(NULL,"open",strPath,NULL,NULL,SW_SHOWMAXIMIZED);
}
void CProjectApp::OnSysLogout()
{
loop:
CLogin login;
if(login.DoModal() == IDOK)
{
User = login.m_Logincom;
CString connectstr;
connectstr.Format("Provider = \'%s\';Data Source = \'%s\';User Id = \'%s\'; Password = \'%s\'",login.m_Dbms,login.m_SetDatabase,login.m_SetUser,login.m_SetPsw);
_bstr_t conn = connectstr;
try
{
pConn.CreateInstance(__uuidof(Connection));
pConn->ConnectionString = conn;
pConn->Open("","","",-1);
}
catch(_com_error& ex)
{
AfxMessageBox(ex.Description());
login.m_SetDatabase = _T("angel");
login.m_SetUser = _T("shop");
login.m_SetPsw = _T("shop");
login.m_CheckSet = FALSE;
goto loop;
}
try
{
CString sql_; //在密碼表中查找,如果找到則成功登陸。
sql_.Format("SELECT NAME FROM PASSWORD WHERE NAME=\'%s\' AND PSW=\'%s\'",
login.m_Logincom, login.m_LoginPSW);
_bstr_t sql = sql_;
_RecordsetPtr pRst;
pRst = pConn->Execute(sql, NULL, adCmdText);
if (pRst->End)
{
AfxMessageBox("登陸失敗!");
pConn->Close();
pConn.Release();
CHECK = FALSE;
login.m_Logincom.Empty();
login.m_LoginPSW.Empty();
goto loop;
}
CHECK = TRUE;
pRst->Close();
pRst.Release();
}
catch(_com_error& e)
{
AfxMessageBox(e.ErrorMessage());
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -