📄 page1.cpp
字号:
// Page1.cpp : implementation file
//
#include "stdafx.h"
#include "cj.h"
#include "Page1.h"
#include "ADDDIALOG.h"
#include "DELETEDLG.h"
#include "ModifyDlg.h"
#include "FindDlg.h"
#include "BRecordSet.h"
#include "DRecordSet.h"
#include "TRecordSet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CDatabase m_db;
/////////////////////////////////////////////////////////////////////////////
// CPage1 property page
IMPLEMENT_DYNCREATE(CPage1, CPropertyPage)
CPage1::CPage1() : CPropertyPage(CPage1::IDD)
{
//{{AFX_DATA_INIT(CPage1)
//}}AFX_DATA_INIT
}
CPage1::~CPage1()
{
}
void CPage1::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPage1)
DDX_Control(pDX, IDC_LIST3, m_clist3);
DDX_Control(pDX, IDC_LIST2, m_clist2);
DDX_Control(pDX, IDC_LIST1, m_clist1);
DDX_Control(pDX, IDC_COMBO1, m_xuan);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPage1, CPropertyPage)
//{{AFX_MSG_MAP(CPage1)
ON_BN_CLICKED(IDC_STATR, OnStatr)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_DELECT, OnDelect)
ON_BN_CLICKED(IDC_EDIT, OnEdit)
ON_BN_CLICKED(IDC_FIND, OnFind)
ON_BN_CLICKED(IDC_ALL, OnAll)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPage1 message handlers
BOOL CPage1::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
m_clist1.SetExtendedStyle(LVS_EX_GRIDLINES ); //给LIST添加网格
m_clist2.SetExtendedStyle(LVS_EX_GRIDLINES );
m_clist3.SetExtendedStyle(LVS_EX_GRIDLINES );
m_clist1.InsertColumn(0,"科目",LVCFMT_LEFT,45);
m_clist1.InsertColumn(1,"总成绩",LVCFMT_LEFT,50);
m_clist1.InsertColumn(2,"平均成绩",LVCFMT_LEFT,65);
m_clist1.InsertColumn(3,"及格人数",LVCFMT_LEFT,65);
m_clist1.InsertColumn(4,"优秀人数",LVCFMT_LEFT,65);
m_clist2.InsertColumn(0,"科目",LVCFMT_LEFT,45);
m_clist2.InsertColumn(1,"任课老师",LVCFMT_LEFT,70);
m_clist3.InsertColumn(0,"学号",LVCFMT_LEFT,45);
m_clist3.InsertColumn(1,"姓名",LVCFMT_LEFT,45);
m_clist3.InsertColumn(2,"数学",LVCFMT_LEFT,45);
m_clist3.InsertColumn(3,"物理",LVCFMT_LEFT,45);
m_clist3.InsertColumn(4,"化学",LVCFMT_LEFT,45);
m_clist3.InsertColumn(5,"英语",LVCFMT_LEFT,45);
m_clist3.InsertColumn(6,"政治",LVCFMT_LEFT,45);
m_clist3.InsertColumn(7,"总成绩",LVCFMT_LEFT,60);
m_clist3.InsertColumn(8,"平均成绩",LVCFMT_LEFT,65);
GetDlgItem(IDC_ADD)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_DELECT)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_FIND)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_ALL)->ShowWindow(SW_HIDE);
m_xuan.SetCurSel(1);
CTRecordSet m_tset(&m_db);
CBRecordSet m_bset(&m_db);
CDRecordSet m_set(&m_db);
if (m_db.IsOpen()) m_db.Close();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CPage1::OnStatr()
{
// TODO: Add your control notification handler code here
GetDlgItem(IDC_ADD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_DELECT)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_FIND)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_ALL)->ShowWindow(SW_SHOW);
m_db.Open( _T( "lhwy" ), FALSE,FALSE, _T( "ODBC " ),TRUE );
if(m_set.IsOpen()) m_set.Close();
if(m_tset.IsOpen()) m_tset.Close();
if(m_bset.IsOpen()) m_bset.Close();
m_xuan.GetLBText(m_xuan.GetCurSel(),m_Getstring);
if(m_Getstring=="一班")
m_set.Open();
if(m_Getstring=="二班")
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]",NULL);
if(m_Getstring=="一班")
m_tset.Open();
if(m_Getstring=="二班")
m_tset.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2TECHER]",NULL);
if(m_Getstring=="一班")
m_bset.Open();
if(m_Getstring=="二班")
m_bset.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2OBJECT]",NULL);
//处理表3
m_clist3.DeleteAllItems();
int n = 0 ;
while(!m_set.IsEOF())
{
m_clist3.InsertItem(n,"");
CString s;
s.Format("%d",m_set.m_column1);
m_clist3.SetItemText(n,0,s);
m_clist3.SetItemText(n,1,m_set.m_column2);
s.Format("%.1f",m_set.m_column3);
m_clist3.SetItemText(n,2,s);
s.Format("%.1f",m_set.m_column4);
m_clist3.SetItemText(n,3,s);
s.Format("%.1f",m_set.m_column5);
m_clist3.SetItemText(n,4,s);
s.Format("%.1f",m_set.m_column6);
m_clist3.SetItemText(n,5,s);
s.Format("%.1f",m_set.m_column7);
m_clist3.SetItemText(n,6,s);
s.Format("%.1f",m_set.m_column8);
m_clist3.SetItemText(n,7,s);
s.Format("%.2f",m_set.m_column9);
m_clist3.SetItemText(n,8,s);
m_set.MoveNext();
n++;
}
m_set.Close();
//处理表2
m_clist2.DeleteAllItems();
int i = 0 ;
while(!m_tset.IsEOF())
{
m_clist2.InsertItem(i,"");
m_clist2.SetItemText(i,0,m_tset.m_column1);
m_clist2.SetItemText(i,1,m_tset.m_column2);
m_tset.MoveNext();
i++;
}
m_tset.Close();
//处理表1
m_clist1.DeleteAllItems();
int m = 0 ;
while (!m_bset.IsEOF())
{
m_clist1.InsertItem(m,"");
m_clist1.SetItemText(m,0,m_bset.m_column1);
CString e;
e.Format("%.1f",m_bset.m_column2);
m_clist1.SetItemText(m,1,e);
e.Format("%.2f",m_bset.m_column3);
m_clist1.SetItemText(m,2,e);
e.Format("%.1f",m_bset.m_column4);
m_clist1.SetItemText(m,3,e);
e.Format("%.1f",m_bset.m_column5);
m_clist1.SetItemText(m,4,e);
m_bset.MoveNext();
m++;
}
m_bset.Close();
m_db.Close();
// GetDlgItem(IDC_STATR)->EnableWindow(FALSE);
}
void CPage1::OnAdd()
{
// TODO: Add your control notification handler code here
// UpdateData();
CADDDIALOG adddialog;
if (adddialog.DoModal()==IDOK)
{
if(m_Getstring=="一班")
{
m_set.Open();
if(adddialog.m_nxuehao>=200)
{AfxMessageBox(_T("一班的学号在100-200之间!"),MB_OKCANCEL ,0); return;}
}
if(m_Getstring=="二班")
{
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]",NULL);
if(adddialog.m_nxuehao<200||adddialog.m_nxuehao>=300)
{AfxMessageBox(_T("二班的学号在200-300之间!"),MB_OKCANCEL ,0); return ;}
}
m_set.AddNew();
m_set.m_column1=adddialog.m_nxuehao;
m_set.m_column2=adddialog.m_nName;
m_set.m_column3=adddialog.m_nMaths;
m_set.m_column4=adddialog.m_nwuli;
m_set.m_column5=adddialog.m_nhuaxue;
m_set.m_column6=adddialog.m_nEnglish;
m_set.m_column7=adddialog.m_nzhengz;
m_set.m_column8=adddialog.m_nMaths+adddialog.m_nwuli+adddialog.m_nhuaxue+adddialog.m_nEnglish+adddialog.m_nzhengz;
m_set.m_column9=(float)(m_set.m_column8/5);
m_set.Update();
m_set.Requery();
m_set.MoveLast();
CString s;
m_clist3.InsertItem(0,"");
s.Format("%d",adddialog.m_nxuehao);
m_clist3.SetItemText(0,0,s);
m_clist3.SetItemText(0,1,adddialog.m_nName);
s.Format("%.f",adddialog.m_nMaths);
m_clist3.SetItemText(0,2,s);
s.Format("%.f",adddialog.m_nwuli);
m_clist3.SetItemText(0,3,s);
s.Format("%.f",adddialog.m_nhuaxue);
m_clist3.SetItemText(0,4,s);
s.Format("%.f",adddialog.m_nEnglish);
m_clist3.SetItemText(0,5,s);
s.Format("%.f",adddialog.m_nzhengz);
m_clist3.SetItemText(0,6,s);
s.Format("%.2f",adddialog.m_nMaths+adddialog.m_nwuli+adddialog.m_nhuaxue+adddialog.m_nEnglish+adddialog.m_nzhengz);
m_clist3.SetItemText(0,7,s);
s.Format("%.2f",m_set.m_column8/5);
m_clist3.SetItemText(0,8,s);
m_set.MoveFirst();
m_set.Close();
}
}
void CPage1::OnDelect()
{
// TODO: Add your control notification handler code here
CDELETEDLG deletedlg;
if (deletedlg.DoModal()==IDOK)
{
if (deletedlg.m_npassword!=122100)
AfxMessageBox(_T("您输入的密码不正确,您没有权限修改记录! :( ,请在帮助文档中获得密码!"),MB_OKCANCEL ,0);
else
{
BOOL b=FALSE;
if(m_Getstring=="一班")
{
m_set.Open();
}
if(m_Getstring=="二班")
{
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]",NULL);
}
m_set.MoveFirst();
do
{
if(deletedlg.m_nxuehao!=m_set.m_column1)
m_set.MoveNext();
else
{
b=TRUE;
m_set.Delete();
// m_set.Update(); //updatedata 只用在ADDNEW和Edit 中,用来更新记录表;
m_set.Requery();
m_clist3.DeleteAllItems();
int n = 0 ;
while(!m_set.IsEOF())
{
m_clist3.InsertItem(n,"");
CString s;
s.Format("%d",m_set.m_column1);
m_clist3.SetItemText(n,0,s);
m_clist3.SetItemText(n,1,m_set.m_column2);
s.Format("%.1f",m_set.m_column3);
m_clist3.SetItemText(n,2,s);
s.Format("%.1f",m_set.m_column4);
m_clist3.SetItemText(n,3,s);
s.Format("%.1f",m_set.m_column5);
m_clist3.SetItemText(n,4,s);
s.Format("%.1f",m_set.m_column6);
m_clist3.SetItemText(n,5,s);
s.Format("%.1f",m_set.m_column7);
m_clist3.SetItemText(n,6,s);
s.Format("%.1f",m_set.m_column8);
m_clist3.SetItemText(n,7,s);
s.Format("%.2f",m_set.m_column9);
m_clist3.SetItemText(n,8,s);
m_set.MoveNext();
n++;
}
m_set.MoveFirst();
break;
}
}while(!m_set.IsEOF());
m_set.Close();
if (b==FALSE) AfxMessageBox("没有此记录");
}
}
}
void CPage1::OnEdit()
{
// TODO: Add your control notification handler code here
if(m_Getstring=="一班")
m_set.Open();
if(m_Getstring=="二班")
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]",NULL);
CModifyDlg modifydlg;
if (modifydlg.DoModal() == IDOK )
{
if(modifydlg.m_npassword != 122100)
AfxMessageBox(_T(""),MB_OKCANCEL,0);
else
{
m_set.MoveFirst();
do
{
if (m_set.m_column1 != modifydlg.m_nxuehao)
AfxMessageBox(_T(""),MB_OKCANCEL,0);
else
{
m_clist3.DeleteAllItems();
m_set.Edit();
m_set.m_column2=modifydlg.m_Name;
m_set.m_column3=modifydlg.m_nMaths;
m_set.m_column4=modifydlg.m_nwuli;
m_set.m_column5=modifydlg.m_nhuaxue;
m_set.m_column6=modifydlg.m_nEnglish;
m_set.m_column7=modifydlg.m_nzhengz;
m_set.m_column8=modifydlg.m_nMaths+modifydlg.m_nwuli+modifydlg.m_nhuaxue+modifydlg.m_nEnglish+modifydlg.m_nzhengz;
m_set.m_column9=m_set.m_column8/5;
m_set.Update();
m_set.Requery(); //Rebuild 表
m_clist3.DeleteAllItems();
int n = 0 ;
while(!m_set.IsEOF())
{
m_clist3.InsertItem(n,"");
CString s;
s.Format("%d",m_set.m_column1);
m_clist3.SetItemText(n,0,s);
m_clist3.SetItemText(n,1,m_set.m_column2);
s.Format("%.1f",m_set.m_column3);
m_clist3.SetItemText(n,2,s);
s.Format("%.1f",m_set.m_column4);
m_clist3.SetItemText(n,3,s);
s.Format("%.1f",m_set.m_column5);
m_clist3.SetItemText(n,4,s);
s.Format("%.1f",m_set.m_column6);
m_clist3.SetItemText(n,5,s);
s.Format("%.1f",m_set.m_column7);
m_clist3.SetItemText(n,6,s);
s.Format("%.1f",m_set.m_column8);
m_clist3.SetItemText(n,7,s);
s.Format("%.2f",m_set.m_column9);
m_clist3.SetItemText(n,8,s);
m_set.MoveNext();
n++;
}
m_set.MoveFirst();
break;
}
}while(!m_set.IsEOF());
}
}
m_set.Close();
}
void CPage1::OnFind()
{
// TODO: Add your control notification handler code here
CFindDlg findialg;
if (findialg.DoModal()==IDOK)
{
if(m_Getstring=="一班")
{
m_set.Open();
}
if(m_Getstring=="二班")
{
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]",NULL);
}
if(findialg.m_getstring2==">=")
m_set.m_strFilter.Format("[%s]>=%.f",findialg.m_getstring1,findialg.m_ntiaojian);
if(findialg.m_getstring2=="=")
m_set.m_strFilter.Format("[%s]=%.f",findialg.m_getstring1,findialg.m_ntiaojian);
if(findialg.m_getstring2=="<=")
m_set.m_strFilter.Format("[%s]<=%.f",findialg.m_getstring1,findialg.m_ntiaojian);
m_clist3.DeleteAllItems();
m_set.Requery();
if(m_set.IsEOF()) { AfxMessageBox(_T("没有您需要的记录! :("),MB_OKCANCEL,0); m_set.Close();}
else
{
int n = 0 ;
while(!m_set.IsEOF())
{
m_clist3.InsertItem(n,"");
CString s;
s.Format("%d",m_set.m_column1);
m_clist3.SetItemText(n,0,s);
m_clist3.SetItemText(n,1,m_set.m_column2);
s.Format("%.1f",m_set.m_column3);
m_clist3.SetItemText(n,2,s);
s.Format("%.1f",m_set.m_column4);
m_clist3.SetItemText(n,3,s);
s.Format("%.1f",m_set.m_column5);
m_clist3.SetItemText(n,4,s);
s.Format("%.1f",m_set.m_column6);
m_clist3.SetItemText(n,5,s);
s.Format("%.1f",m_set.m_column7);
m_clist3.SetItemText(n,6,s);
s.Format("%.1f",m_set.m_column8);
m_clist3.SetItemText(n,7,s);
s.Format("%.2f",m_set.m_column9);
m_clist3.SetItemText(n,8,s);
m_set.MoveNext();
n++;
}
m_set.Close();
}
}
}
void CPage1::OnAll()
{
// TODO: Add your control notification handler code here
m_clist3.DeleteAllItems();
if(m_set.IsOpen()) m_set.Close();
m_xuan.GetLBText(m_xuan.GetCurSel(),m_Getstring);
m_set.m_strFilter.Empty();
if(m_Getstring=="一班")
m_set.Open();
if(m_Getstring=="二班")
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]",NULL);
// m_clist3.DeleteAllItems();
int n = 0 ;
while(!m_set.IsEOF())
{
m_clist3.InsertItem(n,"");
CString s;
s.Format("%d",m_set.m_column1);
m_clist3.SetItemText(n,0,s);
m_clist3.SetItemText(n,1,m_set.m_column2);
s.Format("%.1f",m_set.m_column3);
m_clist3.SetItemText(n,2,s);
s.Format("%.1f",m_set.m_column4);
m_clist3.SetItemText(n,3,s);
s.Format("%.1f",m_set.m_column5);
m_clist3.SetItemText(n,4,s);
s.Format("%.1f",m_set.m_column6);
m_clist3.SetItemText(n,5,s);
s.Format("%.1f",m_set.m_column7);
m_clist3.SetItemText(n,6,s);
s.Format("%.1f",m_set.m_column8);
m_clist3.SetItemText(n,7,s);
s.Format("%.2f",m_set.m_column9);
m_clist3.SetItemText(n,8,s);
m_set.MoveNext();
n++;
}
m_set.Close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -