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

📄 dlgmarkinfo.cpp

📁 大学班务管理系统
💻 CPP
字号:
// Dlgmarkinfo.cpp : implementation file
//

#include "stdafx.h"
#include "教学管理信息系统.h"
#include "Dlgmarkinfo.h"
#include "Dlgmarkquerynew.h"
//#include "PassDlg.h"

#include "gradeset.h"
#include "Dlgdelgrade.h"
#include "Public.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgmarkinfo dialog


CDlgmarkinfo::CDlgmarkinfo(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgmarkinfo::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgmarkinfo)
	m_lessontime = _T("");
	m_stunum = _T("");
	m_stuname = _T("");
	m_lessonum = _T("");
	m_lessoname = _T("");
	m_xuefen = 0.0f;
	m_grade = 0.0f;
	//}}AFX_DATA_INIT
}


void CDlgmarkinfo::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgmarkinfo)
	DDX_Control(pDX, IDC_LISTgradeinfo, m_listgradeinfo);
	DDX_Text(pDX, IDC_EDITtime, m_lessontime);
	DDX_Text(pDX, IDC_EDITstunum, m_stunum);
	DDX_Text(pDX, IDC_EDITstuname, m_stuname);
	DDX_Text(pDX, IDC_EDITlessonnum, m_lessonum);
	DDX_Text(pDX, IDC_EDITlessoname, m_lessoname);
	DDX_Text(pDX, IDC_EDITelevit, m_xuefen);
	DDX_Text(pDX, IDC_EDITgrade, m_grade);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgmarkinfo, CDialog)
	//{{AFX_MSG_MAP(CDlgmarkinfo)
	ON_BN_CLICKED(IDC_BUTTON7, OnButton7)
	ON_BN_CLICKED(IDC_BUTTONaddgrade, OnBUTTONaddgrade)
	ON_BN_CLICKED(IDC_BUTTONdelgrade, OnBUTTONdelgrade)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_NOTIFY(NM_CLICK, IDC_LISTgradeinfo, OnClickLISTgradeinfo)
	ON_BN_CLICKED(IDC_BUTTONupgrade, OnBUTTONupgrade)
	ON_BN_CLICKED(IDC_BUTTONdele, OnBUTTONdele)
	ON_NOTIFY(LVN_COLUMNCLICK, IDC_LISTgradeinfo, OnColumnclickLISTgradeinfo)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgmarkinfo message handlers

BOOL CDlgmarkinfo::OnInitDialog() 
{
	CDialog::OnInitDialog();
			int i;
	DWORD dwNewStyle= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP |
		LVS_EX_ONECLICKACTIVATE | LVS_EX_UNDERLINEHOT;
		m_listgradeinfo.SetExtendedStyle(dwNewStyle);//(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_listgradeinfo.InsertColumn(0,"学号",LVCFMT_CENTER);
	m_listgradeinfo.InsertColumn(1,"姓名",LVCFMT_CENTER);
	m_listgradeinfo.InsertColumn(2,"课程号",LVCFMT_CENTER);
	m_listgradeinfo.InsertColumn(3,"课程名",LVCFMT_CENTER);
	m_listgradeinfo.InsertColumn(4,"学分",LVCFMT_CENTER);
	m_listgradeinfo.InsertColumn(5,"成绩",LVCFMT_CENTER);
	m_listgradeinfo.InsertColumn(6,"开课时间",LVCFMT_CENTER);
	for(i=0;i<7;i++)
	m_listgradeinfo.SetColumnWidth(i,80);
	initctrldata();
	
	// TODO: Add extra initialization here
if(CPublic::or==2)//若全局变量or=2,说明是普通用户,则将数据更新的操作设为不可用
    {
	GetDlgItem(IDC_BUTTONaddgrade)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTONupgrade)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTONdelgrade)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTONdele)->EnableWindow(FALSE);

	}
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgmarkinfo::OnButton7() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnCancel();
}
void CDlgmarkinfo::insertmarkinfo(CString stunum,CString stuname,CString 
								lessonnum,CString lessoname,CString xuefen,CString 
								grade,CString time)
{
	int index=m_listgradeinfo.GetItemCount();
	LV_ITEM lvitem;
	lvitem.mask=LVIF_TEXT;
	lvitem.iItem=index;
	lvitem.iSubItem=0;
	CString temp;
	temp.Format("%d");

	lvitem.pszText=(char*)(LPCTSTR)temp;
	m_listgradeinfo.InsertItem(&lvitem);

	m_listgradeinfo.SetItemText(index,0,stunum);
	m_listgradeinfo.SetItemText(index,1,stuname);
	m_listgradeinfo.SetItemText(index,2,lessonnum);
	m_listgradeinfo.SetItemText(index,3,lessoname);

	m_listgradeinfo.SetItemText(index,6,xuefen);

	m_listgradeinfo.SetItemText(index,5,grade);
	m_listgradeinfo.SetItemText(index,4,time);
	
}




void CDlgmarkinfo::initctrldata()
{
	 CDatabase m_database;
	   
	if(!m_database.Open(NULL,FALSE,FALSE,"ODBC;DSN=教务课程信息管理数据库"))
	{
		AfxMessageBox("连接数据库失败");
	}

	try{
	
		m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
		while(!m_gradeset.IsEOF())
		{
		CString stunum,stuname,lessonnum,lessoname,time;
		CString grade,xuefen;

		m_gradeset.GetFieldValue((short)0,stunum);
        m_gradeset.GetFieldValue(1,stuname);
		m_gradeset.GetFieldValue(2,lessonnum);
		m_gradeset.GetFieldValue(3,lessoname);
		m_gradeset.GetFieldValue(4,xuefen);
		m_gradeset.GetFieldValue(5,grade);
		m_gradeset.GetFieldValue(6,time);
		
        insertmarkinfo(stunum,stuname,lessonnum,lessoname,xuefen,grade,time);
		m_gradeset.MoveNext();
	}
	m_gradeset.Close();
	}
	catch(CDBException*e)
	{
		e->ReportError();
	return;
	}

}


void CDlgmarkinfo::OnBUTTONaddgrade() 
{
	// TODO: Add your control notification handler code here
		UpdateData(TRUE); 



try{
	if(m_gradeset.IsOpen())
		m_gradeset.Close();
	 m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
//	m_stuinforecord.MoveLast();//MoveFirst();
	 m_gradeset.MoveLast();
	// m_count+=1;

    //->AddNew();

   if(m_stunum.IsEmpty())
   {
	   MessageBox("学号不能为空!");
   }
   else
   {m_gradeset.AddNew();

    m_gradeset.m_stunum=m_stunum;//m_stunumber;
    m_gradeset.m_stuname=m_stuname;//m_stuname;
	m_gradeset.m_lessonnum=m_lessonum;
	m_gradeset.m_lessoname=m_lessoname;
	m_gradeset.m_xuefen=m_xuefen;
	m_gradeset.m_grade=m_grade;
	m_gradeset.m_time=m_lessontime;
	
    m_gradeset.Update();//->Update();
    m_gradeset.Requery();//->Requery();
    m_gradeset.Close();//必须先关闭记录集
    m_listgradeinfo.DeleteAllItems();
     initctrldata();//initctrldata();
	// m_stunumber.SetWindowText("");
	// UpdateData(false);
	 SetDlgItemText(IDC_EDITstunum,""); 
	 SetDlgItemText(IDC_EDITstuname,"");
	 SetDlgItemText(IDC_EDITlessonnum,"");
	 SetDlgItemText(IDC_EDITlessoname,"");
	 SetDlgItemText(IDC_EDITelevit,"");
	 SetDlgItemText(IDC_EDITgrade,"");
	 SetDlgItemText(IDC_EDITtime,"");
   }
	 //SetDlgItemText(IDC_EDITstunumber,"");
	 //GetDlgItem(IDC_EDIT1)->SetWindowText(""); 


   
}
catch(CDBException*e)
	{
		e->ReportError();
		return;
	}
}

void CDlgmarkinfo::OnBUTTONdelgrade() 
{
	// TODO: Add your control notification handler code here
		CDlgdelgrade dlg;
	bool Selec=FALSE;
    if(dlg.DoModal()==IDOK)
	{
    if(m_gradeset.IsOpen())
	  m_gradeset.Close();
	 m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
	 m_gradeset.MoveFirst();
	 bool sel=FALSE;
	do
	{
	 if(m_gradeset.m_stunum==dlg.m_delmarkstu&&m_gradeset.m_lessonnum==dlg.m_delmarklesson)
	 {m_gradeset.Delete();
      sel=TRUE;
      m_gradeset.Requery();
	  continue;
	 }
	else
	 {
      m_gradeset.MoveNext();	
      }
	}while(!m_gradeset.IsEOF());
	m_gradeset.Close();
 	if(sel==FALSE)
	{
	AfxMessageBox("没有此记录");
	return;
	}
	else
	{m_listgradeinfo.DeleteAllItems();
      initctrldata();
	}
}

}

void CDlgmarkinfo::OnButton1() 
{
	// TODO: Add your control notification handler code here
		CDlgmarkquerynew dlgmarkquery;
     	dlgmarkquery.DoModal();
}

void CDlgmarkinfo::OnClickLISTgradeinfo(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	nitem=m_listgradeinfo.GetNextItem(-1,LVNI_SELECTED);
	if(nitem!=-1)
	{
		m_stunum=m_listgradeinfo.GetItemText(nitem,0);
        m_stuname=m_listgradeinfo.GetItemText(nitem,1);
		m_lessonum=m_listgradeinfo.GetItemText(nitem,2);
		m_lessoname=m_listgradeinfo.GetItemText(nitem,3);
        SetDlgItemText(IDC_EDITelevit,"m_listgradeinfo.GetItemText(nitem,4)");
		m_lessontime=m_listgradeinfo.GetItemText(nitem,6);
       UpdateData(FALSE);
	}
	*pResult = 0;
}

void CDlgmarkinfo::OnBUTTONupgrade() 
{
	// TODO: Add your control notification handler code here
	  if(m_gradeset.IsOpen())
	   m_gradeset.Close();
	m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
     m_gradeset.MoveFirst();
	 for(int i=0;i<=nitem;i++)
	 {
		 if(i==nitem)
		 {
    UpdateData(TRUE); 
	m_gradeset.Edit();
    m_gradeset.m_stunum=m_stunum;
    m_gradeset.m_stuname=m_stuname;
	m_gradeset.m_lessonnum=m_lessonum;
	m_gradeset.m_lessoname=m_lessoname;
	m_gradeset.m_xuefen=m_xuefen;
	m_gradeset.m_grade=m_grade;
	m_gradeset.m_time=m_lessontime;
    m_gradeset.Update();
    m_gradeset.Requery();
    m_gradeset.Close();
    m_listgradeinfo.DeleteAllItems();
    initctrldata(); 
	}
		 else
		 {
			m_gradeset.MoveNext();
			 
		 }
 }
}

void CDlgmarkinfo::OnBUTTONdele() 
{
   if(m_gradeset.IsOpen())
	m_gradeset.Close();
	m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
    m_gradeset.MoveFirst();
	 for(int i=0;i<=nitem;i++)
	 {
		 if(i==nitem)
		 {
    UpdateData(TRUE); 
	m_gradeset.Delete();
    m_gradeset.Requery();
    m_gradeset.Close();
    m_listgradeinfo.DeleteAllItems();
    initctrldata(); 
	 SetDlgItemText(IDC_EDITstunum,""); 
	 SetDlgItemText(IDC_EDITstuname,"");
	 SetDlgItemText(IDC_EDITlessonnum,"");
	 SetDlgItemText(IDC_EDITlessoname,"");
	 SetDlgItemText(IDC_EDITelevit,"");
	 SetDlgItemText(IDC_EDITgrade,"");
	 SetDlgItemText(IDC_EDITtime,"");
	}
		 else
		 {
			m_gradeset.MoveNext();
			 
		 }
 }
}
//点击列表框的表头实现排序
void CDlgmarkinfo::OnColumnclickLISTgradeinfo(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	int i=pNMListView->iSubItem;
    if(m_gradeset.IsOpen())
	m_gradeset.Close();
	m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
	if(i==0)
	{
	m_gradeset.m_strSort="stunum";
	m_gradeset.Close();
    m_listgradeinfo.DeleteAllItems();
	initctrldata();}
    if(i==1)
	{
	m_gradeset.m_strSort="stuname";
	m_gradeset.Close();
    m_listgradeinfo.DeleteAllItems();
	initctrldata();}
	if(i==2)
	{
	m_gradeset.m_strSort="lessonnum";
	m_gradeset.Close();
    m_listgradeinfo.DeleteAllItems();
	initctrldata();}
	if(i==3)
	{
	m_gradeset.m_strSort="lessoname";
	m_gradeset.Close();
    m_listgradeinfo.DeleteAllItems();
	initctrldata();}
	if(i==4)
	{
	m_gradeset.m_strSort="xuefen";
	m_gradeset.Close();
    m_listgradeinfo.DeleteAllItems();
	initctrldata();}
	if(i==5)
	{
	m_gradeset.m_strSort="grade";
	m_gradeset.Close();
    m_listgradeinfo.DeleteAllItems();
	initctrldata();}
	if(i==6)
	{
	m_gradeset.m_strSort="time";
	m_gradeset.Close();
    m_listgradeinfo.DeleteAllItems();
	initctrldata();}
	*pResult = 0;
}

⌨️ 快捷键说明

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