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 }