⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mphonequeryview.cpp

📁 用c++编的一个手机花费管理系统的一个应用,比较实用
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// 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 + -