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

📄 myschoolclassnumber.cpp

📁 一个学生考试成绩管理的半成品
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		return;
	}
	if(m_gradelist.GetCurSel()<0)
	{
		AfxMessageBox("必须选择年级!");
		GotoDlgCtrl(cwnd_gradelist);
		return;
	}
	else
		m_gradelist.GetLBText(m_gradelist.GetCurSel(),str4);
	GetDlgItemText(IDC_CLASSSPIN,str5);
	if(atol(str5)>1)
		number=atol(str5);
	int row1=m_list1.GetItemCount();
	int * xy=new int[row1];
	for(int n=0;n<row1;n++)
	{
		xy[n]=0;
	}
	for(int n=0;n<row1;n++)//find small class
	{
		if(m_list1.GetItemText(n,0)+m_list1.GetItemText(n,1)+m_list1.GetItemText(n,2)+m_list1.GetItemText(n,3).Left(2)==m_list1.GetItemText(row,0)+m_list1.GetItemText(row,1)+m_list1.GetItemText(row,2)+m_list1.GetItemText(row,3).Left(2))
			xy[n]=1;
	}
	for(int n=0;n<row1;n++)
	{
		if(m_list1.GetItemText(n,0)+m_list1.GetItemText(n,1)+m_list1.GetItemText(n,2)+m_list1.GetItemText(n,3).Left(2)==str1+str2+str3+str4.Left(2) && xy[n]==0)
		{
			AfxMessageBox("信息不能重复!");
			return;
		}
	}
	delete [] xy;//检测数据是否重复
	CString col0,col1,col2,col3;
	col0=m_list1.GetItemText(row,0);
	col1=m_list1.GetItemText(row,1);
	col2=m_list1.GetItemText(row,2);
	col3=m_list1.GetItemText(row,3);//将要删除的数据存储,以待更新其它的数据时使用
	CString strSQL="delete from schoolnumber where my_year='";
	strSQL=strSQL+m_list1.GetItemText(row,0)+"'";
	strSQL=strSQL+" AND my_placename='";
	strSQL=strSQL+m_list1.GetItemText(row,1)+"'";
	strSQL=strSQL+" AND my_schoolname='";
	strSQL=strSQL+m_list1.GetItemText(row,2)+"'";
	strSQL=strSQL+" AND my_gradeclassname like'";
	strSQL=strSQL+m_list1.GetItemText(row,3).Left(2)+"%'";
	(((CScoreGatherApp*)AfxGetApp())->m_pConn)->Execute((_bstr_t)strSQL,NULL,adCmdText);//删除本表的相关数据以待后更添加修改的新数据
	strSQL="select * from schoolnumber";
	HRESULT hTRes;
	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);
	}
	for(int n=1;n<=number;n++)
	{
		int row=m_list1.GetItemCount();
		str5.Format("%d",n);
		str_class=str4.Left(2)+"("+str5+")班";//构造班级字符串
		m_list1.InsertItem(row,str1);
		m_list1.SetItemText(row,1,str2);
		m_list1.SetItemText(row,2,str3);
		m_list1.SetItemText(row,3,str_class);
		m_pRecordset->AddNew();
		m_pRecordset->PutCollect("my_year",_variant_t(m_list1.GetItemText(row,0)));
		m_pRecordset->PutCollect("my_placename",_variant_t(m_list1.GetItemText(row,1)));
		m_pRecordset->PutCollect("my_schoolname",_variant_t(m_list1.GetItemText(row,2)));
		m_pRecordset->PutCollect("my_gradeclassname",_variant_t(m_list1.GetItemText(row,3)));
		m_pRecordset->Update();
	}
	///更新其它表的相应数据
}

void CMySchoolClassNumber::OnBnClickedDel()
{
	POSITION pos=m_list1.GetFirstSelectedItemPosition();
	int row;
	if(pos)
		row=m_list1.GetNextSelectedItem(pos);
	else
	{
		AfxMessageBox("请单击要删除的内容!");
		return;
	}
	if(AfxMessageBox("是否要删除?请确认!", MB_YESNO|MB_ICONWARNING)==IDYES)
	{
		clsdata(row);
		clswheredata(row);
	}
}

void CMySchoolClassNumber::UpDateView(void)
{
	CString strSQL;
	strSQL="select * from schoolnumber";
	HRESULT hTRes;
	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);
		int r=0;
		m_list1.DeleteAllItems();
		while(!(m_pRecordset->adoEOF))
		{
			m_list1.InsertItem(r,NULL);
			m_list1.SetItemText(r,0,p_MySetClass->GetString(m_pRecordset->GetCollect("my_year")));
			m_list1.SetItemText(r,1,p_MySetClass->GetString(m_pRecordset->GetCollect("my_placename")));
			m_list1.SetItemText(r,2,p_MySetClass->GetString(m_pRecordset->GetCollect("my_schoolname")));
			m_list1.SetItemText(r,3,p_MySetClass->GetString(m_pRecordset->GetCollect("my_gradeclassname")));
			if(!(m_pRecordset->adoEOF))
				m_pRecordset->MoveNext();
			r++;
		}
	}
	m_pRecordset->Close();
	m_pRecordset=NULL;
	m_year.ResetContent();
	strSQL="select * from yearcourse";
	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();
		}
	}
	m_pRecordset->Close();
	m_pRecordset=NULL;
	SetDlgItemText(IDC_PLACENAME,_T(""));
	SetDlgItemText(IDC_SCHOOLNAME,_T(""));
	SetDlgItemInt(IDC_CLASSSPIN,1,1);
	m_gradelist.SetCurSel(-1);
	m_spin.SetPos(1);
}

BOOL CMySchoolClassNumber::PreTranslateMessage(MSG* pMsg)
{
	m_tooltip.RelayEvent(pMsg);
	return CDialog::PreTranslateMessage(pMsg);
}

void CMySchoolClassNumber::OnOK()
{
}

void CMySchoolClassNumber::OnCancel()
{
}

BOOL CMySchoolClassNumber::OnEraseBkgnd(CDC* pDC)
{
	CBrush brush(RGB(250,220,250));
	CBrush* pOldBrush=pDC->SelectObject(&brush);
	CRect rcClip;
	pDC->GetClipBox(&rcClip);
	pDC->PatBlt(rcClip.left,rcClip.top,rcClip.Width(),rcClip.Height(),PATCOPY);
	pDC->SelectObject(pOldBrush);
	return TRUE;
}

HBRUSH CMySchoolClassNumber::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	if(nCtlColor!=CTLCOLOR_EDIT)
	{
		pDC->SetTextColor(RGB(40,20,255));
		pDC->SetBkMode(TRANSPARENT);
		HBRUSH B = CreateSolidBrush(RGB(250,220,250));
		return (HBRUSH) B;
	}
	else
		return CDialog::OnCtlColor(pDC, pWnd, nCtlColor); 
}

void CMySchoolClassNumber::clswheredata(int row)
{
	CString col0,col1,col2,col3;
	col0=m_list1.GetItemText(row,0);
	col1=m_list1.GetItemText(row,1);
	col2=m_list1.GetItemText(row,2);
	col3=m_list1.GetItemText(row,3);
	row=m_list1.GetItemCount();
	CStringArray str0,str1,str2,str3;
	for(int n=0;n<row;n++)
	{
		if(m_list1.GetItemText(n,0)+m_list1.GetItemText(n,1)+m_list1.GetItemText(n,2)+m_list1.GetItemText(n,3).Left(2)!=col0+col1+col2+col3.Left(2))
		{
			str0.Add(m_list1.GetItemText(n,0));
			str1.Add(m_list1.GetItemText(n,1));
			str2.Add(m_list1.GetItemText(n,2));
			str3.Add(m_list1.GetItemText(n,3));
		}
	}
	m_list1.DeleteAllItems();
	row=(int)str0.GetCount();
	for(int n=0;n<row;n++)
	{
		int x=m_list1.GetItemCount();
		m_list1.InsertItem(x,str0[n]);
		m_list1.SetItemText(x,1,str1[n]);
		m_list1.SetItemText(x,2,str2[n]);
		m_list1.SetItemText(x,3,str3[n]);
	}
	str0.RemoveAll();
	str1.RemoveAll();
	str2.RemoveAll();
	str3.RemoveAll();
}

void CMySchoolClassNumber::clsdata(int row)
{
	CString strSQL;
	strSQL="delete from dataedit where my_year='";
	strSQL=strSQL+m_list1.GetItemText(row,0)+"'";
	strSQL=strSQL+" AND my_place='";
	strSQL=strSQL+m_list1.GetItemText(row,1)+"'";
	strSQL=strSQL+" AND my_school='";
	strSQL=strSQL+m_list1.GetItemText(row,2)+"'";
	strSQL=strSQL+" AND my_class like'";
	strSQL=strSQL+m_list1.GetItemText(row,3).Left(2)+"%'";
	(((CScoreGatherApp*)AfxGetApp())->m_pConn)->Execute((_bstr_t)strSQL,NULL,adCmdText);
	strSQL="delete from courseteacher where my_year='";
	strSQL=strSQL+m_list1.GetItemText(row,0)+"'";
	strSQL=strSQL+" AND my_placename='";
	strSQL=strSQL+m_list1.GetItemText(row,1)+"'";
	strSQL=strSQL+" AND my_schoolname='";
	strSQL=strSQL+m_list1.GetItemText(row,2)+"'";
	strSQL=strSQL+" AND my_classname like'";
	strSQL=strSQL+m_list1.GetItemText(row,3).Left(2)+"%'";
	(((CScoreGatherApp*)AfxGetApp())->m_pConn)->Execute((_bstr_t)strSQL,NULL,adCmdText);
	strSQL="delete from gatherpageset where my_year='";
	strSQL=strSQL+m_list1.GetItemText(row,0)+"'";
	strSQL=strSQL+" AND my_place='";
	strSQL=strSQL+m_list1.GetItemText(row,1)+"'";
	strSQL=strSQL+" AND my_school='";
	strSQL=strSQL+m_list1.GetItemText(row,2)+"'";
	(((CScoreGatherApp*)AfxGetApp())->m_pConn)->Execute((_bstr_t)strSQL,NULL,adCmdText);
	strSQL="delete from schoolnumber where my_year='";
	strSQL=strSQL+m_list1.GetItemText(row,0)+"'";
	strSQL=strSQL+" AND my_placename='";
	strSQL=strSQL+m_list1.GetItemText(row,1)+"'";
	strSQL=strSQL+" AND my_schoolname='";
	strSQL=strSQL+m_list1.GetItemText(row,2)+"'";
	strSQL=strSQL+" AND my_gradeclassname like'";
	strSQL=strSQL+m_list1.GetItemText(row,3).Left(2)+"%'";
	(((CScoreGatherApp*)AfxGetApp())->m_pConn)->Execute((_bstr_t)strSQL,NULL,adCmdText);
	strSQL="delete from formula where my_year='";
	strSQL=strSQL+m_list1.GetItemText(row,0)+"'";
	(((CScoreGatherApp*)AfxGetApp())->m_pConn)->Execute((_bstr_t)strSQL,NULL,adCmdText);
}

⌨️ 快捷键说明

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