activpage.cpp

来自「大学班务管理系统」· C++ 代码 · 共 233 行

CPP
233
字号
// activpage.cpp : implementation file
//

#include "stdafx.h"
#include "教学管理信息系统.h"
#include "activpage.h"
#include "Public.h"
 
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// Cactivpage property page

IMPLEMENT_DYNCREATE(Cactivpage, CPropertyPage)

Cactivpage::Cactivpage() : CPropertyPage(Cactivpage::IDD)
{
	//{{AFX_DATA_INIT(Cactivpage)
	m_activtime = _T("");
	m_activnum = _T("");
	m_activintru = _T("");
	m_activcontent = _T("");
	//}}AFX_DATA_INIT
}

Cactivpage::~Cactivpage()
{
}

void Cactivpage::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Cactivpage)
	DDX_Control(pDX, IDC_LISTclassactive, m_lstactive);
	DDX_Text(pDX, IDC_EDITactivtime, m_activtime);
	DDX_Text(pDX, IDC_EDITactivnum, m_activnum);
	DDX_Text(pDX, IDC_EDITactivintru, m_activintru);
	DDX_Text(pDX, IDC_EDITactivcotent, m_activcontent);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(Cactivpage, CPropertyPage)
	//{{AFX_MSG_MAP(Cactivpage)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_NOTIFY(NM_CLICK, IDC_LISTclassactive, OnClickLISTclassactive)
	ON_BN_CLICKED(IDC_BUTTONupdate, OnBUTTONupdate)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Cactivpage message handlers

BOOL Cactivpage::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN)
   return 0;
    return CDialog::PreTranslateMessage(pMsg);
}
//向数据库中添加班级活动的记录
void Cactivpage::OnButton1() 
{
	// TODO: Add your control notification handler code here
		UpdateData(TRUE); 

try{
	if(m_activset.IsOpen())
	m_activset.Close();
	m_activset.Open(CRecordset::dynaset,NULL,CRecordset::none);
    m_activset.AddNew();


    m_activset.m_activtime=m_activtime;
    m_activset.m_activnum=m_activnum;
	m_activset.m_activintru=m_activintru;
	m_activset.m_activcotent=m_activcontent;
	
    m_activset.Update();
    m_activset.Requery();
    m_activset.Close();
	m_lstactive.DeleteAllItems();
	initctrldata();
 
	SetDlgItemText(IDC_EDITactivtime,""); 
	SetDlgItemText(IDC_EDITactivnum,"");
	SetDlgItemText(IDC_EDITactivintru,"");
	SetDlgItemText(IDC_EDITactivcotent,"");

}
catch(CDBException*e)
	{
		e->ReportError();
		return;
	}
	
}

BOOL Cactivpage::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	 if(CPublic::or==2)
    {
	GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTONupdate)->EnableWindow(FALSE);

	}
	
	// TODO: Add extra initialization here
	int i;
	DWORD dwNewStyle= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP |
		LVS_EX_ONECLICKACTIVATE | LVS_EX_UNDERLINEHOT;
	m_lstactive.SetExtendedStyle(dwNewStyle);
	m_lstactive.InsertColumn(0,"活动时间",LVCFMT_CENTER);
	m_lstactive.InsertColumn(1,"参与人数",LVCFMT_CENTER);
	m_lstactive.InsertColumn(2,"活动简介",LVCFMT_CENTER);
	m_lstactive.InsertColumn(3,"内容",LVCFMT_CENTER);


	for(i=0;i<4;i++)
	m_lstactive.SetColumnWidth(i,80);
	initctrldata();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
void Cactivpage::insertclassfeeinfo(CString activtime,CString activnum,CString 
								activintru,CString activcontent)
								
{
	int index=m_lstactive.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_lstactive.InsertItem(&lvitem);
    m_lstactive.SetItemText(index,0,activtime);
	m_lstactive.SetItemText(index,1,activnum);
	m_lstactive.SetItemText(index,2,activintru);
	m_lstactive.SetItemText(index,3,activcontent);

}




void Cactivpage::initctrldata()
{
	 CDatabase m_database;
	   
	if(!m_database.Open(NULL,FALSE,FALSE,"ODBC;DSN=教务课程信息管理数据库"))
	{
		AfxMessageBox("连接数据库失败");
	}

	try{
        m_activset.Open(CRecordset::dynaset,NULL,CRecordset::none);
		while(!m_activset.IsEOF())
		{
		CString time,count,intru,content;

		m_activset.GetFieldValue((short)0,time);
        m_activset.GetFieldValue(1,count);
		m_activset.GetFieldValue(2,intru);
		m_activset.GetFieldValue(3,content);

        insertclassfeeinfo(time,count,intru,content);
		m_activset.MoveNext();
	}
	m_activset.Close();
	}
	catch(CDBException*e)
	{
		e->ReportError();
	return;
	}

}

void Cactivpage::OnClickLISTclassactive(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	nitem=m_lstactive.GetNextItem(-1,LVNI_SELECTED);
	if(nitem!=-1)
	{
		m_activtime=m_lstactive.GetItemText(nitem,0);
        m_activnum=m_lstactive.GetItemText(nitem,1);
		m_activintru=m_lstactive.GetItemText(nitem,2);
		m_activcontent=m_lstactive.GetItemText(nitem,3);

         UpdateData(FALSE);
	}
	*pResult = 0;
}

void Cactivpage::OnBUTTONupdate() 
{
	// TODO: Add your control notification handler code here
	if(m_activset.IsOpen())
	 m_activset.Close();
	 m_activset.Open(CRecordset::dynaset,NULL,CRecordset::none);

	 m_activset.MoveFirst();
	 for(int i=0;i<=nitem;i++)
	 {
		 if(i==nitem)
		 {
    UpdateData(TRUE); 
	m_activset.Edit();
    m_activset.m_activtime=m_activtime;
    m_activset.m_activnum=m_activnum;
	m_activset.m_activintru=m_activintru;
	m_activset.m_activcotent=m_activcontent;
    m_activset.Update();
    m_activset.Requery();
    m_activset.Close();
    m_lstactive.DeleteAllItems();
    initctrldata(); 
	}
		 else
		 {
			m_activset.MoveNext();
			 
		 }
 }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?