?? dlgmarkinfo.cpp
字號:
// Dlgmarkinfo.cpp : implementation file
//
#include "stdafx.h"
#include "教學管理信息系統.h"
#include "Dlgmarkinfo.h"
#include "Dlgmarkquerynew.h"
//#include "PassDlg.h"
#include "gradeset.h"
#include "Dlgdelgrade.h"
#include "Public.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgmarkinfo dialog
CDlgmarkinfo::CDlgmarkinfo(CWnd* pParent /*=NULL*/)
: CDialog(CDlgmarkinfo::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgmarkinfo)
m_lessontime = _T("");
m_stunum = _T("");
m_stuname = _T("");
m_lessonum = _T("");
m_lessoname = _T("");
m_xuefen = 0.0f;
m_grade = 0.0f;
//}}AFX_DATA_INIT
}
void CDlgmarkinfo::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgmarkinfo)
DDX_Control(pDX, IDC_LISTgradeinfo, m_listgradeinfo);
DDX_Text(pDX, IDC_EDITtime, m_lessontime);
DDX_Text(pDX, IDC_EDITstunum, m_stunum);
DDX_Text(pDX, IDC_EDITstuname, m_stuname);
DDX_Text(pDX, IDC_EDITlessonnum, m_lessonum);
DDX_Text(pDX, IDC_EDITlessoname, m_lessoname);
DDX_Text(pDX, IDC_EDITelevit, m_xuefen);
DDX_Text(pDX, IDC_EDITgrade, m_grade);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgmarkinfo, CDialog)
//{{AFX_MSG_MAP(CDlgmarkinfo)
ON_BN_CLICKED(IDC_BUTTON7, OnButton7)
ON_BN_CLICKED(IDC_BUTTONaddgrade, OnBUTTONaddgrade)
ON_BN_CLICKED(IDC_BUTTONdelgrade, OnBUTTONdelgrade)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_NOTIFY(NM_CLICK, IDC_LISTgradeinfo, OnClickLISTgradeinfo)
ON_BN_CLICKED(IDC_BUTTONupgrade, OnBUTTONupgrade)
ON_BN_CLICKED(IDC_BUTTONdele, OnBUTTONdele)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_LISTgradeinfo, OnColumnclickLISTgradeinfo)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgmarkinfo message handlers
BOOL CDlgmarkinfo::OnInitDialog()
{
CDialog::OnInitDialog();
int i;
DWORD dwNewStyle= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP |
LVS_EX_ONECLICKACTIVATE | LVS_EX_UNDERLINEHOT;
m_listgradeinfo.SetExtendedStyle(dwNewStyle);//(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_listgradeinfo.InsertColumn(0,"學號",LVCFMT_CENTER);
m_listgradeinfo.InsertColumn(1,"姓名",LVCFMT_CENTER);
m_listgradeinfo.InsertColumn(2,"課程號",LVCFMT_CENTER);
m_listgradeinfo.InsertColumn(3,"課程名",LVCFMT_CENTER);
m_listgradeinfo.InsertColumn(4,"學分",LVCFMT_CENTER);
m_listgradeinfo.InsertColumn(5,"成績",LVCFMT_CENTER);
m_listgradeinfo.InsertColumn(6,"開課時間",LVCFMT_CENTER);
for(i=0;i<7;i++)
m_listgradeinfo.SetColumnWidth(i,80);
initctrldata();
// TODO: Add extra initialization here
if(CPublic::or==2)//若全局變量or=2,說明是普通用戶,則將數據更新的操作設為不可用
{
GetDlgItem(IDC_BUTTONaddgrade)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTONupgrade)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTONdelgrade)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTONdele)->EnableWindow(FALSE);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgmarkinfo::OnButton7()
{
// TODO: Add your control notification handler code here
CDialog::OnCancel();
}
void CDlgmarkinfo::insertmarkinfo(CString stunum,CString stuname,CString
lessonnum,CString lessoname,CString xuefen,CString
grade,CString time)
{
int index=m_listgradeinfo.GetItemCount();
LV_ITEM lvitem;
lvitem.mask=LVIF_TEXT;
lvitem.iItem=index;
lvitem.iSubItem=0;
CString temp;
temp.Format("%d");
lvitem.pszText=(char*)(LPCTSTR)temp;
m_listgradeinfo.InsertItem(&lvitem);
m_listgradeinfo.SetItemText(index,0,stunum);
m_listgradeinfo.SetItemText(index,1,stuname);
m_listgradeinfo.SetItemText(index,2,lessonnum);
m_listgradeinfo.SetItemText(index,3,lessoname);
m_listgradeinfo.SetItemText(index,6,xuefen);
m_listgradeinfo.SetItemText(index,5,grade);
m_listgradeinfo.SetItemText(index,4,time);
}
void CDlgmarkinfo::initctrldata()
{
CDatabase m_database;
if(!m_database.Open(NULL,FALSE,FALSE,"ODBC;DSN=教務課程信息管理數據庫"))
{
AfxMessageBox("連接數據庫失敗");
}
try{
m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
while(!m_gradeset.IsEOF())
{
CString stunum,stuname,lessonnum,lessoname,time;
CString grade,xuefen;
m_gradeset.GetFieldValue((short)0,stunum);
m_gradeset.GetFieldValue(1,stuname);
m_gradeset.GetFieldValue(2,lessonnum);
m_gradeset.GetFieldValue(3,lessoname);
m_gradeset.GetFieldValue(4,xuefen);
m_gradeset.GetFieldValue(5,grade);
m_gradeset.GetFieldValue(6,time);
insertmarkinfo(stunum,stuname,lessonnum,lessoname,xuefen,grade,time);
m_gradeset.MoveNext();
}
m_gradeset.Close();
}
catch(CDBException*e)
{
e->ReportError();
return;
}
}
void CDlgmarkinfo::OnBUTTONaddgrade()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
try{
if(m_gradeset.IsOpen())
m_gradeset.Close();
m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
// m_stuinforecord.MoveLast();//MoveFirst();
m_gradeset.MoveLast();
// m_count+=1;
//->AddNew();
if(m_stunum.IsEmpty())
{
MessageBox("學號不能為空!");
}
else
{m_gradeset.AddNew();
m_gradeset.m_stunum=m_stunum;//m_stunumber;
m_gradeset.m_stuname=m_stuname;//m_stuname;
m_gradeset.m_lessonnum=m_lessonum;
m_gradeset.m_lessoname=m_lessoname;
m_gradeset.m_xuefen=m_xuefen;
m_gradeset.m_grade=m_grade;
m_gradeset.m_time=m_lessontime;
m_gradeset.Update();//->Update();
m_gradeset.Requery();//->Requery();
m_gradeset.Close();//必須先關閉記錄集
m_listgradeinfo.DeleteAllItems();
initctrldata();//initctrldata();
// m_stunumber.SetWindowText("");
// UpdateData(false);
SetDlgItemText(IDC_EDITstunum,"");
SetDlgItemText(IDC_EDITstuname,"");
SetDlgItemText(IDC_EDITlessonnum,"");
SetDlgItemText(IDC_EDITlessoname,"");
SetDlgItemText(IDC_EDITelevit,"");
SetDlgItemText(IDC_EDITgrade,"");
SetDlgItemText(IDC_EDITtime,"");
}
//SetDlgItemText(IDC_EDITstunumber,"");
//GetDlgItem(IDC_EDIT1)->SetWindowText("");
}
catch(CDBException*e)
{
e->ReportError();
return;
}
}
void CDlgmarkinfo::OnBUTTONdelgrade()
{
// TODO: Add your control notification handler code here
CDlgdelgrade dlg;
bool Selec=FALSE;
if(dlg.DoModal()==IDOK)
{
if(m_gradeset.IsOpen())
m_gradeset.Close();
m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
m_gradeset.MoveFirst();
bool sel=FALSE;
do
{
if(m_gradeset.m_stunum==dlg.m_delmarkstu&&m_gradeset.m_lessonnum==dlg.m_delmarklesson)
{m_gradeset.Delete();
sel=TRUE;
m_gradeset.Requery();
continue;
}
else
{
m_gradeset.MoveNext();
}
}while(!m_gradeset.IsEOF());
m_gradeset.Close();
if(sel==FALSE)
{
AfxMessageBox("沒有此記錄");
return;
}
else
{m_listgradeinfo.DeleteAllItems();
initctrldata();
}
}
}
void CDlgmarkinfo::OnButton1()
{
// TODO: Add your control notification handler code here
CDlgmarkquerynew dlgmarkquery;
dlgmarkquery.DoModal();
}
void CDlgmarkinfo::OnClickLISTgradeinfo(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
nitem=m_listgradeinfo.GetNextItem(-1,LVNI_SELECTED);
if(nitem!=-1)
{
m_stunum=m_listgradeinfo.GetItemText(nitem,0);
m_stuname=m_listgradeinfo.GetItemText(nitem,1);
m_lessonum=m_listgradeinfo.GetItemText(nitem,2);
m_lessoname=m_listgradeinfo.GetItemText(nitem,3);
SetDlgItemText(IDC_EDITelevit,"m_listgradeinfo.GetItemText(nitem,4)");
m_lessontime=m_listgradeinfo.GetItemText(nitem,6);
UpdateData(FALSE);
}
*pResult = 0;
}
void CDlgmarkinfo::OnBUTTONupgrade()
{
// TODO: Add your control notification handler code here
if(m_gradeset.IsOpen())
m_gradeset.Close();
m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
m_gradeset.MoveFirst();
for(int i=0;i<=nitem;i++)
{
if(i==nitem)
{
UpdateData(TRUE);
m_gradeset.Edit();
m_gradeset.m_stunum=m_stunum;
m_gradeset.m_stuname=m_stuname;
m_gradeset.m_lessonnum=m_lessonum;
m_gradeset.m_lessoname=m_lessoname;
m_gradeset.m_xuefen=m_xuefen;
m_gradeset.m_grade=m_grade;
m_gradeset.m_time=m_lessontime;
m_gradeset.Update();
m_gradeset.Requery();
m_gradeset.Close();
m_listgradeinfo.DeleteAllItems();
initctrldata();
}
else
{
m_gradeset.MoveNext();
}
}
}
void CDlgmarkinfo::OnBUTTONdele()
{
if(m_gradeset.IsOpen())
m_gradeset.Close();
m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
m_gradeset.MoveFirst();
for(int i=0;i<=nitem;i++)
{
if(i==nitem)
{
UpdateData(TRUE);
m_gradeset.Delete();
m_gradeset.Requery();
m_gradeset.Close();
m_listgradeinfo.DeleteAllItems();
initctrldata();
SetDlgItemText(IDC_EDITstunum,"");
SetDlgItemText(IDC_EDITstuname,"");
SetDlgItemText(IDC_EDITlessonnum,"");
SetDlgItemText(IDC_EDITlessoname,"");
SetDlgItemText(IDC_EDITelevit,"");
SetDlgItemText(IDC_EDITgrade,"");
SetDlgItemText(IDC_EDITtime,"");
}
else
{
m_gradeset.MoveNext();
}
}
}
//點擊列表框的表頭實現排序
void CDlgmarkinfo::OnColumnclickLISTgradeinfo(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
int i=pNMListView->iSubItem;
if(m_gradeset.IsOpen())
m_gradeset.Close();
m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
if(i==0)
{
m_gradeset.m_strSort="stunum";
m_gradeset.Close();
m_listgradeinfo.DeleteAllItems();
initctrldata();}
if(i==1)
{
m_gradeset.m_strSort="stuname";
m_gradeset.Close();
m_listgradeinfo.DeleteAllItems();
initctrldata();}
if(i==2)
{
m_gradeset.m_strSort="lessonnum";
m_gradeset.Close();
m_listgradeinfo.DeleteAllItems();
initctrldata();}
if(i==3)
{
m_gradeset.m_strSort="lessoname";
m_gradeset.Close();
m_listgradeinfo.DeleteAllItems();
initctrldata();}
if(i==4)
{
m_gradeset.m_strSort="xuefen";
m_gradeset.Close();
m_listgradeinfo.DeleteAllItems();
initctrldata();}
if(i==5)
{
m_gradeset.m_strSort="grade";
m_gradeset.Close();
m_listgradeinfo.DeleteAllItems();
initctrldata();}
if(i==6)
{
m_gradeset.m_strSort="time";
m_gradeset.Close();
m_listgradeinfo.DeleteAllItems();
initctrldata();}
*pResult = 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -