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

📄 subjectdlg.cpp

📁 vc++和SQL Server2000实现学生管理系统
💻 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()
	//}}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";
	mysubjectset = new CSubjectinfo(&((CMystudentsysApp*)AfxGetApp())->m_DB);
	if(!mysubjectset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr)) //打开数据表
	{
		AfxMessageBox("tb_subject表打开失败!");
	}
	return TRUE;
}
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);
}

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='"+m_subjectid+"' ";
	myclass_subject_findref = new CClass_subjectset(&((CMystudentsysApp*)AfxGetApp())->m_DB);
	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();
			delete myclass_subject_findref;
		}
		return;
	}
	if(myclass_subject_findref->IsOpen())
	{
		myclass_subject_findref->Close();
		delete myclass_subject_findref;
	}  
	mysubjectset->Delete(); //删除记录
	mysubjectset->Requery();
	DisplayRecord(); 
}

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

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='"+m_subjectid+"' ";
	mysubjectset_find = new CSubjectinfo(&((CMystudentsysApp*)AfxGetApp())->m_DB);
	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();
			delete mysubjectset_find;
		}
		return;
	}
	if(mysubjectset_find->IsOpen())
	{
		mysubjectset_find->Close();
		delete mysubjectset_find;
	}  
	mysubjectset->AddNew();                //调用添加记录的函数处理
	mysubjectset->m_subject = m_subjectname; //对应变量更新
	mysubjectset->m_code    = m_subjectid;
	try
	{
		mysubjectset->Update();
		mysubjectset->Requery();
		AfxMessageBox("成功保存数据!");
	}
	catch( CDBException* e )
    {
        AfxMessageBox( e->m_strError,MB_ICONEXCLAMATION );
        e->Delete();
    }
	DisplayRecord(); //更新显示
}

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

void CSubjectdlg::OnOK()
{

}

⌨️ 快捷键说明

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