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
}