From 6f47fbc9b2f3b0c3d10b1442ec163152d0394dda Mon Sep 17 00:00:00 2001 From: ~ Alone <1197284744@qq.com> Date: Mon, 13 May 2024 23:34:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=99=BB=E5=BD=95=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E7=82=B9=E5=87=BB=E6=8C=89=E9=92=AE=E6=98=AF?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aike/LogInDlg.cpp | 65 ++++++++++++++++++++++++++++++ aike/LogInDlg.h | 28 +++++++++++++ aike/StaffDlg.cpp | 2 +- aike/aike.rc | Bin 17094 -> 18062 bytes aike/aike.vcxproj | 2 + aike/aike.vcxproj.filters | 6 +++ aike/aikeDlg.cpp | 82 +++++++++++++++++++++++++++++--------- aike/aikeDlg.h | 12 ++++-- aike/resource.h | 4 +- 9 files changed, 177 insertions(+), 24 deletions(-) create mode 100644 aike/LogInDlg.cpp create mode 100644 aike/LogInDlg.h diff --git a/aike/LogInDlg.cpp b/aike/LogInDlg.cpp new file mode 100644 index 0000000..47f5339 --- /dev/null +++ b/aike/LogInDlg.cpp @@ -0,0 +1,65 @@ +// LogInDlg.cpp: 实现文件 +// + +#include "pch.h" +#include "aike.h" +#include "afxdialogex.h" +#include "LogInDlg.h" + + +// LogInDlg 对话框 + +IMPLEMENT_DYNAMIC(LogInDlg, MyDialog) + +LogInDlg::LogInDlg(CWnd* pParent /*=nullptr*/) + : MyDialog(IDD_LOGINDLG, pParent) +{ + +} + +LogInDlg::~LogInDlg() +{ +} + +//void LogInDlg::DoDataExchange(CDataExchange* pDX) +//{ +// MyDialog::DoDataExchange(pDX); +//} + + +BEGIN_MESSAGE_MAP(LogInDlg, MyDialog) + ON_WM_PAINT() +END_MESSAGE_MAP() + + +// LogInDlg 消息处理程序 + + +//BOOL LogInDlg::PreTranslateMessage(MSG* pMsg) +//{ +// // TODO: 在此添加专用代码和/或调用基类 +// myDlg->PTMessage(pMsg); +// return __super::PreTranslateMessage(pMsg); +//} +// +// +//void LogInDlg::OnPaint() +//{ +// myDlg->PaintDlg(); +// MyDialog::OnPaint(); +//} + + +BOOL LogInDlg::OnInitDialog() +{ + __super::OnInitDialog(); + //CImage img; + //img.Load(_T("../aike/res/background.jpg")); + //myDlg->SetBackground(img); + //myDlg->PaintDlg(); + // TODO: 在此添加额外的初始化 + //PaintDlg(); + FixedSize(); + return TRUE; // return TRUE unless you set the focus to a control + // 异常: OCX 属性页应返回 FALSE +} diff --git a/aike/LogInDlg.h b/aike/LogInDlg.h new file mode 100644 index 0000000..291f717 --- /dev/null +++ b/aike/LogInDlg.h @@ -0,0 +1,28 @@ +#pragma once +#include "afxdialogex.h" + + +// LogInDlg 对话框 + +class LogInDlg : public MyDialog +{ + DECLARE_DYNAMIC(LogInDlg) + +public: + LogInDlg(CWnd* pParent = nullptr); // 标准构造函数 + virtual ~LogInDlg(); + +// 对话框数据 +#ifdef AFX_DESIGN_TIME + enum { IDD = IDD_LOGINDLG }; +#endif + +protected: +// virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 + + DECLARE_MESSAGE_MAP() +public: + //virtual BOOL PreTranslateMessage(MSG* pMsg); + //afx_msg void OnPaint(); + virtual BOOL OnInitDialog(); +}; diff --git a/aike/StaffDlg.cpp b/aike/StaffDlg.cpp index 38fb064..6e326ff 100644 --- a/aike/StaffDlg.cpp +++ b/aike/StaffDlg.cpp @@ -68,7 +68,7 @@ VOID StaffDlg::ShowStaff() rt.MoveToXY(150, 50); _RecordsetPtr m_pRecor; _variant_t var; - CString str = (_T("select JobID,a.name,sex,b.name 'department', c.name 'category',workforce,phone,BeginDate from staff a,department b,category c")), tmp; + CString str = (_T("select a.JobID,a.name,a.sex,b.name 'department', c.name 'category',a.workforce,a.phone,a.BeginDate from staff a left join department b on a.department = b.ID left join category c on a.category = c.id")), tmp; dlg->AdoSql.QuerySql(str, m_pRecor); int i = 0; while (!m_pRecor->GetadoEOF()) diff --git a/aike/aike.rc b/aike/aike.rc index 85aca50b2f2f089a0d3f53f863e7a3d2e829d148..2ac75c68c80956ecd160d82c0379b2926188649f 100644 GIT binary patch delta 276 zcmX@s%GlS-xIs;xMZ*6C zLq0<~gVJP1kyKU}23H2R$?HX><&_w!%R=LofM$6D)%i1c16k$_ra;mVNSaQbE^4iQ zEx02WrUGQTAA>VczYkcA3D_MFwSPtBH~&*`5T0zHFM{OUjauEz1`I}%FDi>p{-E#0 gY{p#N|Pu(9J7!gZUK{CDzLNYBajl4P$~+urZ?^d Iv;IAh2 + @@ -207,6 +208,7 @@ + diff --git a/aike/aike.vcxproj.filters b/aike/aike.vcxproj.filters index 0039120..6b9e12b 100644 --- a/aike/aike.vcxproj.filters +++ b/aike/aike.vcxproj.filters @@ -60,6 +60,9 @@ 头文件 + + 头文件 + @@ -98,6 +101,9 @@ 源文件 + + 源文件 + diff --git a/aike/aikeDlg.cpp b/aike/aikeDlg.cpp index 66309c3..c6761ba 100644 --- a/aike/aikeDlg.cpp +++ b/aike/aikeDlg.cpp @@ -21,19 +21,18 @@ CaikeDlg::CaikeDlg(CWnd* pParent /*=nullptr*/) - : CDialogEx(IDD_AIKE_DIALOG, pParent) - ,MyDialog(this) + : MyDialog(IDD_AIKE_DIALOG, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } -void CaikeDlg::DoDataExchange(CDataExchange* pDX) -{ - CDialogEx::DoDataExchange(pDX); +//void CaikeDlg::DoDataExchange(CDataExchange* pDX) +//{ +// MyDialog::DoDataExchange(pDX); //DDX_Control(pDX, IDC_LIST1, m_Staff); -} +//} -BEGIN_MESSAGE_MAP(CaikeDlg, CDialogEx) +BEGIN_MESSAGE_MAP(CaikeDlg, MyDialog) ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_WM_SIZE() @@ -49,7 +48,7 @@ END_MESSAGE_MAP() BOOL CaikeDlg::OnInitDialog() { - CDialogEx::OnInitDialog(); + MyDialog::OnInitDialog(); Initialize(); return TRUE; // 除非将焦点设置到控件,否则返回 TRUE @@ -63,8 +62,8 @@ void CaikeDlg::OnPaint() { if (!IsIconic()) { - PaintDlg(); - CDialogEx::OnPaint(); + //PaintDlg(); + MyDialog::OnPaint(); } } @@ -77,12 +76,16 @@ HCURSOR CaikeDlg::OnQueryDragIcon() //截获窗口消息 -BOOL CaikeDlg::PreTranslateMessage(MSG* pMsg) -{ +//BOOL CaikeDlg::PreTranslateMessage(MSG* pMsg) +//{ // TODO: 在此添加专用代码和/或调用基类 - PTMessage(pMsg); - return __super::PreTranslateMessage(pMsg); -} +// PTMessage(pMsg); +// if (!ttttt) +// { +// return FALSE; +// } +// return MyDialog::PreTranslateMessage(pMsg); +//} //窗口大小发生改变 void CaikeDlg::OnSize(UINT nType, int cx, int cy) @@ -132,7 +135,7 @@ void CaikeDlg::OnShowMenu() void CaikeDlg::OnCloneMenu() { // TODO: 在此添加命令处理程序代码 - CDialogEx::OnCancel(); + MyDialog::OnCancel(); } //初始化 @@ -208,7 +211,7 @@ VOID CaikeDlg::Initialize() - EnableButton(3, FALSE); + ShowButton(3, FALSE); MaxClick(0); @@ -326,7 +329,7 @@ VOID CaikeDlg::CloseClick(int id) { if (MessageBox(_T("确定退出本软件?"), _T("温馨提示"), MB_OKCANCEL) == IDOK) { - CDialogEx::OnCancel(); + MyDialog::OnCancel(); } } @@ -376,9 +379,52 @@ VOID CaikeDlg::HideAllBt(BOOL Hide) ShowButton(6000, !Hide); } +//检查权限 +BOOL CaikeDlg::CheckAuthority(CString Authority) +{ + if (LogName == _T("")) + { + //MessageBox(_T("请先登录账号"), _T("温馨提示")); + ttttt = FALSE; + LogInDlg dlg; + dlg.DoModal(); + ttttt = TRUE; + return FALSE; + } + if (LogName == _T("系统管理员")) + { + return TRUE; + } + _RecordsetPtr m_pRecor; + _variant_t var; + CString str, tmp; + str.Format(_T("select b.authority from staff a left join category b on a.category = b.ID where a.JobID = '%s' and a.computer = '1'"), LogName); + AdoSql.QuerySql(str, m_pRecor); + int i = 0; + if (!m_pRecor->GetadoEOF()) + { + var = m_pRecor->GetCollect("authority"); + if (var.vt != VT_NULL) + { + tmp = (LPCTSTR)_bstr_t(var); + } + } + + if (tmp.Find(_T("$") + Authority + _T("$")) == -1) + { + MessageBox(_T("该账号权限不足"), _T("温馨提示")); + return FALSE; + } + return TRUE; +} + //设置按钮 VOID CaikeDlg::SetUpClick(int id) { + if (!CheckAuthority(_T("6000"))) + { + return; + } HideAllBt(); CRect rt = { 0,0,100,30 }; rt.MoveToXY(30, 50); diff --git a/aike/aikeDlg.h b/aike/aikeDlg.h index bc115ae..66cf7ca 100644 --- a/aike/aikeDlg.h +++ b/aike/aikeDlg.h @@ -12,9 +12,10 @@ #include "PrintSetUpDlg.h" #include "CouponDlg.h" #include "ParameterDlg.h" +#include "LogInDlg.h" // CaikeDlg 对话框 -class CaikeDlg : public CDialogEx, MyDialog +class CaikeDlg : public MyDialog { // 构造 public: @@ -26,7 +27,7 @@ public: #endif protected: - virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 +// virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 // 实现 @@ -47,6 +48,8 @@ public: CString DataBase; //数据库名称 CString UserName; //数据库用户名 CString AdoPass; //数据库密码 + CString LogName; //当前登录的账号 + BOOL ttttt = TRUE; RoomSetUpDlg m_RoomSetUpDlg; //房间设置界面 CommodityDlg m_CommodityDlg; //商品信息界面 PaymentDlg PaymentDlg; //付款方式界面 @@ -58,7 +61,7 @@ public: ParameterDlg m_ParameterDlg; //参数设置界面 //MFC回调函数 - virtual BOOL PreTranslateMessage(MSG* pMsg); //截获窗口消息 +// virtual BOOL PreTranslateMessage(MSG* pMsg); //截获窗口消息 afx_msg void OnSize(UINT nType, int cx, int cy); //窗口大小发生改变 afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI); //设置窗口最大和最小范围 virtual void OnOK(); //按下回车 @@ -75,7 +78,8 @@ public: VOID ReductionClick(int id); //还原窗口 VOID CloseClick(int id); //关闭窗口 VOID MoveAllWin(); //移动所有窗口和按钮 - VOID HideAllBt(BOOL Hide = TRUE); //隐藏所有按钮 + VOID HideAllBt(BOOL Hide = TRUE); //隐藏所有按钮 + BOOL CheckAuthority(CString Authority); //检查权限 VOID SetUpClick(int id); //设置按钮 VOID HomepageClick(int id); //回到主页 VOID RoomSetUpClick(int id); //点击房间设置 diff --git a/aike/resource.h b/aike/resource.h index 3939fcb..df07ec1 100644 --- a/aike/resource.h +++ b/aike/resource.h @@ -14,6 +14,8 @@ #define IDD_COUPONDLG 139 #define IDD_DISCOUNTDLG 140 #define IDD_PARAMENTERDLG 141 +#define IDD_DIALOG1 142 +#define IDD_LOGINDLG 142 #define IDC_LIST1 1000 #define IDC_BUTTON1 1001 #define IDC_BUTTON2 1002 @@ -26,7 +28,7 @@ // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 136 +#define _APS_NEXT_RESOURCE_VALUE 144 #define _APS_NEXT_COMMAND_VALUE 32775 #define _APS_NEXT_CONTROL_VALUE 1002 #define _APS_NEXT_SYMED_VALUE 101