📄 memberview.cpp
字号:
// memberView.cpp : implementation of the CMemberView class
//
#include "stdafx.h"
#include "member.h"
#include "memberDoc.h"
#include "memberView.h"
#include "MainFrm.h"
#include "MemberReSet.h"
#include "MemberDialog.h"
#include "MemberEditDlg.h"
#include "ScoreDlg.h"
#include "ScoreReSet.h"
#include "MemberAdd.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMemberView
IMPLEMENT_DYNCREATE(CMemberView, CListView)
BEGIN_MESSAGE_MAP(CMemberView, CListView)
//{{AFX_MSG_MAP(CMemberView)
ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CListView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CListView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CListView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMemberView construction/destruction
CMemberView::CMemberView()
{
// TODO: add construction code here
}
CMemberView::~CMemberView()
{
}
BOOL CMemberView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
//设置CListCtrl的格式为:LVS_REPORT并且LVS_SINGLESEL
cs.style|=LVS_REPORT|LVS_SINGLESEL;
return CListView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CMemberView drawing
void CMemberView::OnDraw(CDC* pDC)
{
CMemberDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
}
void CMemberView::OnInitialUpdate()
{
//创建一个CListCtrl指针
CListCtrl *ctl;
ctl=&GetListCtrl(); //指向CListView的CListCtrl
//表格风格
ctl->SetExtendedStyle(ctl->GetExtendedStyle()|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
//利用CLisrCtrl设置列的题头
ctl->InsertColumn(0,"学号",LVCFMT_LEFT,100);
ctl->InsertColumn(1,"姓名",LVCFMT_LEFT,100);
ctl->InsertColumn(2,"性别",LVCFMT_LEFT,80);
ctl->InsertColumn(4,"学院",LVCFMT_LEFT,100);
ctl->InsertColumn(5,"专业",LVCFMT_LEFT,100);
ctl->InsertColumn(6,"所在年级",LVCFMT_LEFT,100);
ctl->InsertColumn(7,"联系号码",LVCFMT_LEFT,100);
ctl->InsertColumn(8,"寝室地址",LVCFMT_LEFT,200);
OnPaint();
CListView::OnInitialUpdate();
//获取CMainFrame的指针
CMainFrame *m_Frm=(CMainFrame*)::AfxGetMainWnd();
//将CMainFrame的m_ListViet指针变量指向CMemberView的实列
m_Frm->m_ListView=this;
// TODO: You may populate your ListView with items by directly accessing
// its list control through a call to GetListCtrl().
}
/////////////////////////////////////////////////////////////////////////////
// CMemberView printing
BOOL CMemberView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CMemberView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CMemberView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CMemberView diagnostics
#ifdef _DEBUG
void CMemberView::AssertValid() const
{
CListView::AssertValid();
}
void CMemberView::Dump(CDumpContext& dc) const
{
CListView::Dump(dc);
}
CMemberDoc* CMemberView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMemberDoc)));
return (CMemberDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMemberView message handlers
void CMemberView::RemoveAll()
{
//增加指针变量指向ListView的CListCtrl
CListCtrl *ctl;
ctl=&GetListCtrl();
//删除CListCtrl中的所有记录
ctl->DeleteAllItems();
}
//strSearch查询条件 strMember关键字
void CMemberView::ListMember(CString strSearch,CString strMember)
{
//前此输出的用户记录
RemoveAll();
//建立一个指针,用以操作ListCtrl输出用户记录
CListCtrl *ctl;
ctl=&GetListCtrl();
//创建CMemberReSet的实例
CMemberReSet m_MemberReSet;
//记录用户序号
int i=0;
//定义一个变量来保存"%"以便设置SQL语句
char chrTemp='%';
CString strTemp;
try
{
if(m_MemberReSet.IsOpen())
m_MemberReSet.Close();
//设置查询条件"MemName=strMemberName"
if(strMember=="")
{
AfxMessageBox("请输入关键字");
return;
}
if(strSearch=="学号")
{
CString str;
str.Format("select * from member where MemID = '%s' order by MemID ASC",strMember);
m_MemberReSet.Open(CRecordset::snapshot,str,CRecordset::none);
}
else if(strSearch=="姓名")
{
m_MemberReSet.m_strFilter.Format("MemName LIKE '%c%s%c' order by MemID ASC",chrTemp,strMember.operator LPCTSTR(),chrTemp);
m_MemberReSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
}
else if(strSearch=="学院")
{
m_MemberReSet.m_strFilter.Format("MemIns = '%s' order by MemID ASC",strMember.operator LPCTSTR());
m_MemberReSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
}
else if(strSearch=="专业")
{
m_MemberReSet.m_strFilter.Format("MemSpe LIKE '%c%s%c' order by MemID ASC",chrTemp,strMember.operator LPCTSTR(),chrTemp);
m_MemberReSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
}
else if(strSearch=="年级")
{
m_MemberReSet.m_strFilter.Format("MemYear LIKE '%c%s%c' order by MemID ASC",chrTemp,strMember.operator LPCTSTR(),chrTemp);
m_MemberReSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
}
else if(strSearch=="年级tree")
{
m_MemberReSet.m_strFilter.Format("MemYear = %s order by MemID ASC",strMember.operator LPCTSTR());
m_MemberReSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
}
else
{
AfxMessageBox("条件选择错误");
return;
}
//输出匹配上查询到的用户记录,直到记录为空
while(!m_MemberReSet.IsEOF())
{
ctl->InsertItem(i,m_MemberReSet.m_MemID);
ctl->SetItemText(i,1,m_MemberReSet.m_MemName);
ctl->SetItemText(i,2,m_MemberReSet.m_MemSex);
ctl->SetItemText(i,3,m_MemberReSet.m_MemIns);
ctl->SetItemText(i,4,m_MemberReSet.m_MemSpe);
ctl->SetItemText(i,5,m_MemberReSet.m_MemYear);
ctl->SetItemText(i,6,m_MemberReSet.m_MemPhone);
ctl->SetItemText(i,7,m_MemberReSet.m_MemBed);
m_MemberReSet.MoveNext();
}
if(m_MemberReSet.IsOpen())
m_MemberReSet.Close();
}
catch(CDBException *e)
{
e->Delete();
return;
}
}
void CMemberView::EditCurUser()
{
//建立一个指针,用以操作ListCtrl输出用户记录
CListCtrl *ctl;
ctl=&GetListCtrl();
//寻找当前选中的记录的位置
POSITION pos=ctl->GetFirstSelectedItemPosition();
if (pos==NULL)
{
//如果没有选择记录,则提示并退出
AfxMessageBox("请先选择一条信息!");
return;
}
//获取当前记录的位置游标
int m_CurUser=ctl->GetNextSelectedItem(pos);
//创建一个MemberEditDlg的实例
CMemberEditDlg m_MemberEditDlg;
CMemberReSet m_MemberReSet;
//创建一个临时字符串来保存当前用户信息
char chrTemp[201] = {'\0'};
//查找学号
ctl->GetItemText(m_CurUser,0,chrTemp,sizeof(char[20]));
if(m_MemberReSet.IsOpen())
m_MemberReSet.Close();
m_MemberReSet.m_strFilter.Format("MemID LIKE '%s'",chrTemp);
m_MemberReSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
//输出匹配上条件用户记录,直到记录为空
if(m_MemberReSet.IsOpen() && !m_MemberReSet.IsEOF())
{
//开始显示记录的内容
m_MemberEditDlg.m_MemID=m_MemberReSet.m_MemID;
m_MemberEditDlg.m_MemName=m_MemberReSet.m_MemName;
m_MemberEditDlg.m_MemSex=m_MemberReSet.m_MemSex;
m_MemberEditDlg.m_MemBorn=m_MemberReSet.m_MemBorn;
m_MemberEditDlg.m_MemPolity=m_MemberReSet.m_MemPolity;
m_MemberEditDlg.m_MemNative=m_MemberReSet.m_MemNative;
m_MemberEditDlg.m_MemPlace=m_MemberReSet.m_MemPlace;
m_MemberEditDlg.m_MemIns=m_MemberReSet.m_MemIns;
m_MemberEditDlg.m_MemSpe=m_MemberReSet.m_MemSpe;
m_MemberEditDlg.m_MemSchool=m_MemberReSet.m_MemSchool;
m_MemberEditDlg.m_MemBed=m_MemberReSet.m_MemBed;
m_MemberEditDlg.m_MemEmail=m_MemberReSet.m_MemEmail;
m_MemberEditDlg.m_MemYear=m_MemberReSet.m_MemYear;
m_MemberEditDlg.m_MemCard=m_MemberReSet.m_MemCard;
m_MemberEditDlg.m_MemPhone=m_MemberReSet.m_MemPhone;
m_MemberEditDlg.m_MemHadd=m_MemberReSet.m_MemHadd;
m_MemberEditDlg.m_MemHphone=m_MemberReSet.m_MemHphone;
m_MemberEditDlg.m_Remark=m_MemberReSet.m_Remark;
}
if(m_MemberEditDlg.DoModal()!=IDOK)
{
//如果用户选择取消按钮,则退出
return;
}
UpdateData(FALSE);
if(MessageBox("确定修改记录?","修改确认",MB_YESNO|MB_ICONQUESTION)==IDYES)
{
try
{
if(m_MemberReSet.IsOpen())
m_MemberReSet.Close();
//设置查询条件"MemID=chrTemp"
m_MemberReSet.m_strFilter.Format("MemID='%s'",chrTemp);
m_MemberReSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
//如果用户记录存在,则进行修改操作
if(m_MemberReSet.IsOpen()&&!m_MemberReSet.IsEOF())
{
//设置编辑当前记录
m_MemberReSet.Edit();
//开始编辑该条记录的内容
m_MemberReSet.m_MemID=m_MemberEditDlg.m_MemID;
m_MemberReSet.m_MemName=m_MemberEditDlg.m_MemName;
m_MemberReSet.m_MemSex=m_MemberEditDlg.m_MemSex;
m_MemberReSet.m_MemBorn=m_MemberEditDlg.m_MemBorn;
m_MemberReSet.m_MemPolity=m_MemberEditDlg.m_MemPolity;
m_MemberReSet.m_MemNative=m_MemberEditDlg.m_MemNative;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -