📄 stu_classqdlg.cpp
字号:
// Stu_classQdlg.cpp : implementation file
//
#include "stdafx.h"
#include "Student.h"
#include "Stu_classQdlg.h"
#include "StudentSet.h"
#include "ClassSet.h"
#include "Stu_classSet.h"
#include <CTime>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CStu_classQdlg dialog
CStu_classQdlg::CStu_classQdlg(CWnd* pParent /*=NULL*/)
: CDialog(CStu_classQdlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CStu_classQdlg)
m_no = _T("");
m_name = _T("");
//}}AFX_DATA_INIT
}
void CStu_classQdlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CStu_classQdlg)
DDX_Control(pDX, IDC_LIST_STU_COURSEQ, m_stuQery_List);
DDX_Text(pDX, IDC_EDIT_NO, m_no);
DDV_MaxChars(pDX, m_no, 8);
DDX_Text(pDX, IDC_EDIT_NAME, m_name);
DDV_MaxChars(pDX, m_name, 40);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CStu_classQdlg, CDialog)
//{{AFX_MSG_MAP(CStu_classQdlg)
ON_BN_CLICKED(IDC_BTN_DELETE, OnBtnDelete)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CStu_classQdlg message handlers
void CStu_classQdlg::OnBtnDelete()
{
// TODO: Add your control notification handler code here
int i =m_stuQery_List.GetSelectionMark();
if(i<0)
{
AfxMessageBox("请选择一条记录进行查看!");
return;
}
CString strSQL;
strSQL.Format("select * from stu_class where Stu_no= '%s' ",m_stuQery_List.GetItemText(i,0));
CString strTemp;
m_recordset.GetFieldValue("Inputtime",strTemp);
int m_year=atoi(strTemp.Left(4));
int m_month=atoi(strTemp.Mid(5,2));
int m_day=atoi(strTemp.Right(2));
bool flag=IsDate(m_year,m_month,m_day);
if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
AfxMessageBox("打开数据库失败!");
return ;
}
if(m_kind=0&&flag) //只有老师才可删除并且在一周内
m_recordset.Delete();
else
AfxMessageBox("此操作者无权删除!");
m_recordset.Close();
RefreshData();
}
void CStu_classQdlg::RefreshData(){
m_stuQery_List.DeleteAllItems();
m_stuQery_List.SetRedraw(FALSE);
UpdateData(TRUE);
CString strSQL;
strSQL="select * from stu_class";
if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("打开数据库失败!","数据库错误",MB_OK);
return ;
}
int i=0;
while(!m_recordset.IsEOF())
{
m_stuQery_List.InsertItem(i,m_recordset.m_Stu_no);
m_stuQery_List.SetItemText(i,1,m_recordset.m_Class_no);
i++;
m_recordset.MoveNext();
}
m_recordset.Close();
m_stuQery_List.SetRedraw(TRUE);
}
BOOL CStu_classQdlg::IsDate(int y,int m,int d){ //判断是否超过一周
if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10)
{
if(d<25) d+=7;
else {m++; d=(d+7)%31;}
}
else if(m == 12)
{
if(d<25) d+=7;
else {y++; m=1; d=(d+7)%31;}
}
else if(m == 4 || m == 6 || m == 9 || m == 11)
{
if(d<24) d+=7;
else {m++; d=(d+7)%30;}
}
else if(m == 2)
{
if(d<22) d+=7;
else if((y%4 == 0 && y%100 != 0) || y%400 == 0)
{
if(d == 22) d=29;
else {m=3; d=(d+7)%29;}
}
else {m=3; d=(d+7)%28;}
}
CTime time;
int year=time.GetYear();
int month=time.GetMonth();
int day=time.GetDay();
if((year < y) || (year == y && month < m) || (year == y && month == m && day<=d))
return true;
return false;
}
void CStu_classQdlg::OnOK()
{
// TODO: Add extra validation here
UpdateData();
CStudentSet pstu;
CStu_classSet pstuclass;
CClassSet pclass;
//CDlgLogin *dl;
CString strSQL;
try{
if(!m_no.IsEmpty())
strSQL="select student.Name,student.Sno,class.Name from student,stu_class where pstu.m_Stu_no=m_no and pclass.Class_no=(select pstuclass.Class_no from stu_class where pstuclass.Stu_no=m_no)";
//m_no:文本框传入的值;pstu.m_Stu_no:表中的学号
else{
if(m_name.IsEmpty()){
AfxMessageBox("请输入要查询学生姓名或学号!");
return;
}
strSQL="select student.Name,student.Stu_no,class.Name from student,class where pstu.Name=m_name and pclass.Class_no=(select pstuclass.Class_no from stu_class where pstuclass.Stu_no=(select Stu_no from student where pstu.Name=m_name))";
}
//AfxMessageBox("打开数据库!");
if(!pstuclass.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
AfxMessageBox("打开数据库失败!");
return;
}
m_stuQery_List.DeleteAllItems();//将表中原有的记录全部删掉
int i=0;
while(!pstuclass.IsEOF())
{
m_stuQery_List.InsertItem(i,pstu.m_Stu_no);
m_stuQery_List.SetItemText(i,1,pstu.m_Name);
m_stuQery_List.SetItemText(i,2,pclass.m_Name);
i++;
pstuclass.MoveNext();
}
pstuclass.Close();
}
catch(CDBException *pe){
AfxMessageBox(pe->m_strError);
pe->Delete();
}
//CDialog::OnOK();
}
void CStu_classQdlg::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
BOOL CStu_classQdlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_stuQery_List.InsertColumn(0,"学号");
m_stuQery_List.InsertColumn(1,"姓名");
m_stuQery_List.InsertColumn(2,"班级名");
m_stuQery_List.SetColumnWidth(0,100);
m_stuQery_List.SetColumnWidth(1,100);
m_stuQery_List.SetColumnWidth(1,100);
m_stuQery_List.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -