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

📄 mywritegatherpage.cpp

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

#include "stdafx.h"
#include "ScoreGather.h"
#include "MyWriteGatherPage.h"
#include ".\mywritegatherpage.h"


// CMyWriteGatherPage 对话框

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

CMyWriteGatherPage::~CMyWriteGatherPage()
{
}

void CMyWriteGatherPage::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_SCHOOLNAME, m_schoolname);
	DDX_Control(pDX, IDC_LIST, m_list);
	DDX_Control(pDX, IDC_YEAR, m_year);
	DDX_Control(pDX, IDC_GATHERPAGEEDIT, m_gatherpageedit);
	DDX_Control(pDX, IDC_ADD, m_add);
	DDX_Control(pDX, IDC_MODIFY, m_modify);
	DDX_Control(pDX, IDC_DEL, m_del);
	DDX_Control(pDX, IDCANCEL, m_cancel);
	DDX_Control(pDX, IDC_NEWVIEW, m_newview);
	DDX_Control(pDX, IDC_PLACENAME, m_placename);
}


BEGIN_MESSAGE_MAP(CMyWriteGatherPage, CDialog)
	ON_BN_CLICKED(IDC_ADD, OnBnClickedAdd)
	ON_NOTIFY(NM_CLICK, IDC_LIST, OnNMClickList)
	ON_BN_CLICKED(IDC_MODIFY, OnBnClickedModify)
	ON_BN_CLICKED(IDC_DEL, OnBnClickedDel)
	ON_WM_ERASEBKGND()
	ON_WM_CTLCOLOR()
	ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
	ON_CBN_SELCHANGE(IDC_YEAR, OnCbnSelchangeYear)
	ON_BN_CLICKED(IDC_NEWVIEW, OnBnClickedNewview)
	ON_CBN_SELCHANGE(IDC_PLACENAME, OnCbnSelchangePlacename)
END_MESSAGE_MAP()


// CMyWriteGatherPage 消息处理程序


void CMyWriteGatherPage::OnBnClickedAdd()
{
	CString ctrl;
	GetDlgItemText(IDC_ADD,ctrl);
	CString str_year,str_placename,str_schoolname,str_gatherpageedit;
	int year,placename,schoolname;
	year=placename=schoolname=-1;
	year=m_year.GetCurSel();
	placename=m_placename.GetCurSel();
	schoolname=m_schoolname.GetCurSel();
	GetDlgItemText(IDC_GATHERPAGEEDIT,str_gatherpageedit);
	if(ctrl=="添  加")
	{
		int row=m_list.GetItemCount();
		if(year<0)
		{
			AfxMessageBox("[学年度]必须选择!");
			GotoDlgCtrl(cwnd_year);
			return;
		}
		else
			m_year.GetLBText(year,str_year);
		if(placename<0)
		{
			AfxMessageBox("[乡镇名称]必须选择!");
			GotoDlgCtrl(cwnd_placename);
			return;
		}
		else
			m_placename.GetLBText(year,str_placename);
		if(schoolname<0)
		{
			AfxMessageBox("[学校名称]必须选择!");
			GotoDlgCtrl(cwnd_schoolname);
			return;
		}
		else
			m_schoolname.GetLBText(schoolname,str_schoolname);
		if(str_gatherpageedit.IsEmpty())
		{
			AfxMessageBox("[成绩单函头]必须填写!");
			GotoDlgCtrl(cwnd_gatherpageedit);
			return;
		}
		for(int i=0;i<=row;i++)
		{
			if(m_list.GetItemText(i,0)+m_list.GetItemText(i,1)+m_list.GetItemText(i,2)==str_year+str_placename+str_schoolname)
			{
				AfxMessageBox("数据不能重复!");
				return;
			}
		}
		m_list.InsertItem(row,NULL);
		m_list.SetItemText(row,0,str_year);
		m_list.SetItemText(row,1,str_placename);
		m_list.SetItemText(row,2,str_schoolname);
		m_list.SetItemText(row,3,str_gatherpageedit);
		CString strSQL;
		strSQL="select * from gatherpageset";
		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_list.GetItemText(row,0)));
		m_pRecordset->PutCollect("my_place",_variant_t(m_list.GetItemText(row,1)));
		m_pRecordset->PutCollect("my_school",_variant_t(m_list.GetItemText(row,2)));
		m_pRecordset->PutCollect("my_gatheredit",_variant_t(m_list.GetItemText(row,3)));
		m_pRecordset->Update();
		m_placename.SetCurSel(-1);
		m_schoolname.SetCurSel(-1);
		SetDlgItemText(IDC_GATHERPAGEEDIT,"");
		GotoDlgCtrl(cwnd_schoolname);
	}
	else
	{
		m_list.DeleteAllItems();
		int r=0;
		int xy[4]={0,0,0,0};
		CString strSQL;
		strSQL="select * from gatherpageset";
		if(year>=0)
		{
			m_year.GetLBText(year,str_year);
			strSQL=strSQL+" where my_year='";
			strSQL=strSQL+str_year+"'";
			xy[0]=1;
		}
		else
			xy[0]=0;
		strSQL="select * from gatherpageset";
		if(placename>=0)
		{
			m_placename.GetLBText(placename,str_placename);
			strSQL=strSQL+" where my_place='";
			strSQL=strSQL+str_placename+"'";
			xy[1]=1;
		}
		else
			xy[1]=0;
		if(schoolname>=0)
		{
			m_schoolname.GetLBText(schoolname,str_schoolname);
			if(xy[0] || xy[1])
				strSQL=strSQL+" AND my_school='";
			else
				strSQL=strSQL+" where my_school='";
			strSQL=strSQL+str_schoolname+"'";
			xy[2]=1;
		}
		else
			xy[2]=0;
		if(!(str_gatherpageedit.IsEmpty()))
		{
			if(xy[0] || xy[1] || xy[2])
				strSQL=strSQL+" AND my_gatheredit='";
			else
				strSQL=strSQL+" where my_gatheredit='";
			strSQL=strSQL+str_gatherpageedit+"'";
			xy[3]=1;
		}
		else
			xy[3]=0;
		if(xy[0] || xy[1] || xy[2]|| xy[3])
		{
			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); //执行查询,打开记录集
			while(!(m_pRecordset->adoEOF))
			{
				m_list.InsertItem(r,NULL);
				m_list.SetItemText(r,0,p_MySetClass->GetString(m_pRecordset->GetCollect("my_year")));
				m_list.SetItemText(r,1,p_MySetClass->GetString(m_pRecordset->GetCollect("my_place")));
				m_list.SetItemText(r,2,p_MySetClass->GetString(m_pRecordset->GetCollect("my_school")));
				m_list.SetItemText(r,3,p_MySetClass->GetString(m_pRecordset->GetCollect("my_gatheredit")));
				r++;
				if(!(m_pRecordset->adoEOF))
					m_pRecordset->MoveNext();
			}
			m_year.SetCurSel(-1);
			m_placename.SetCurSel(-1);
			m_schoolname.SetCurSel(-1);
			SetDlgItemText(IDC_GATHERPAGEEDIT,"");
		}
	}
}

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

	m_tooltip.Create(this,TTS_ALWAYSTIP);
	m_tooltip.Activate(TRUE);
	m_tooltip.AddTool(GetDlgItem(IDC_LIST),IDS_MWGP_LIST1);
	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_GATHERPAGEEDIT),IDS_GATHERPAGEEDIT);
	m_tooltip.AddTool(GetDlgItem(IDC_DEL),IDS_DEL);
	m_tooltip.AddTool(GetDlgItem(IDC_MODIFY),IDS_MODIFY);
	m_tooltip.AddTool(GetDlgItem(IDC_NEWVIEW),IDS_WRITE_NEWVIEW);
	m_tooltip.AddTool(GetDlgItem(IDCANCEL),IDS_CANCEL);
	cwnd_year=GetDlgItem(IDC_YEAR);
	cwnd_placename=GetDlgItem(IDC_PLACENAME);
	cwnd_schoolname=GetDlgItem(IDC_SCHOOLNAME);
	cwnd_gatherpageedit=GetDlgItem(IDC_GATHERPAGEEDIT);

	if(type)
	{
		m_tooltip.AddTool(GetDlgItem(IDC_ADD),IDS_ADD);
		SetDlgItemText(IDC_ADD,"添  加");
	}
	else
	{
		m_tooltip.AddTool(GetDlgItem(IDC_ADD),IDS_QUERY);
		SetDlgItemText(IDC_ADD,"查  询");
		SetWindowText(_T("查询成绩单数据"));
	}

	DWORD style;
	style=m_list.GetExStyle();  //获取样式
	style=(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)&(~LVS_EX_CHECKBOXES) ; //设置样式
	m_list.SetExtendedStyle(style); //应用样式
	m_list.InsertColumn(0,"学    年    度",LVCFMT_LEFT,220);
	m_list.InsertColumn(1,"乡镇名称",LVCFMT_LEFT,120);
	m_list.InsertColumn(2,"学校名称",LVCFMT_LEFT,120);
	m_list.InsertColumn(3,"成绩单函头",LVCFMT_LEFT,420);

	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 string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_year"));
			if(m_year.FindString(0,string)==-1)
				m_year.AddString(string);
			if(!(m_pRecordset->adoEOF))
				m_pRecordset->MoveNext();
		}
	}
	m_pRecordset->Close();
	m_pRecordset=NULL;
	CString ctrl;
	GetDlgItemText(IDC_ADD,ctrl);
	if(ctrl=="添  加")
	{
		CString strSQL="select * from gatherpageset";
		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);
			int r=0;
			while(!(m_pRecordset->adoEOF))
			{
				m_list.InsertItem(r,NULL);
				m_list.SetItemText(r,0,p_MySetClass->GetString(m_pRecordset->GetCollect("my_year")));
				m_list.SetItemText(r,1,p_MySetClass->GetString(m_pRecordset->GetCollect("my_place")));
				m_list.SetItemText(r,2,p_MySetClass->GetString(m_pRecordset->GetCollect("my_school")));

⌨️ 快捷键说明

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