www.gusucode.com > 大学排课系统,VC++实现,能实现根据教师及课程资源自动排 > 大学排课系统,VC++实现,能实现根据教师及课程资源自动排课/ARRANGE/EditTeacherDlg.cpp

    // EditTeacherDlg.cpp : implementation file
//

#include "stdafx.h"
#include "arrange.h"
#include "EditTeacherDlg.h"
#include "TeacherSet.h"
#include "AddTecherDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CEditTeacherDlg dialog


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


void CEditTeacherDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CEditTeacherDlg)
	DDX_Control(pDX, IDC_BUTTONFRESH, m_fresh);
	DDX_Control(pDX, IDC_BUTTONDEL, m_del);
	DDX_Control(pDX, IDC_BUTTONADD, m_add);
	DDX_Control(pDX, IDC_LIST1, m_listteacher);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CEditTeacherDlg, CDialog)
	//{{AFX_MSG_MAP(CEditTeacherDlg)
	ON_BN_CLICKED(IDC_BUTTONADD, OnButtonadd)
	ON_BN_CLICKED(IDC_BUTTONDEL, OnButtondel)
	ON_BN_CLICKED(IDC_BUTTONFRESH, OnButtonfresh)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEditTeacherDlg message handlers

void CEditTeacherDlg::OnButtonadd() 
{
	// TODO: Add your control notification handler code here
	CAddTecherDlg   m_addteacher;
	m_addteacher.DoModal();
	
}

void CEditTeacherDlg::OnButtondel() 
{
	// TODO: Add your control notification handler code here
	int i = -1;
	i = m_listteacher.GetSelectionMark();
	if (i == -1)
		AfxMessageBox("请先选择要删除的记录!",MB_OK|MB_ICONINFORMATION);
	else
	{
		if(!m_database.IsOpen())
			m_database.Open(_T("stct"));
		CString strSQL;
		CString teacherno;
		teacherno = m_listteacher.GetItemText(i, 1);
		strSQL.Format("delete from TEACHERS where teacher_id = \'%s\'",teacherno);
		m_database.ExecuteSQL(strSQL);

		strSQL.Format("delete from TEACHPLAN where teacher_id = \'%s\'",teacherno);
		m_database.ExecuteSQL(strSQL);
		m_database.Close();

		OnButtonfresh();
	}
	
}

void CEditTeacherDlg::OnButtonfresh() 
{
	// TODO: Add your control notification handler code here
	CTeacherSet m_pTSet(&m_database);
	m_pTSet.Open();

	m_listteacher.DeleteAllItems(); //清空原来已显示的内容
	CDBVariant varValue;
	if(!m_pTSet.IsBOF())
		m_pTSet.MoveFirst();

	char buf[20];   //定义一个数组在显示记录时类型转换使用 
	int i=0;       // 用来记录当前记录
	while(!m_pTSet.IsEOF())
	{		
		int temp=0;
		
		sprintf(buf,"%d",i+1);             //得到记录集第一列的域值
		m_listteacher.InsertItem(i,buf);      //对记录的显示处理
		 
       	m_pTSet.GetFieldValue(1,varValue);                             
		m_listteacher.SetItemText(i,1,varValue.m_pstring->GetBuffer(1));
		
		m_pTSet.GetFieldValue(2,varValue);                             
		m_listteacher.SetItemText(i,2,varValue.m_pstring->GetBuffer(1));
				
		i++;
		m_pTSet.MoveNext();
		
	}
	
}

BOOL CEditTeacherDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	m_add.LoadBitmaps(IDB_BUTTON,5, 5, 5, 5, 4 );
	m_del.LoadBitmaps(IDB_BUTTON,5, 5, 5, 5, 4 );
	m_fresh.LoadBitmaps(IDB_BUTTON,5, 5, 5, 5, 4 );
	// TODO: Add extra initialization here
	m_listteacher.InsertColumn(0, "序号");
	m_listteacher.InsertColumn(1, "教师号");
//	m_listteacher.InsertColumn(2, "教师名");
	m_listteacher.InsertColumn(3, "所在学院");
	
	
	RECT rectteacher;
	m_listteacher.GetWindowRect(&rectteacher);
	int width = rectteacher.right - rectteacher.left;
	m_listteacher.SetColumnWidth(0, width/4);
	m_listteacher.SetColumnWidth(1, width*3/8);
	m_listteacher.SetColumnWidth(2, width*3/8);
	//m_listteacher.SetColumnWidth(3, width/4);
	
	m_listteacher.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_TRACKSELECT);
	
//	OnButtonfresh();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}