📄 mphonequeryview.cpp
字号:
// MPhoneQueryView.cpp : implementation of the CMPhoneQueryView class
//
#include "stdafx.h"
#include "MPhoneQuery.h"
#include <io.h>
#include "MPhoneQueryDoc.h"
#include "MPhoneQueryView.h"
#include "LoginDlg.h"
#include "ChangePswd.h"
#include "AddAdminDlg.h"
#include "DelConfirmDlg.h"
#include "AddUserDlg.h"
#include "AddOrderDlg.h"
#include "QueryUserInfoDlg.h"
#include "QueryOrderDlg.h"
#include "UserQueryDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMPhoneQueryView
IMPLEMENT_DYNCREATE(CMPhoneQueryView, CView)
BEGIN_MESSAGE_MAP(CMPhoneQueryView, CView)
//{{AFX_MSG_MAP(CMPhoneQueryView)
ON_COMMAND(ID_MENU_LOGIN, OnMenuLogin)
ON_COMMAND(ID_MENU_CHANGEPWD, OnMenuChangepwd)
ON_COMMAND(ID_MENU_ADDADMININFO, OnMenuAddadmininfo)
ON_COMMAND(ID_MENU_LISTADMININFO, OnMenuListadmininfo)
ON_COMMAND(ID_MENU_DELADMININFO, OnMenuDeladmininfo)
ON_COMMAND(ID_MENU_LISTUSERINFO, OnMenuListuserinfo)
ON_COMMAND(ID_MENU_ADDUSERINFO, OnMenuAdduserinfo)
ON_COMMAND(ID_MENU_ALTERUSERINFO, OnMenuAlteruserinfo)
ON_COMMAND(ID_MENU_DELUSERINFO, OnMenuDeluserinfo)
ON_COMMAND(ID_MENU_QUERYUSERINFO, OnMenuQueryuserinfo)
ON_COMMAND(ID_MENU_LISTORDERINFO, OnMenuListorderinfo)
ON_COMMAND(ID_MENU_ADDORDERINFO, OnMenuAddorderinfo)
ON_COMMAND(ID_MENU_QUERYORDERINFO, OnMenuQueryorderinfo)
ON_COMMAND(ID_MENU_ALTERADMININFO, OnMenuAlteradmininfo)
ON_COMMAND(ID_MENU_BACKUP, OnMenuBackup)
ON_COMMAND(ID_MENU_RESTORE, OnMenuRestore)
ON_COMMAND(ID_MENU_USERQUERY, OnMenuUserquery)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMPhoneQueryView construction/destruction
CMPhoneQueryView::CMPhoneQueryView()
{
// TODO: add construction code here
m_bDelConfirm = FALSE;
}
CMPhoneQueryView::~CMPhoneQueryView()
{
}
BOOL CMPhoneQueryView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATEstrUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CMPhoneQueryView drawing
void CMPhoneQueryView::OnDraw(CDC* pDC)
{
CMPhoneQueryDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CRect rect_client, rect;
GetClientRect(&rect_client);
rect.left = rect.top =0;
rect.bottom = 30;
rect.right = rect_client.Width();
m_StaticCtrl.MoveWindow(&rect);
m_StaticCtrl.SetFont(&m_font);
}
/////////////////////////////////////////////////////////////////////////////
// CMPhoneQueryView printing
BOOL CMPhoneQueryView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CMPhoneQueryView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CMPhoneQueryView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CMPhoneQueryView diagnostics
#ifdef _DEBUG
void CMPhoneQueryView::AssertValid() const
{
CView::AssertValid();
}
void CMPhoneQueryView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CMPhoneQueryDoc* CMPhoneQueryView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMPhoneQueryDoc)));
return (CMPhoneQueryDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMPhoneQueryView self-defined functions
void CMPhoneQueryView::LoadListCtrl()
{
CRect rect;
GetClientRect(rect);
rect.top += 30;
m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT,
rect, this, 1);
m_ListCtrl.SetBkColor(RGB(177, 151, 240));
m_ListCtrl.SetTextColor(RGB(0,0,0));
m_ListCtrl.SetTextBkColor(RGB(177, 151, 240));
m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);
m_ListCtrl.InsertColumn(0,"Node ID", LVCFMT_LEFT, 250);
m_ListCtrl.InsertColumn(1,"2 ID", LVCFMT_LEFT, 250);
CString strInsert;
for (int i = 0; i < 100; i++)
{
strInsert.Format("%d", i);
m_ListCtrl.InsertItem(i, strInsert);
}
return;
}
void CMPhoneQueryView::UnLoadListCtrl()
{
m_ListCtrl.DestroyWindow();
return;
}
void CMPhoneQueryView::CreateAdminInfo()
{
CRect rect;
GetClientRect(rect);
rect.top += 30;
m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT, rect, this, 1);
m_ListCtrl.SetBkColor(RGB(177, 151, 240));
m_ListCtrl.SetTextColor(RGB(0,0,0));
m_ListCtrl.SetTextBkColor(RGB(177, 151, 240));
// Set EX-Style
m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);
// 创建标题
m_ListCtrl.InsertColumn(0,_T("管理员编号"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(1,_T("管理员姓名"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(2,_T("管理员密码"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(3,_T("管理员性别"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(4,_T("管理员家庭住址"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(5,_T("是否高层管理员"), LVCFMT_LEFT, 100);
// 获得所有记录
_variant_t Holder, strQuery;
strQuery = "select * from staff order by staff_id";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
if ( iCount == 0 )
{
return;
}
CString strInsert;
theApp.m_pADOSet->MoveFirst();
for(int i = 0; i < iCount; i++)
{
// 获得管理员ID
Holder = theApp.m_pADOSet->GetCollect("staff_id");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
m_ListCtrl.InsertItem(i, strInsert);
// 获得管理员姓名
Holder = theApp.m_pADOSet->GetCollect("staff_name");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 1, strInsert);
// 获得管理员密码
Holder = theApp.m_pADOSet->GetCollect("staff_password");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 2, strInsert);
// 获得管理员性别
Holder = theApp.m_pADOSet->GetCollect("sex");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
if(strInsert == '0')
{
strInsert = "女";
}
else
{
strInsert = "男";
}
m_ListCtrl.SetItemText(i, 3, strInsert);
// 获得管理员家庭住址
Holder = theApp.m_pADOSet->GetCollect("staff_addr");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 4, strInsert);
// 获得管理员是否为高层管理员:即是否具有添加与删除的权限
Holder = theApp.m_pADOSet->GetCollect("is_manager");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
if(strInsert == '0')
{
strInsert = "否";
}
else
{
strInsert = "是";
}
m_ListCtrl.SetItemText(i, 5, strInsert);
theApp.m_pADOSet->MoveNext();
}
m_strCurrentList = _T("管理员信息列表");
m_StaticCtrl.SetWindowText(m_strCurrentList);
return;
}
void CMPhoneQueryView::CreateOrderInfo()
{
CRect rect;
GetClientRect(rect);
rect.top += 30;
m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT, rect, this, 1);
m_ListCtrl.SetBkColor(RGB(177, 151, 240));
m_ListCtrl.SetTextColor(RGB(0,0,0));
m_ListCtrl.SetTextBkColor(RGB(177, 151, 240));
// Set EX-Style
m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);
// 创建标题
m_ListCtrl.InsertColumn(0,_T("充值纪录编号"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(1,_T("管理员编号"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(2,_T("管理员姓名"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(3,_T("手机号码"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(4,_T("充值金额"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(5,_T("手机余额"), LVCFMT_LEFT, 100);
// 获得所有记录
_variant_t Holder, strQuery, strSubQuery, SubHolder;
_RecordsetPtr pSubADOSet;
// 初始化ADO记录集
pSubADOSet.CreateInstance(__uuidof(Recordset));
strQuery = "select * from [order] order by order_id";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
if ( iCount == 0 )
{
return;
}
CString strInsert;
theApp.m_pADOSet->MoveFirst();
for(int i = 0; i < iCount; i++)
{
// 获得充值纪录编号
Holder = theApp.m_pADOSet->GetCollect("order_id");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
m_ListCtrl.InsertItem(i, strInsert);
// 获得管理员编号
Holder = theApp.m_pADOSet->GetCollect("staff_id");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 1, strInsert);
// 获得管理员姓名
strSubQuery = "select staff_name from staff where staff_id = '"+strInsert+"'";
theApp.ADOExecute(pSubADOSet, strSubQuery);
pSubADOSet ->MoveFirst();
SubHolder = pSubADOSet ->GetCollect("staff_name");
strInsert = SubHolder.vt == VT_NULL ? "" : (char*)(_bstr_t)SubHolder;
m_ListCtrl.SetItemText(i, 2, strInsert);
// 获得手机编号,作子查询后再输出
Holder = theApp.m_pADOSet->GetCollect("phone_id");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
strSubQuery = "select phone_no from phone where phone_id = '"+strInsert+"'";
theApp.ADOExecute(pSubADOSet, strSubQuery);
pSubADOSet ->MoveFirst();
SubHolder = pSubADOSet ->GetCollect("phone_no");
strInsert = SubHolder.vt == VT_NULL ? "" : (char*)(_bstr_t)SubHolder;
m_ListCtrl.SetItemText(i, 3, strInsert);
// 获得充值金额
Holder = theApp.m_pADOSet->GetCollect("money");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 4, strInsert);
// 获得手机余额
Holder = theApp.m_pADOSet->GetCollect("balance");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 5, strInsert);
theApp.m_pADOSet->MoveNext();
}
m_strCurrentList = _T("手机充值信息列表");
m_StaticCtrl.SetWindowText(m_strCurrentList);
return;
}
void CMPhoneQueryView::CreateOrderInfo(_variant_t strQuery)
{
CRect rect;
GetClientRect(rect);
rect.top += 30;
m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT, rect, this, 1);
m_ListCtrl.SetBkColor(RGB(177, 151, 240));
m_ListCtrl.SetTextColor(RGB(0,0,0));
m_ListCtrl.SetTextBkColor(RGB(177, 151, 240));
// Set EX-Style
m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);
// 创建标题
m_ListCtrl.InsertColumn(0,_T("充值纪录编号"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(1,_T("管理员编号"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(2,_T("管理员姓名"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(3,_T("手机号码"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(4,_T("充值金额"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(5,_T("手机余额"), LVCFMT_LEFT, 100);
// 获得所有记录
_variant_t Holder, strSubQuery, SubHolder;
_RecordsetPtr pSubADOSet;
// 初始化ADO记录集
pSubADOSet.CreateInstance(__uuidof(Recordset));
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
if ( iCount == 0 )
{
AfxMessageBox(_T("没有该条纪录!请核实后再来"), MB_ICONEXCLAMATION);
return;
}
CString strInsert;
theApp.m_pADOSet->MoveFirst();
for(int i = 0; i < iCount; i++)
{
// 获得充值纪录编号
Holder = theApp.m_pADOSet->GetCollect("order_id");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
m_ListCtrl.InsertItem(i, strInsert);
// 获得管理员编号
Holder = theApp.m_pADOSet->GetCollect("staff_id");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 1, strInsert);
// 获得管理员姓名
strSubQuery = "select staff_name from staff where staff_id = '"+strInsert+"'";
theApp.ADOExecute(pSubADOSet, strSubQuery);
pSubADOSet ->MoveFirst();
SubHolder = pSubADOSet ->GetCollect("staff_name");
strInsert = SubHolder.vt == VT_NULL ? "" : (char*)(_bstr_t)SubHolder;
m_ListCtrl.SetItemText(i, 2, strInsert);
// 获得手机编号,作子查询后再输出
Holder = theApp.m_pADOSet->GetCollect("phone_id");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
strSubQuery = "select phone_no from phone where phone_id = '"+strInsert+"'";
theApp.ADOExecute(pSubADOSet, strSubQuery);
pSubADOSet ->MoveFirst();
SubHolder = pSubADOSet ->GetCollect("phone_no");
strInsert = SubHolder.vt == VT_NULL ? "" : (char*)(_bstr_t)SubHolder;
m_ListCtrl.SetItemText(i, 3, strInsert);
// 获得充值金额
Holder = theApp.m_pADOSet->GetCollect("money");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 4, strInsert);
// 获得手机余额
Holder = theApp.m_pADOSet->GetCollect("balance");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 5, strInsert);
theApp.m_pADOSet->MoveNext();
}
m_strCurrentList = _T("手机充值信息列表");
m_StaticCtrl.SetWindowText(m_strCurrentList);
return;
}
void CMPhoneQueryView::CreateUserInfo()
{
CRect rect;
GetClientRect(rect);
rect.top += 30;
m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT, rect, this, 1);
m_ListCtrl.SetBkColor(RGB(177, 151, 240));
m_ListCtrl.SetTextColor(RGB(0,0,0));
m_ListCtrl.SetTextBkColor(RGB(177, 151, 240));
// Set EX-Style
m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);
// 创建标题
m_ListCtrl.InsertColumn(0, _T("手机用户编号"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(1, _T("手机号码"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(2, _T("手机密码"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(3, _T("手机套餐使用种类"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(4, _T("手机余额"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(5, _T("用户姓名"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(6, _T("用户性别"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(7, _T("用户身份证号"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(8, _T("用户家庭住址"), LVCFMT_LEFT, 100);
// 获得所有有用户记载的手机记录
_variant_t Holder, strQuery;
strQuery = "select * from phone, customer \
where phone.cus_id = customer.cus_id order by phone_id";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
if ( iCount != 0 )
{
CString strInsert;
theApp.m_pADOSet->MoveFirst();
for(int i = 0; i < iCount; i++)
{
// 获得手机用户编号
Holder = theApp.m_pADOSet->GetCollect("phone_id");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
m_ListCtrl.InsertItem(i, strInsert);
// 获得手机号码
Holder = theApp.m_pADOSet->GetCollect("phone_no");
strInsert = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 1, strInsert);
// 获得手机密码
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -