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

📄 delinfodlg.cpp

📁 ACCESS数据库+MFC编写的学生数据库管理系统
💻 CPP
字号:
// DelinfoDlg.cpp : implementation file
//

#include "stdafx.h"
#include "学籍管理系统.h"
#include "DelinfoDlg.h"
#include "MainView.h"
#include "StuinfoSet1.h"
#include "AddcollageDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDelinfoDlg dialog


CDelinfoDlg::CDelinfoDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDelinfoDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDelinfoDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CDelinfoDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDelinfoDlg)
	DDX_Control(pDX, IDC_LIST_MAKEUP, m_makeuplist);
	DDX_Control(pDX, IDC_LIST_TEAM, m_teamlist);
	DDX_Control(pDX, IDC_LIST_SUB, m_sublist);
	DDX_Control(pDX, IDC_LIST_SPE, m_spelist);
	DDX_Control(pDX, IDC_LIST_COLLAGE, m_collagelist);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDelinfoDlg, CDialog)
	//{{AFX_MSG_MAP(CDelinfoDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDelinfoDlg message handlers

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

	
	m_collagelist.SetExtendedStyle   (LVS_EX_FULLROWSELECT   |LVS_EX_GRIDLINES   |LVS_EX_INFOTIP);
	m_spelist.SetExtendedStyle   (LVS_EX_FULLROWSELECT   |LVS_EX_GRIDLINES   |LVS_EX_INFOTIP);
	m_sublist.SetExtendedStyle   (LVS_EX_FULLROWSELECT   |LVS_EX_GRIDLINES   |LVS_EX_INFOTIP);
	m_teamlist.SetExtendedStyle   (LVS_EX_FULLROWSELECT   |LVS_EX_GRIDLINES   |LVS_EX_INFOTIP);
	m_makeuplist.SetExtendedStyle   (LVS_EX_FULLROWSELECT   |LVS_EX_GRIDLINES   |LVS_EX_INFOTIP);
    int  nWidth = 110 ;
    m_collagelist.InsertColumn( 0 , "学院名" ,LVCFMT_LEFT,132 );
	m_collagelist.InsertColumn( 1 , "院长" ,LVCFMT_LEFT,50 );
    m_spelist.InsertColumn( 0 , "专业名" ,LVCFMT_LEFT,119 );
	m_spelist.InsertColumn( 1 , "所属学院" ,LVCFMT_LEFT,270 );
    m_teamlist.InsertColumn( 0 , "学院名" ,LVCFMT_LEFT,122 );
	m_teamlist.InsertColumn( 1 , "队名" ,LVCFMT_LEFT,60 );
    m_sublist.InsertColumn( 0 , "课程名" ,LVCFMT_LEFT,90 );
	m_sublist.InsertColumn( 1 , "类型" ,LVCFMT_LEFT,72 );
	m_sublist.InsertColumn( 2 , "所属专业" ,LVCFMT_LEFT,62 );
    m_makeuplist.InsertColumn( 0 , "补考课程名" ,LVCFMT_LEFT,100 );
	m_makeuplist.InsertColumn( 1 , "补考地点" ,LVCFMT_LEFT,142  );
	m_makeuplist.InsertColumn( 2 , "补考时间" ,LVCFMT_LEFT,150  );

	// TODO: Add extra initialization here
	// 学员队表
	UpdateData(TRUE);
	CDatabase db;
	CStuinfoSet rsstu;
	CRecordset rs(&db);
	CString sqlstr,resul;
	int i;
	db.Open(rsstu.GetDefaultConnect());
/*****************列出学院信息********************/
	i=0;
	sqlstr.Format("select * from colinfo");
	rs.Close();
	rs.Open(CRecordset::forwardOnly,sqlstr);
	while(!rs.IsEOF())
	{
		rs.GetFieldValue((int)0,resul);
		m_collagelist.InsertItem(i,resul);
		rs.GetFieldValue((int)1,resul);
		m_collagelist.SetItemText(i,1,resul);
		rs.MoveNext();
	}
	rs.Close();	
/*****************列出学员队信息********************/
	i=0;
	sqlstr.Format("select belongcol,teamname from teaminfo order by belongcol");
	rs.Close();
	rs.Open(CRecordset::forwardOnly,sqlstr);
	while(!rs.IsEOF())
	{
		rs.GetFieldValue((int)0,resul);
		m_teamlist.InsertItem(i,resul);
		rs.GetFieldValue((int)1,resul);
		m_teamlist.SetItemText(i,1,resul);
		rs.MoveNext();
	}
	rs.Close();	

/*****************列出课程信息********************/

	i=0;
	sqlstr.Format("select subname,subtype,belongspc from subinfo order by subtype");
	rs.Close();
	rs.Open(CRecordset::forwardOnly,sqlstr);
	while(!rs.IsEOF())
	{
		rs.GetFieldValue((int)0,resul);
		m_sublist.InsertItem(i,resul);
		rs.GetFieldValue((int)1,resul);
		m_sublist.SetItemText(i,1,resul);
		rs.GetFieldValue((int)2,resul);
		m_sublist.SetItemText(i,2,resul);
		rs.MoveNext();
	}
	rs.Close();	
/*****************列出专业信息********************/
	i=0;
	sqlstr.Format("select spename,belongcol from speinfo order by belongcol");
	rs.Close();
	rs.Open(CRecordset::forwardOnly,sqlstr);
	while(!rs.IsEOF())
	{
		rs.GetFieldValue((int)0,resul);
		m_spelist.InsertItem(i,resul);
		rs.GetFieldValue((int)1,resul);
		m_spelist.SetItemText(i,1,resul);
		rs.MoveNext();
	}
	rs.Close();	
/*****************列出补考信息********************/
	i=0;
	sqlstr.Format("select * from makeupinfo order by time");
	rs.Close();
	rs.Open(CRecordset::forwardOnly,sqlstr);
	while(!rs.IsEOF())
	{
		rs.GetFieldValue((int)0,resul);
		m_makeuplist.InsertItem(i,resul);
		rs.GetFieldValue((int)1,resul);
		m_makeuplist.SetItemText(i,1,resul);
		rs.GetFieldValue((int)2,resul);
		m_makeuplist.SetItemText(i,2,resul);
		rs.MoveNext();
	}
	rs.Close();	


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

int CDelinfoDlg::GetCollageSelect()
{
	  for(int i=0; i<m_collagelist.GetItemCount(); i++)
      {
           if( m_collagelist.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
           {
				return i;//当有一行被选中,返回行号
           }
      }
	  return -2;//如果未选中任何一行则返回-2

}

int CDelinfoDlg::GetSpeSelect()
{
	for(int i=0; i<m_spelist.GetItemCount(); i++)
      {
           if( m_spelist.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
           {
				return i;//当有一行被选中,返回行号
           }
      }
	  return -2;//如果未选中任何一行则返回-2

}

int CDelinfoDlg::GetSubSelect()
{
	for(int i=0; i<m_sublist.GetItemCount(); i++)
      {
           if( m_sublist.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
           {
				return i;//当有一行被选中,返回行号
           }
      }
	  return -2;//如果未选中任何一行则返回-2

}

int CDelinfoDlg::GetTeamSelect()
{
		for(int i=0; i<m_teamlist.GetItemCount(); i++)
      {
           if( m_teamlist.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
           {
				return i;//当有一行被选中,返回行号
           }
      }
	  return -2;//如果未选中任何一行则返回-2

}

void CDelinfoDlg::OnOK() //删除
{
	// TODO: Add extra validation here
	CString sqlstr;
	//删除学院
	if(MessageBox("确认删除所选的所有信息?","确认删除",MB_YESNO)==IDNO)
		return;
	int nitem=GetCollageSelect();
	if(nitem!=-2)
	{
		CString collagename,prename;
		collagename=m_collagelist.GetItemText(nitem,0);
		prename=m_collagelist.GetItemText(nitem,1);
		sqlstr.Format("delete from  colinfo where colname='%s'",collagename);
		CMainView::RunSQL(sqlstr);
		m_collagelist.DeleteItem(nitem);

	}
	//删除学员队
	nitem=GetTeamSelect();
	if(nitem!=-2)
	{
		CString teamname,belongcol;
		belongcol=m_teamlist.GetItemText(nitem,0);
		teamname=m_teamlist.GetItemText(nitem,1);
		sqlstr.Format("delete from  teaminfo where teamname='%s' and belongcol='%s'",teamname,belongcol);
		CMainView::RunSQL(sqlstr);		
		if(MessageBox("该学员队信息已删除,是否删除该学员队的学生","相关删除",MB_YESNO)==IDYES)
		{
			sqlstr.Format("delete from  stuinfo where stuteam='%s' and collage='%s'",teamname,belongcol);
			CMainView::RunSQL(sqlstr);	

		}
		m_teamlist.DeleteItem(nitem);

	}
	//删除专业
	nitem=GetSpeSelect();
	if(nitem!=-2)
	{
		CString spename,belongcol;
		belongcol=m_spelist.GetItemText(nitem,1);
		spename=m_spelist.GetItemText(nitem,0);
		sqlstr.Format("delete from  speinfo where spename='%s' and belongcol='%s'",spename,belongcol);
		CMainView::RunSQL(sqlstr);		
		sqlstr.Format("delete from  subinfo where belongspc='%s'",spename);
		CMainView::RunSQL(sqlstr);
		m_spelist.DeleteItem(nitem);
	}
	//删除课程
	nitem=GetSubSelect();
	if(nitem!=-2)
	{
		CString subname,belongspc,subtype;
		subname=m_sublist.GetItemText(nitem,0);
		subtype=m_sublist.GetItemText(nitem,1);
		belongspc=m_sublist.GetItemText(nitem,2);
		sqlstr.Format("delete from  subinfo where subname='%s' and belongspc='%s' and subtype='%s'",subname,belongspc,subtype);
		CMainView::RunSQL(sqlstr);
		sqlstr.Format("delete from  scoreinfo where subname='%s'",subname);
		CMainView::RunSQL(sqlstr);
		m_sublist.DeleteItem(nitem);
	}
	//删除补考信息
	nitem=GetMakeupSelect();
	if(nitem!=-2)
	{
		CString subname;
		subname=m_makeuplist.GetItemText(nitem,0);
		sqlstr.Format("delete from  makeupinfo where subname='%s'",subname);
		CMainView::RunSQL(sqlstr);
		m_makeuplist.DeleteItem(nitem);
	}
	//CDialog::OnOK();
}

int CDelinfoDlg::GetMakeupSelect()
{
	for(int i=0; i<m_sublist.GetItemCount(); i++)
      {
           if( m_makeuplist.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
           {
				return i;//当有一行被选中,返回行号
           }
      }
	  return -2;//如果未选中任何一行则返回-2
}



⌨️ 快捷键说明

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