www.gusucode.com > 大学排课系统,VC++实现,能实现根据教师及课程资源自动排 > 大学排课系统,VC++实现,能实现根据教师及课程资源自动排课/ARRANGE/EditClassNoDlg.cpp
// EditClassNoDlg.cpp : implementation file // #include "stdafx.h" #include "arrange.h" #include "EditClassNoDlg.h" #include "CourseClassSet.h" #include "AddClassesIdDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CEditClassNoDlg dialog CEditClassNoDlg::CEditClassNoDlg(CWnd* pParent /*=NULL*/) : CDialog(CEditClassNoDlg::IDD, pParent) { //{{AFX_DATA_INIT(CEditClassNoDlg) //}}AFX_DATA_INIT } void CEditClassNoDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CEditClassNoDlg) 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_classes); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CEditClassNoDlg, CDialog) //{{AFX_MSG_MAP(CEditClassNoDlg) ON_BN_CLICKED(IDC_BUTTONADD, OnButtonadd) ON_BN_CLICKED(IDC_BUTTONDEL, OnButtondel) ON_BN_CLICKED(IDC_BUTTONFRESH, OnButtonfresh) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CEditClassNoDlg message handlers void CEditClassNoDlg::OnButtonadd() { // TODO: Add your control notification handler code here CAddClassesIdDlg m_classesid; m_classesid.DoModal(); } void CEditClassNoDlg::OnButtondel() { // TODO: Add your control notification handler code here if(!m_database.IsOpen()) m_database.Open(_T("stct")); int i = -1; i = m_classes.GetSelectionMark(); if (i == -1) AfxMessageBox("请先选择要删除的记录!",MB_OK|MB_ICONINFORMATION); else { CString strSQL; CString classesID; classesID = m_classes.GetItemText(i, 1); strSQL.Format("delete from COURSE_CLASSES where classes_id = \'%s\'", classesID); m_database.ExecuteSQL(strSQL); strSQL.Format("delete from TEACHPLAN where classes_id = \'%s\'", classesID); m_database.ExecuteSQL(strSQL); m_database.Close(); OnButtonfresh(); } } void CEditClassNoDlg::OnButtonfresh() { // TODO: Add your control notification handler code here CCourseClassSet m_pCCSet(&m_database); m_pCCSet.Open(); m_classes.DeleteAllItems(); //清空原来已显示的内容 CDBVariant varValue; if(!m_pCCSet.IsBOF()) m_pCCSet.MoveFirst(); char buf[40]; //定义一个数组在显示记录时类型转换使用 int i=0; // 用来记录当前记录 while(!m_pCCSet.IsEOF()) { sprintf(buf,"%d",i+1); //得到记录集第一列的域值 m_classes.InsertItem(i,buf); //对记录的显示处理 m_pCCSet.GetFieldValue(1,varValue); m_classes.SetItemText(i,1,varValue.m_pstring->GetBuffer(1)); m_pCCSet.GetFieldValue(2,varValue); m_classes.SetItemText(i,2,varValue.m_pstring->GetBuffer(1)); i++; m_pCCSet.MoveNext(); } } BOOL CEditClassNoDlg::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_classes.InsertColumn(0, "序号"); m_classes.InsertColumn(1, "教学班号"); m_classes.InsertColumn(2, "班级名称"); RECT rectclasses; m_classes.GetWindowRect(&rectclasses); int width = rectclasses.right - rectclasses.left; m_classes.SetColumnWidth(0, width/4); m_classes.SetColumnWidth(1, width*3/8); m_classes.SetColumnWidth(2, width*3/8); m_classes.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 }