⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 noticeaction.cpp

📁 学校社团管理系统Visual C
💻 CPP
字号:
/**
 * <p> Title: 对通知对象进行增加,删除,修改,查询功能的子类实现 </p>
 * <p> Description:提供对社团,学生,活动对象进行增加,删除,修改,查询功能的处理 </p>
 * <p> Copyright: Copyright (c) 2005-12-21 </p>
 * <p> Company: bjut </p>
 * @author gaok
 * @version 1.0 
 * @Created on 2005-12-21
 */
#include "stdafx.h"
#include "STMis.h"
#include "NoticeAction.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
/*
 * 构造函数
 */
NoticeAction::NoticeAction(Variable* vSt)
{
NoticeVariable* nvSt = (NoticeVariable *)vSt;
	m_strHdnm = nvSt->NM; // 活动内码,主键
	m_strStName = nvSt->STMC; // 社团名称
	m_dtNotice = nvSt->HD_HDRQ; // 活动日期
	m_tmBegin = nvSt->HD_HDKSSJ; // 活动开始时间
	m_tmEnd = nvSt->HD_HDJSSJ; // 活动结束时间
	m_strPlace = nvSt->HD_HDDD; // 活动地点
    m_strContent = nvSt->HD_HDNR; // 活动内容
	m_username = nvSt->LRR; // 录入人,修改人,删除人
}
/*
 * 增加活动名称
 */
void NoticeAction::add() {
	int i = 1; // 内码
	int flag = 0; // 循环标志
	// 从主码为1开始在数据库中的相应表中搜索,如果找到记录,则主码值加1,直到数据库中无该主码
	// 值,对应的记录,则将该主码分配给新的记录
	while (!flag) {
		CAddNoticeRSet m_recordset(&m_database); // 连接数据库
		sSql.Format("select * from HD where HD_NM='%d'", i); // 查询社团数据表
		m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,sSql); // 通过CAddStMsgRSet进行绑定查询
		if (m_recordset.GetRecordCount() == 0) { // 增加新的社团组织				
			CTime tm=CTime::GetCurrentTime(); // 获得系统当前时间
			CString str=tm.Format("%Y-%m-%d %H:%M:%S"); // 格式成:yyyy-mm-dd hh:mm:ss的格式				
			// 录入人需要从登陆人的用户名中得到,ok
			sSql.Format("INSERT INTO HD (HD_NM,HD_ZZMC,HD_HDRQ,HD_HDKSSJ,HD_HDJSSJ,HD_HDDD,HD_HDNR,HD_SCBZ,HD_LRR,HD_LRSJ) VALUES	(\'%d\',\'%s\',\'%d-%d-%d\',\'%d:%d:%d\',\'%d:%d:%d\',\'%s\',\'%s\',false,\'%s\',\'%s\')",i,m_strStName,m_dtNotice.GetYear(), m_dtNotice.GetMonth(), m_dtNotice.GetDay(), m_tmBegin.GetHour(), m_tmBegin.GetMinute(), m_tmBegin.GetSecond(), m_tmEnd.GetHour(), m_tmEnd.GetMinute(), m_tmEnd.GetSecond(),m_strPlace,m_strContent,m_username,str); // 插入新的活动
			m_database.ExecuteSQL(sSql); // 执行SQL文
			m_database.Close(); // 关掉数据库
			flag = 1; // 结束循环
		} else if (m_recordset.GetRecordCount() > 0) { // 主键顺序加一
			i ++;
			m_database.Close(); // 关掉数据库
		}
	}
}
/*
 * 通知维护页面的修改功能
 */
void NoticeAction::modify() {
	CTime tm = CTime::GetCurrentTime(); // 获得系统当前时间
	CString str = tm.Format("%Y-%m-%d %H:%M:%S"); // 格式成:yyyy-mm-dd hh:mm:ss的格式				
	sSql.Format("select * from HD where HD_SCBZ=false and HD_NM ='%s'", m_strHdnm);
	CAddNoticeRSet m_resultset(&m_database); // 连接数据库
	m_resultset.Open(AFX_DB_USE_DEFAULT_TYPE,sSql); // 通过CAddNoticeRSet进行绑定查询
	CString strSQL;
	CString strLRR = m_resultset.m_HD_LRR;
	CString strLRSJ = m_resultset.m_HD_LRSJ;			
	sSql.Format("update HD set HD_ZZMC=\'%s\',HD_HDRQ=\'%d-%d-%d\',HD_HDKSSJ=\'%d:%d:%d\',HD_HDJSSJ=\'%d:%d:%d\',HD_HDDD=\'%s\',HD_HDNR=\'%s\',HD_XGR=\'%s\',HD_XGSJ=\'%s\' where HD_SCBZ=false and HD_NM=\'%s\'", m_strStName, m_dtNotice.GetYear(), m_dtNotice.GetMonth(), m_dtNotice.GetDay(), m_tmBegin.GetHour(), m_tmBegin.GetMinute(), m_tmBegin.GetSecond(), m_tmEnd.GetHour(), m_tmEnd.GetMinute(), m_tmEnd.GetSecond(), m_strPlace, m_strContent, m_username, str, m_strHdnm);
	m_database.ExecuteSQL(sSql); // 执行SQL文
	//strSQL.Format("delete from HD where HD_NM ='%s'",m_strHdnm);
	//m_database.ExecuteSQL(strSQL); // 执行SQL文
	//strSQL.Format("INSERT INTO HD (HD_NM,HD_ZZMC,HD_HDRQ,HD_HDKSSJ,HD_HDJSSJ,HD_HDDD,HD_HDNR,HD_SCBZ,HD_LRR,HD_LRSJ,HD_XGR,HD_XGSJ) VALUES	(\'%s\',\'%s\',\'%d-%d-%d\',\'%d:%d:%d\',\'%d:%d:%d\','%s','%s',false,\'%s\','%s','%s','%s')",m_strHdnm,m_strStName,m_dtNotice.GetYear(), m_dtNotice.GetMonth(), m_dtNotice.GetDay(), m_tmBegin.GetHour(), m_tmBegin.GetMinute(), m_tmBegin.GetSecond(), m_tmEnd.GetHour(), m_tmEnd.GetMinute(), m_tmEnd.GetSecond(),m_strPlace,m_strContent,strLRR,strLRSJ,m_username,str); // 插入新的活动
	//m_database.ExecuteSQL(strSQL); // 执行SQL文		
	m_database.Close(); // 关掉数据库	
}
/*
 * 通知维护页面的删除功能
 */
void NoticeAction::del() {
	sSql.Format("select * from HD where HD_SCBZ=false and HD_NM ='%s' ", m_strHdnm);
	CAddNoticeRSet m_resultset(&m_database); // 连接数据库
	CTime tm=CTime::GetCurrentTime(); // 获得系统当前时间
	CString str=tm.Format("%Y-%m-%d %H:%M:%S"); // 格式成:yyyy-mm-dd hh:mm:ss的格式				
	/* 通过CAddNoticeRSet进行绑定查询 */
	if(!m_resultset.Open(AFX_DB_USE_DEFAULT_TYPE,sSql))
	{
		AfxMessageBox("打开数据库失败!");
		return ;
	}
	sSql.Format("update HD set HD_SCR='%s', HD_SCSJ='%s', HD_SCBZ=true where HD_NM ='%s'",m_username,str,m_strHdnm); // 插入新的活动
	m_database.ExecuteSQL(sSql); // 执行SQL文		
	m_database.Close(); // 关掉数据库
}
/*
 * 通知维护页面的
 */
void NoticeAction::search() {
}
/*
 * 通知维护页面的
 */
void NoticeAction::view() {
}
/*
 * 判断数据库中是否存在所要增加的通知
 * return bool true/false
 */
bool NoticeAction::isEmpty() {
	sSql.Format("select * from HD where HD_HDDD='%s' and HD_HDRQ=#%d-%d-%d# and HD_HDKSSJ=#70/1/1 %d:%d:%d# and HD_HDJSSJ=#70/1/1 %d:%d:%d# and HD_SCBZ=false", m_strPlace, m_dtNotice.GetYear(), m_dtNotice.GetMonth(), m_dtNotice.GetDay(), m_tmBegin.GetHour(), m_tmBegin.GetMinute(), m_tmBegin.GetSecond(), m_tmEnd.GetHour(), m_tmEnd.GetMinute(), m_tmEnd.GetSecond()); // 查询数据库,是否已经录入过此活动
	m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,sSql); // 查询数据库
	/* 判断用户所增加的活动是否已经存在,不允许活动在时间地点上冲突 */
	if (m_recordset.GetRecordCount() == 0) { // 如果不冲突
		m_database.Close(); // 关掉数据库
	    return true;
	} else { // 冲突
		m_database.Close(); // 关闭数据库
		return false;
	}
}
/*
 * 执行某操作(修改,删除,查询)后刷新活动列表的记录
 * @param strSQL SQL文
 * @return CRecordset 结果集
 */
CRecordset* NoticeAction::RefreshData(CString strSQL) {
	CAddNoticeRSet* m_recordSet = new CAddNoticeRSet(&m_database); // 连接数据库
	m_recordSet->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); // 查询数据库
	return m_recordSet;	// 返回结果集
}
/*
 * 析构函数
 */
NoticeAction::~NoticeAction()
{

}

⌨️ 快捷键说明

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