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

📄 mydataedit.cpp

📁 一个学生考试成绩管理的半成品
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// MyDataEdit.cpp : 实现文件
//

#include "stdafx.h"
#include "ScoreGather.h"
#include "MyDataEdit.h"
#include ".\mydataedit.h"


// CMyDataEdit 对话框

IMPLEMENT_DYNAMIC(CMyDataEdit, CDialog)
CMyDataEdit::CMyDataEdit(CWnd* pParent /*=NULL*/)
	: CDialog(CMyDataEdit::IDD, pParent)
	, type(FALSE)
{
}

CMyDataEdit::~CMyDataEdit()
{
}

void CMyDataEdit::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_SCHOOLNAME, m_schoolname);
	DDX_Control(pDX, IDC_COURSENAME, m_coursename);
	DDX_Control(pDX, IDC_STUDENTNAME, m_studentname);
	DDX_Control(pDX, IDC_STUDENTREADEM, m_studentreadem);
	DDX_Control(pDX, IDC_CLASSNAME, m_classname);
	DDX_Control(pDX, IDC_TEACHERNAME, m_teachername);
	DDX_Control(pDX, IDC_GATHER, m_gather);
	DDX_Control(pDX, IDC_DATALIST, m_datalist);
	DDX_Control(pDX, IDC_YEAR, m_year);
	DDX_Control(pDX, IDC_STATICDATA, m_staticdata);
	DDX_Control(pDX, IDC_APPEND, m_append);
	DDX_Control(pDX, IDC_MODIFY, m_modify);
	DDX_Control(pDX, IDC_DEL, m_del);
	DDX_Control(pDX, IDC_NEWVIEW, m_newview);
	DDX_Control(pDX, IDC_FIRST, m_first);
	DDX_Control(pDX, IDC_PREV, m_prev);
	DDX_Control(pDX, IDC_NEXT, m_next);
	DDX_Control(pDX, IDC_LAST, m_last);
	DDX_Control(pDX, ID_OK, m_ok);
	DDX_Control(pDX, IDC_PLACE, m_place);
}


BEGIN_MESSAGE_MAP(CMyDataEdit, CDialog)
	ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
	ON_BN_CLICKED(ID_OK, OnBnClickedOk)
	ON_BN_CLICKED(IDC_APPEND, OnBnClickedAppend)
	ON_BN_CLICKED(IDC_MODIFY, OnBnClickedModify)
	ON_BN_CLICKED(IDC_DEL, OnBnClickedDel)
	ON_BN_CLICKED(IDC_FIRST, OnBnClickedFirst)
	ON_BN_CLICKED(IDC_PREV, OnBnClickedPrev)
	ON_BN_CLICKED(IDC_NEXT, OnBnClickedNext)
	ON_BN_CLICKED(IDC_LAST, OnBnClickedLast)
	ON_NOTIFY(NM_CLICK, IDC_DATALIST, OnNMClickDatalist)
	ON_EN_SETFOCUS(IDC_TEACHERNAME, OnEnSetfocusTeachername)
	ON_WM_ERASEBKGND()
	ON_WM_CTLCOLOR()
	ON_CBN_SELCHANGE(IDC_STUDENTREADEM, OnCbnSelchangeStudentreadem)
	ON_CBN_SELCHANGE(IDC_YEAR, OnCbnSelchangeYear)
	ON_CBN_SELCHANGE(IDC_SCHOOLNAME, OnCbnSelchangeSchoolname)
	ON_CBN_SELCHANGE(IDC_CLASSNAME, OnCbnSelchangeClassname)
	ON_CBN_SELCHANGE(IDC_COURSENAME, OnCbnSelchangeCoursename)
	ON_CBN_SELCHANGE(IDC_PLACE, OnCbnSelchangePlace)
	ON_BN_CLICKED(IDC_NEWVIEW, OnBnClickedNewview)
END_MESSAGE_MAP()


// CMyDataEdit 消息处理程序

void CMyDataEdit::OnBnClickedCancel()
{
}

void CMyDataEdit::OnBnClickedOk()
{
	CDialog::OnOK();
}

BOOL CMyDataEdit::OnInitDialog()
{
	CDialog::OnInitDialog();

	m_tooltip.Create(this,TTS_ALWAYSTIP);
	m_tooltip.Activate(TRUE);
	m_tooltip.AddTool(GetDlgItem(IDC_YEAR),IDS_YEAR);
	m_tooltip.AddTool(GetDlgItem(IDC_PLACE),IDS_SCN_PLACENAME);
	m_tooltip.AddTool(GetDlgItem(IDC_SCHOOLNAME),IDS_SCHOOL);
	m_tooltip.AddTool(GetDlgItem(IDC_CLASSNAME),IDS_CLASS);
	m_tooltip.AddTool(GetDlgItem(IDC_COURSENAME),IDS_COURSE);
	m_tooltip.AddTool(GetDlgItem(IDC_DEL),IDS_DEL);
	m_tooltip.AddTool(GetDlgItem(IDC_STUDENTNAME),IDS_STUDENTNAME);
	m_tooltip.AddTool(GetDlgItem(IDC_STUDENTREADEM),IDS_STUDENTREADEM);
	m_tooltip.AddTool(GetDlgItem(IDC_GATHER),IDS_GATHER);
	m_tooltip.AddTool(GetDlgItem(IDC_MODIFY),IDS_MODIFY);
	m_tooltip.AddTool(GetDlgItem(IDC_NEWVIEW),IDS_DATAEDIT_NEWVIEW);
	m_tooltip.AddTool(GetDlgItem(IDC_FIRST),IDS_FIRST);
	m_tooltip.AddTool(GetDlgItem(IDC_PREV),IDS_PREV);
	m_tooltip.AddTool(GetDlgItem(IDC_NEXT),IDS_NEXT);
	m_tooltip.AddTool(GetDlgItem(IDC_LAST),IDS_LAST);
	m_tooltip.AddTool(GetDlgItem(ID_OK),IDS_CANCEL);
	m_tooltip.AddTool(GetDlgItem(IDC_DATALIST),IDS_DATALIST);
	VERIFY(m_font.CreateFont(22,-8,0,0,FW_NORMAL,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_SWISS,"Arial"));
	GetDlgItem(IDC_STATICDATA)->SetFont(&m_font,1);
	if(type)
	{
		SetDlgItemText(IDC_APPEND,"添  加");
		m_tooltip.AddTool(GetDlgItem(IDC_APPEND),IDS_ADD);
		m_tooltip.AddTool(GetDlgItem(IDC_TEACHERNAME),IDS_TEACHERNAME_DATAEDITSTATIC);
	}
	else
	{
		SetDlgItemText(IDC_APPEND,"查  询");
		m_tooltip.AddTool(GetDlgItem(IDC_APPEND),IDS_QUERY);
		m_tooltip.AddTool(GetDlgItem(IDC_TEACHERNAME),IDS_TEACHERNAME);
		SetWindowText(_T("查询基础数据"));
	}
	cwnd_year=GetDlgItem(IDC_YEAR);
	cwnd_place=GetDlgItem(IDC_PLACE);
	cwnd_schoolname=GetDlgItem(IDC_SCHOOLNAME);
	cwnd_coursename=GetDlgItem(IDC_COURSENAME);
	cwnd_studentname=GetDlgItem(IDC_STUDENTNAME);
	cwnd_studentreadem=GetDlgItem(IDC_STUDENTREADEM);
	cwnd_classname=GetDlgItem(IDC_CLASSNAME);
	cwnd_teachername=GetDlgItem(IDC_TEACHERNAME);
	cwnd_gather=GetDlgItem(IDC_GATHER);
	m_studentreadem.AddString("无");
	m_studentreadem.AddString("缺考");
	m_studentreadem.AddString("违纪");
	DWORD style;
	style=m_datalist.GetExStyle();  //获取样式
	style=(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)&(~LVS_EX_CHECKBOXES) ; //设置样式
	m_datalist.SetExtendedStyle(style); //应用样式
	m_datalist.InsertColumn(0,"学    年    度",LVCFMT_LEFT,220);
	m_datalist.InsertColumn(1,"乡    镇",LVCFMT_CENTER,100);
	m_datalist.InsertColumn(2,"学    校",LVCFMT_LEFT,160);
	m_datalist.InsertColumn(3,"班    级",LVCFMT_CENTER,100);
	m_datalist.InsertColumn(4,"学    科",LVCFMT_CENTER,110);
	m_datalist.InsertColumn(5,"任课教师",LVCFMT_CENTER,80);
	m_datalist.InsertColumn(6,"学生姓名",LVCFMT_CENTER,80);
	m_datalist.InsertColumn(7,"考试成绩",LVCFMT_CENTER,60);
	m_datalist.InsertColumn(8,"备注",LVCFMT_CENTER,40);
	CString strSQL="select * from yearcourse";
	HRESULT hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
	if (SUCCEEDED(hTRes))
	{
		hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
			((CScoreGatherApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
			adOpenDynamic,adLockPessimistic,adCmdText);
		while(!(m_pRecordset->adoEOF))
		{
			CString str=p_MySetClass->GetString(m_pRecordset->GetCollect("my_year"));
			if(m_year.FindString(0,str)==-1)
				m_year.AddString(str);
			if(!(m_pRecordset->adoEOF))
				m_pRecordset->MoveNext();
		}
	}
	CString ctrl;
	GetDlgItemText(IDC_APPEND,ctrl);
	if(ctrl=="添  加")
		StartView();
	return TRUE;
}

void CMyDataEdit::OnBnClickedAppend()
{
	CString ctrl;
	GetDlgItemText(IDC_APPEND,ctrl);
	CString string0,string1,string2,string3,string4,string5,string6,string7,string8;
	int n0,n1,n2,n3,n4,n5;
	n0=m_year.GetCurSel();
	n1=m_place.GetCurSel();
	n2=m_schoolname.GetCurSel();
	n3=m_classname.GetCurSel();
	n4=m_coursename.GetCurSel();
	n5=m_studentreadem.GetCurSel();
	GetDlgItemText(IDC_TEACHERNAME,string5);
	GetDlgItemText(IDC_STUDENTNAME,string6);
	UINT gather=-1;
	gather=GetDlgItemInt(IDC_GATHER,NULL,1);
	if(ctrl=="添  加")
	{
		int row=m_datalist.GetItemCount();
		if(n0<0)
		{
			AfxMessageBox("必须选择[学年度]!");
			GotoDlgCtrl(cwnd_year);
			return;
		}
		if(n1<0)
		{
			AfxMessageBox("必须选择[乡镇]!");
			GotoDlgCtrl(cwnd_place);
			return;
		}
		if(n2<0)
		{
			AfxMessageBox("必须选择[学校名称]!");
			GotoDlgCtrl(cwnd_schoolname);
			return;
		}
		if(n3<0)
		{
			AfxMessageBox("必须选择[班级]!");
			GotoDlgCtrl(cwnd_classname);
			return;
		}
		if(n4<0)
		{
			AfxMessageBox("必须选择[学科]!");
			GotoDlgCtrl(cwnd_coursename);
			return;
		}
		if(string5.IsEmpty())
		{
			AfxMessageBox("必须填写[教师姓名]!");
			GotoDlgCtrl(cwnd_teachername);
			return;
		}
		if(string6.IsEmpty())
		{
			AfxMessageBox("必须填写[学生姓名]!");
			GotoDlgCtrl(cwnd_studentname);
			return;
		}
		if(n5<0)
		{
			AfxMessageBox("必须选择[备注]!");
			GotoDlgCtrl(cwnd_studentreadem);
			return;
		}
		if(gather==-1)
		{
			AfxMessageBox("必须填写[考试成绩]!");
			GotoDlgCtrl(cwnd_gather);
			return;
		}
		m_year.GetLBText(n0,string0);
		m_place.GetLBText(n1,string1);
		m_schoolname.GetLBText(n2,string2);
		m_classname.GetLBText(n3,string3);
		m_coursename.GetLBText(n4,string4);
		string7.Format("%d",gather);
		m_studentreadem.GetLBText(n5,string8);
		for(int i=0;i<=row;i++)
		{
			CString str0,str1,str2,str3,str4,str5,str6;
			str0=m_datalist.GetItemText(i,0);
			str1=m_datalist.GetItemText(i,1);
			str2=m_datalist.GetItemText(i,2);
			str3=m_datalist.GetItemText(i,3);
			str4=m_datalist.GetItemText(i,4);
			str5=m_datalist.GetItemText(i,5);
			str6=m_datalist.GetItemText(i,6);
			if(str0+str1+str2+str3+str4+str5+str6==string0+string1+string2+string3+string4+string5+string6)
			{
				AfxMessageBox("数据不能重复!");
				return;
			}
		}
		m_datalist.InsertItem(row,NULL);
		m_datalist.SetItemText(row,0,string0);
		m_datalist.SetItemText(row,1,string1);
		m_datalist.SetItemText(row,2,string2);
		m_datalist.SetItemText(row,3,string3);
		m_datalist.SetItemText(row,4,string4);
		m_datalist.SetItemText(row,5,string5);
		m_datalist.SetItemText(row,6,string6);
		m_datalist.SetItemText(row,7,string7);
		m_datalist.SetItemText(row,8,string8);
		CString strSQL="select * from dataedit";
		HRESULT hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));				
		hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(strSQL.GetLength()),
			((CScoreGatherApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
			adOpenDynamic,adLockPessimistic,adCmdText);
		m_pRecordset->AddNew();
		m_pRecordset->PutCollect("my_year",_variant_t(m_datalist.GetItemText(row,0)));
		m_pRecordset->PutCollect("my_place",_variant_t(m_datalist.GetItemText(row,1)));
		m_pRecordset->PutCollect("my_school",_variant_t(m_datalist.GetItemText(row,2)));
		m_pRecordset->PutCollect("my_class",_variant_t(m_datalist.GetItemText(row,3)));
		m_pRecordset->PutCollect("my_course",_variant_t(m_datalist.GetItemText(row,4)));
		m_pRecordset->PutCollect("my_teacher",_variant_t(m_datalist.GetItemText(row,5)));
		m_pRecordset->PutCollect("my_student",_variant_t(m_datalist.GetItemText(row,6)));
		m_pRecordset->PutCollect("my_gather",gather);
		m_pRecordset->PutCollect("my_readem",_variant_t(m_datalist.GetItemText(row,8)));
		m_pRecordset->Update();
		SetDlgItemText(IDC_STUDENTNAME,"");
		m_studentreadem.SetCurSel(0);
		SetDlgItemText(IDC_GATHER,"");
		m_datalist.SetItem(row, 0, LVIF_STATE, NULL, 0, LVIS_SELECTED, LVIS_SELECTED, 0);
		MyScorll("set",row);
	}
	else
	{
		m_datalist.DeleteAllItems();
		m_datalist.ShowWindow(SW_HIDE);
		m_staticdata.ShowWindow(SW_SHOW);
		SetDlgItemText(IDC_STATICDATA,"数据处理中,请稍候……");
		int r=0;
		int xy[9]={0,0,0,0,0,0,0,0,0};
		CString strSQL;
		strSQL="select * from dataedit";
		if(n0>=0)
		{
			m_year.GetLBText(n0,string0);
			strSQL=strSQL+" where my_year='";
			strSQL=strSQL+string0+"'";
			xy[0]=1;
		}
		else
			xy[0]=0;
		if(n1>=0)
		{
			m_place.GetLBText(n1,string1);
			if(xy[0])
				strSQL=strSQL+" AND my_place='";
			else
				strSQL=strSQL+" where my_place='";
			strSQL=strSQL+string1+"'";
			xy[1]=1;
		}
		if(n2>=0)
		{
			m_schoolname.GetLBText(n2,string2);
			if(xy[0]| xy[1])
				strSQL=strSQL+" AND my_school='";
			else
				strSQL=strSQL+" where my_school='";
			strSQL=strSQL+string2+"'";
			xy[2]=1;
		}
		else
			xy[2]=0;
		if(n3>=0)
		{
			m_classname.GetLBText(n3,string3);
			if(xy[0] || xy[1] || xy[2])
				strSQL=strSQL+" AND my_class='";
			else
				strSQL=strSQL+" where my_class='";
			strSQL=strSQL+string3+"'";
			xy[3]=1;
		}
		else
			xy[3]=0;
		if(n4>=0)
		{
			m_coursename.GetLBText(n4,string4);
			if(xy[0] || xy[1] || xy[2] || xy[3])
				strSQL=strSQL+" AND my_course='";
			else
				strSQL=strSQL+" where my_course='";
			strSQL=strSQL+string4+"'";
			xy[4]=1;
		}
		else
			xy[4]=0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -