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

📄 subjectdlg.cpp

📁 用VC++做的学生管理系统
💻 CPP
字号:
// Subjectdlg.cpp : implementation file
//

#include "stdafx.h"
#include "mystudentsys.h"
#include "Subjectdlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSubjectdlg dialog


CSubjectdlg::CSubjectdlg(CWnd* pParent /*=NULL*/)
	: CDialog(CSubjectdlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSubjectdlg)
	m_subjectname = _T("");
	m_subjectid = _T("");
	//}}AFX_DATA_INIT
}


void CSubjectdlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSubjectdlg)
	DDX_Text(pDX, IDC_subjectname, m_subjectname);
	DDX_Text(pDX, IDC_subjectid, m_subjectid);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSubjectdlg, CDialog)
	//{{AFX_MSG_MAP(CSubjectdlg)
	ON_COMMAND(ID_subjectinfo_toolbar_add, Onsubjectinfotoolbaradd)
	ON_COMMAND(ID_subjectinfo_toolbar_del, Onsubjectinfotoolbardel)
	ON_COMMAND(ID_subjectinfo_toolbar_first, Onsubjectinfotoolbarfirst)
	ON_COMMAND(ID_subjectinfo_toolbar_last, Onsubjectinfotoolbarlast)
	ON_COMMAND(ID_subjectinfo_toolbar_next, Onsubjectinfotoolbarnext)
	ON_COMMAND(ID_subjectinfo_toolbar_pre, Onsubjectinfotoolbarpre)
	ON_COMMAND(ID_subjectinfo_toolbar_save, Onsubjectinfotoolbarsave)
	ON_WM_CLOSE()
	ON_BN_CLICKED(ID_BTNsave, OnBTNsave)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSubjectdlg message handlers

BOOL CSubjectdlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
  if(!m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_SIZE_DYNAMIC)
  ||!m_ToolBar.LoadToolBar(IDR_TOOLBAR_subjectinfo))
 {
  TRACE0(_T("创建工具条失败\n"));
  return FALSE;
 }
  RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
   m_ToolBar.SetButtonStyle(0,TBBS_CHECKBOX);
   m_ToolBar.SetButtonStyle(1,TBBS_CHECKBOX);
   m_ToolBar.SetButtonStyle(2,TBBS_CHECKBOX);
   m_ToolBar.SetButtonStyle(3,TBBS_CHECKBOX);
   m_ToolBar.SetButtonStyle(4,TBBS_CHECKBOX);
   m_ToolBar.SetButtonStyle(5,TBBS_CHECKBOX);
   m_ToolBar.SetButtonStyle(6,TBBS_CHECKBOX);
	// TODO: Add extra initialization here
	//RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);	
   CString sqlStr;
	sqlStr="SELECT * FROM tb_subject";//在tb_subject数据表里面查询
	if(!mysubjectset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr))//打开数据表
	{
		AfxMessageBox("tb_subject表打开失败!");
	}
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
bool CSubjectdlg::DisplayRecord()
{
	if(mysubjectset.IsEOF()&&mysubjectset.IsBOF())//判断是否移动到了开头和结尾
	{
		m_subjectname="";
		m_subjectid="";
	}
	else
	{
		if(mysubjectset.IsBOF())//移动到了开头,就向后移动
		{
			mysubjectset.MoveNext();
		}
		else//否则前移
		{
			if(mysubjectset.IsEOF())
			{
				mysubjectset.MovePrev();
			}
		}
	}
	m_subjectname=mysubjectset.m_subject;//对应变量赋值
	m_subjectid=mysubjectset.m_code;

	UpdateData(false);//显示更新
	return true;

}

void CSubjectdlg::Onsubjectinfotoolbaradd() 
{
	// TODO: Add your command handler code here
	
	m_subjectname="";
	
	m_subjectid="";
	UpdateData(false);
	m_bAdd=true;
}

void CSubjectdlg::Onsubjectinfotoolbardel() 
{
	// TODO: Add your command handler code here

	CString sqlStr_findid;
	sqlStr_findid="SELECT * FROM tb_class_subject WHERE tb_class_subject.code='";////在 tb_class_subject数据表里面查询
	sqlStr_findid+=m_subjectid;
	sqlStr_findid+="'";
	if(myclass_subject_findref.IsOpen())
	{
	   myclass_subject_findref.Close();
	}    	
	if(!myclass_subject_findref.Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_findid))
	{
		AfxMessageBox("tb_class_subject 表打开失败!");
	}
	if(myclass_subject_findref.GetRecordCount()!=0)
	{
		AfxMessageBox("科室名称在<班级科目表>里有引用,不能删除!");

		if(myclass_subject_findref.IsOpen())
		{
		   myclass_subject_findref.Close();
		}
		return;
	}

	mysubjectset.Delete();//删除记录
	mysubjectset.Requery();
	DisplayRecord();//更新显示
}

void CSubjectdlg::Onsubjectinfotoolbarfirst() 
{
	// TODO: Add your command handler code here
	if(!mysubjectset.IsBOF())
	{
		mysubjectset.MoveFirst();//向前移动一条记录
		DisplayRecord();//更新窗口显示
	//	UpdateData(FALSE);
	}
}

void CSubjectdlg::Onsubjectinfotoolbarlast() 
{
	// TODO: Add your command handler code here
	if(!mysubjectset.IsEOF())//如果不是结尾,就移动到最后一条记录,然后显示更新
	{
		mysubjectset.MoveLast();
		DisplayRecord();//更新显示
	}
}

void CSubjectdlg::Onsubjectinfotoolbarnext() 
{
	// TODO: Add your command handler code here
	if(!mysubjectset.IsEOF())//如果不是结尾,就移动到下一条记录,然后显示更新
	{
		mysubjectset.MoveNext();
		DisplayRecord();//更新显示
	}
}

void CSubjectdlg::Onsubjectinfotoolbarpre() 
{
	// TODO: Add your command handler code here
	if(!mysubjectset.IsBOF())//如果不是开头,就移动到上一条记录,然后显示更新
	{
		mysubjectset.MovePrev();
		DisplayRecord();//更新显示
	}
}

void CSubjectdlg::Onsubjectinfotoolbarsave() 
{
	// TODO: Add your command handler code here
	UpdateData(true);//读入输入的资料
	if(m_subjectname.IsEmpty()||m_subjectid.IsEmpty())
	{//如果名字是空就提示错误
		AfxMessageBox("请输入相应的数据!");
		return ;
	}

	
	CString sqlStr_findid;
	sqlStr_findid="SELECT * FROM tb_subject WHERE tb_subject.code='";////在 tb_subject数据表里面查询
	sqlStr_findid+=m_subjectid;
	sqlStr_findid+="'";
 	if(mysubjectset_find.IsOpen())
	{
	   mysubjectset_find.Close();
	}   	
	if(!mysubjectset_find.Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_findid))
	{
		AfxMessageBox("tb_subject 表打开失败!");
	}
	if(mysubjectset_find.GetRecordCount()!=0)
	{
		AfxMessageBox("科目代码不能重复,请修改后再输入!");

		if(mysubjectset_find.IsOpen())
		{
		   mysubjectset_find.Close();
		}
		return;
	}

//	if(m_bAdd)
	{//如果是添加记录,就调用添加记录的函数处理
		mysubjectset.AddNew();
	}
//	else 
//	{//否则调用编辑函数处理
//		bkSet.Edit();
//	}
	mysubjectset.m_subject=m_subjectname;//对应变量更新
	mysubjectset.m_code=m_subjectid;

	try
	{
	  mysubjectset.Update();
	  mysubjectset.Requery();
	  m_bAdd=false;//设置添加状态为false
      AfxMessageBox("成功保存数据!");
	}

	catch( CDBException* e )
    {
        AfxMessageBox( e->m_strError,   
                      MB_ICONEXCLAMATION );
        // Delete the incomplete recordset object
        
        e->Delete();
    }


	DisplayRecord();//更新显示
}

void CSubjectdlg::OnClose() 
{
	// TODO: Add your message handler code here and/or call default
	if(mysubjectset.IsOpen())
	{
		mysubjectset.Close();
	}

	CDialog::OnClose();
}

void CSubjectdlg::OnBTNsave() 
{
	// TODO: Add your control notification handler code here
	Onsubjectinfotoolbarsave();
}

void CSubjectdlg::OnOK()
{

}

⌨️ 快捷键说明

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