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 85aca50..2ac75c6 100644
Binary files a/aike/aike.rc and b/aike/aike.rc differ
diff --git a/aike/aike.vcxproj b/aike/aike.vcxproj
index 80e6ef4..7cf9369 100644
--- a/aike/aike.vcxproj
+++ b/aike/aike.vcxproj
@@ -191,6 +191,7 @@
+
@@ -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