4,011
社区成员
发帖
与我相关
我的任务
分享
// MaintenanceDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Course.h"
#include "MaintenanceDlg.h"
#include "afxdialogex.h"
#include"CourseSelectDlg.h"
// CMaintenanceDlg dialog
CCourseSet m_courseSet;
CCourseLimitSet m_courseLimitSet;
CCourseSet m_courseSelRecSet;
CCourseSelSet m_courseSelSet;
CStudentSet m_studentSet;
CMsflexgrid1 m_flexgrid;
IMPLEMENT_DYNAMIC(CMaintenanceDlg, CDialog)
CMaintenanceDlg::CMaintenanceDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMaintenanceDlg::IDD, pParent)
{
}
CMaintenanceDlg::~CMaintenanceDlg()
{
}
void CMaintenanceDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_BUTTON_DELETE, m_bDelete);
DDX_Control(pDX, IDC_BUTTON_INSERT, m_bInsert);
DDX_Control(pDX, IDC_BUTTON_MODIFY, m_bModify);
DDX_Control(pDX, IDC_COMBO_SELECTCOURSE, m_comboList);
DDX_Control(pDX, IDC_EDIT1, m_edit);
}
BEGIN_MESSAGE_MAP(CMaintenanceDlg, CDialog)
ON_CBN_SELCHANGE(IDC_COMBO_SELECTCOURSE, &CMaintenanceDlg::OnSelchangeComboSelectcourse)
ON_EN_CHANGE(IDC_EDIT1, &CMaintenanceDlg::OnChangeEdit1)
ON_COMMAND(IDC_MSFLEXGRID_MAINTENANCE, &CMaintenanceDlg::OnMsflexgridMaintenance)
ON_BN_CLICKED(IDC_BUTTON_INSERT, &CMaintenanceDlg::OnClickedButtonInsert)
ON_BN_CLICKED(IDC_BUTTON_MODIFY, &CMaintenanceDlg::OnClickedButtonModify)
ON_BN_CLICKED(IDC_BUTTON_DELETE, &CMaintenanceDlg::OnClickedButtonDelete)
ON_BN_CLICKED(IDC_OK, &CMaintenanceDlg::OnClickedOk)
END_MESSAGE_MAP()
// CMaintenanceDlg message handlers
//选择表
void CMaintenanceDlg::OnSelchangeComboSelectcourse()
{
CString strSelected;
// m_comboList.GetWindowTextW(strSelected);
CString sql;
CString strGridItem;
CString strTab=_T("");
strTab.Replace(' ',0x9);
VARIANT vIndex;
vIndex.vt=VT_I2;
int iIndex=1;
m_comboList.GetLBText(m_comboList.GetCurSel(),strSelected);
m_flexgrid.Clear();
if(strSelected=="学生表")
{
sql="select*from student";
tableType=1;
m_flexgrid.put_Cols(4);
m_flexgrid.put_FormatString(L">|<学号|<学生姓名|<性别");
m_flexgrid.put_ColWidth(0,300);
m_flexgrid.put_ColWidth(1,1000);
m_flexgrid.put_ColWidth(2,1000);
m_studentSet.Open();
if(m_studentSet.IsBOF())
return;
m_studentSet.MoveFirst();
while(!m_studentSet.IsEOF())
{
vIndex.iVal=iIndex;
iIndex++;
strGridItem=strTab+m_studentSet.m_sNo+strTab+m_studentSet.m_sName+strTab+m_studentSet.m_sex;
m_flexgrid.AddItem(strGridItem,vIndex);
m_studentSet.MoveNext();
}
m_studentSet.Close();
}
else if(strSelected==_T("课程表"))
{
sql=L"select*from course_rec";
tableType=2;
m_flexgrid.put_Cols(6);
m_flexgrid.put_FormatString(L">|<课程号|<课程名称|<学分|<学时|<时间");
m_flexgrid.put_ColWidth(0,300);
m_flexgrid.put_ColWidth(1,1000);
m_flexgrid.put_ColWidth(2,2200);
m_courseSet.Open();
if(m_courseSet.IsBOF())
return;
m_courseSet.MoveFirst();
while(!m_courseSet.IsEOF())
{
vIndex.iVal=iIndex;
iIndex++;
strGridItem=strTab+m_courseSet.m_cNo+strTab+m_courseSet.m_cName+strTab+m_courseSet.m_cCredit
+strTab+m_courseSet.m_cNum+strTab+m_courseSet.m_cTime;
m_flexgrid.AddItem(strGridItem,vIndex);
m_courseSet.MoveFirst();
}
m_courseSet.Close();
}
else if(strSelected==_T("选课限定表"))
{
sql=L"select*from course_lim";
tableType=3;
m_flexgrid.put_FormatString(L">|<可选课程数|<可选学分数");
m_flexgrid.put_ColWidth(0,300);
m_flexgrid.put_ColWidth(1,2000);
m_flexgrid.put_ColWidth(2,2000);
m_courseLimitSet.Open();
if(m_courseLimitSet.IsBOF())
return;
m_courseLimitSet.MoveFirst();
while(!m_courseLimitSet.IsEOF())
{
vIndex.iVal=iIndex;
iIndex++;
strGridItem=strTab+m_courseLimitSet.m_courseNum+strTab+m_courseLimitSet.m_creditNum;
m_flexgrid.AddItem(strGridItem,vIndex);
m_courseLimitSet.MoveFirst();
}
m_courseLimitSet.Close();
}
SetButtonCrl();
}
void CMaintenanceDlg::OnChangeEdit1()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
// TODO: Add your control notification handler code here
CString strText;
GetDlgItemText(IDC_EDIT1,strText);
m_flexgrid.put_Text(strText);
}
void CMaintenanceDlg::OnMsflexgridMaintenance()
{
SetDlgItemTextW(IDC_EDIT1,m_flexgrid.get_Text());
}
void CMaintenanceDlg::OnClickedButtonInsert()
{
VARIANT vIndex;
CString vValue[6];
switch(tableType)
{
case 1:
m_studentSet.Open();
m_studentSet.AddNew();
for(long i=0;i<3;i++)
{
m_flexgrid.put_Col(i+1);
vValue[i]=m_flexgrid.get_Text();
}
m_studentSet.m_sNo=vValue[0];
m_studentSet.m_sName=vValue[1];
m_studentSet.m_sex=vValue[2];
if(m_studentSet.Update())
AfxMessageBox(L"添加成功!");
m_studentSet.Close();
break;
case 2:
m_courseSet.Open();
m_courseSet.AddNew();
for(long i=0;i<5;i++)
{
m_flexgrid.put_Col(i+1);
vValue[i]=m_flexgrid.get_Text();
}
m_courseSet.m_cNo=vValue[0];
m_courseSet.m_cName=vValue[1];
m_courseSet.m_cCredit=vValue[2];
m_courseSet.m_cNum=vValue[3];
m_courseSet.m_cTime=vValue[4];
if(m_courseSet.Update())
AfxMessageBox(L"添加成功!");
m_courseSet.Close();
break;
case 3:
AfxMessageBox(L"限定表不能添加,只能修改!");
return;
default:
AfxMessageBox(L"必须首先选择数据表");
}
long m_selectedRow=m_flexgrid.get_Row();
vIndex.vt=VT_I2;
vIndex.iVal=(short)m_flexgrid.get_Rows();
m_flexgrid.AddItem(L"",vIndex);
m_flexgrid.put_Col(0);
m_flexgrid.put_Row(m_flexgrid.get_Rows()-1);
}
void CMaintenanceDlg::OnClickedButtonModify()
{
if(tableType==0)
return;
m_courseLimitSet.Open();
m_courseLimitSet.MoveFirst();
m_courseLimitSet.Edit();
m_flexgrid.put_Col(1);
m_courseLimitSet.m_courseNum=m_flexgrid.get_Text();
m_flexgrid.put_Col(2);
m_courseLimitSet.m_creditNum=m_flexgrid.get_Text();
if(m_courseLimitSet.Update())
AfxMessageBox(L"修改成功!");
m_courseLimitSet.Close();
}
void CMaintenanceDlg::OnClickedButtonDelete()
{
if(tableType==0)
return;
if(tableType==1)
{
m_studentSet.Open();
m_studentSet.MoveFirst();
m_studentSet.Move(m_flexgrid.get_Row()-1);
m_studentSet.Delete();
m_studentSet.MoveNext();
m_studentSet.Close();
OnSelchangeComboSelectcourse();
}
else if(tableType==2)
{
m_courseSet.Open();
m_courseSet.MoveFirst();
m_courseSet.Move(m_flexgrid.get_Row()-1);
m_courseSet.Delete();
m_courseSet.MoveNext();
m_courseSet.Close();
OnSelchangeComboSelectcourse();
}
else if(tableType==3)
{
m_courseLimitSet.Open();
m_courseLimitSet.MoveFirst();
m_courseLimitSet.Move(m_flexgrid.get_Row()-1);
m_courseLimitSet.Delete();
m_courseLimitSet.MoveNext();
m_courseLimitSet.Close();
OnSelchangeComboSelectcourse();
}
}
void CMaintenanceDlg::SetButtonCrl(void)
{
// CButton *button;
switch(tableType)
{
case 1:
case 2:
m_bInsert.EnableWindow(TRUE);
m_bModify.EnableWindow(FALSE);
m_bDelete.EnableWindow(TRUE);
break;
case 3:
m_bInsert.EnableWindow(FALSE);
m_bModify.EnableWindow(TRUE);
m_bDelete.EnableWindow(FALSE);
break;
default:
return;
}
return;
}
void CMaintenanceDlg::OnClickedOk()
{
CDialog::OnCancel();
}
求高手指教