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

📄 searchnoticedlg.cpp

📁 学校社团管理系统Visual C
💻 CPP
字号:
/**
 * <p> Title: 查询通知的窗口类实现 </p>
 * <p> Description:提供查询通知功能 </p>
 * <p> Copyright: Copyright (c) 2005-12-17 </p>
 * <p> Company: bjut </p>
 * @author gaok
 * @version 1.0 
 * @Created on 2005-12-17
 */
#include "stdafx.h"
#include "STMis.h"
#include "SearchNoticeDlg.h"
#include "AddStMsgRSet.h"
#include "AddNoticeRSet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSearchNoticeDlg dialog
/*
 * 构造函数
 */
CSearchNoticeDlg::CSearchNoticeDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CSearchNoticeDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSearchNoticeDlg)
	m_dtNotice = 0; // 活动日期
	m_strPlace = _T(""); // 活动地点
	m_strSt = _T(""); // 社团
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

void CSearchNoticeDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSearchNoticeDlg)
	DDX_Control(pDX, IDC_LIST1, m_ctrList);
	DDX_Control(pDX, IDC_COMBO_ST, m_ctrSt);
	DDX_CBString(pDX, IDC_COMBO_ST, m_strSt);
	DDX_Text(pDX, IDC_EDIT_PLACE, m_strPlace);
	DDX_DateTimeCtrl(pDX, IDC_DATE, m_dtNotice);
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CSearchNoticeDlg, CDialog)
	//{{AFX_MSG_MAP(CSearchNoticeDlg)
	ON_BN_CLICKED(IDC_Search, OnButtonSearch)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSearchNoticeDlg message handlers
/*
 * 初始化“所在社团”下拉选项和活动列表
 */
BOOL CSearchNoticeDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	CString strSQL;
	UpdateData(TRUE); // 读入用户输入的信息
	CAddStMsgRSet m_recordset(&m_database); // 连接数据库
	strSQL.Format("select * from ST where ST_SCBZ=false");
	if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { // 查询数据库
		MessageBox("打开数据库失败!","数据库错误",MB_OK);
	}
	while(!m_recordset.IsEOF()) { // 将数据库中ST表中的社团名称加到“所在社团”的下拉选项中
		m_ctrSt.AddString(m_recordset.m_ST_ZZMC);
		m_recordset.MoveNext(); // 移到下一条记录
	}
	m_database.Close(); // 关掉数据库
	
	/* 设置活动信息列表的表项 */
	m_ctrList.InsertColumn(0,"所在社团");
	m_ctrList.InsertColumn(1,"活动地点");
	m_ctrList.InsertColumn(2,"活动日期");
	m_ctrList.InsertColumn(3,"开始时间");
	m_ctrList.InsertColumn(4,"结束时间");
	m_ctrList.InsertColumn(5,"活动内容");
	m_ctrList.InsertColumn(6,""); // 活动内码,主键,暗传方式
	m_ctrList.SetColumnWidth(0,100);
	m_ctrList.SetColumnWidth(1,100);
	m_ctrList.SetColumnWidth(2,100);
	m_ctrList.SetColumnWidth(3,100);
	m_ctrList.SetColumnWidth(4,100);
	m_ctrList.SetColumnWidth(5,200);
	m_ctrList.SetColumnWidth(6,0);
	m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); // 设置列表	
	UpdateData(FALSE);	
	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}
/*
 * 执行某操作(修改,删除,查询)后刷新活动列表的记录
 * @param oaValues CAddNoticeRSet指针
 */
void CSearchNoticeDlg::RefreshData(CAddNoticeRSet* oaValues)
{
	m_ctrList.DeleteAllItems(); // 将活动列表的记录清空
	m_ctrList.SetRedraw(FALSE);
	UpdateData(TRUE); // 读入用户输入的信息
	int i=0;
    while(!oaValues->IsEOF()) { // 将记录显示在学生列表中		
	    m_ctrList.InsertItem(i,oaValues->m_HD_ZZMC); // 所在社团
		m_ctrList.SetItemText(i,1,oaValues->m_HD_HDDD); // 活动地点
		CTime tmTemp = oaValues->m_HD_HDRQ; // 获得活动日期
		CString strTemp=tmTemp.Format("%Y-%m-%d"); // 格式成:YYYY-MM-DD的格式
		m_ctrList.SetItemText(i,2,strTemp); // 开始时间
		tmTemp = oaValues->m_HD_HDKSSJ; // 获得开始时间
		strTemp=tmTemp.Format("%H:%M:%S"); // 格式成:hh:mm:ss的格式			
		m_ctrList.SetItemText(i,3,strTemp); // 开始时间
		tmTemp = oaValues->m_HD_HDJSSJ; // 获得开始时间
		strTemp=tmTemp.Format("%H:%M:%S"); // 格式成:hh:mm:ss的格式
		m_ctrList.SetItemText(i,4,strTemp); // 结束时间
		m_ctrList.SetItemText(i,5,oaValues->m_HD_HDNR); // 活动内容
		m_ctrList.SetItemText(i,6,oaValues->m_HD_NM); // 主键
		i++;
		oaValues->MoveNext();
	}
	m_database.Close(); // 关掉数据库
	m_ctrList.SetRedraw(TRUE);	
}
/*
 * 执行查询操作
 */
void CSearchNoticeDlg::OnButtonSearch() 
{
    UpdateData(); // 读入用户输入的信息
	CString  strSQL; // sql文
	NoticeSearch* nsSearch = new NoticeSearch();
	BOOL bSelSt = FALSE; // 是否选择了“所在社团”
	BOOL isSelDate = FALSE; // 是否选择了“活动日期”
	BOOL isSelPlace = FALSE; // 是否填写了“活动地点”
	if (m_strPlace != "") { // 填写了“活动地点”
	    strSQL.Format("select * from HD where HD_SCBZ=false and HD_HDDD = '%s' ",m_strPlace);
        isSelPlace = TRUE;
		if (m_dtNotice != 0) { // 选择了“活动日期”
			CString strDate;
			strDate.Format("and HD_HDRQ=#%d-%d-%d# ", m_dtNotice.GetYear(), m_dtNotice.GetMonth(), m_dtNotice.GetDay());
			strSQL += strDate;
            isSelDate = TRUE;
			if (m_strSt!="") { // 选择了“所在社团”
				CString strSt;
				strSt.Format("and HD_ZZMC='%s'", m_strSt);
				strSQL += strSt;
				bSelSt = TRUE;
			}
		} else if (m_dtNotice == 0) { // 未选择“活动日期”
			if (m_strSt!="") { // 选择了“所在社团”
				CString strSt;
				strSt.Format("and HD_ZZMC='%s'", m_strSt);
                strSQL += strSt;
				bSelSt = TRUE;
			}
		}
	} else if (m_strPlace == "") { // 未填写“活动地点”
		if (m_dtNotice != 0) { // 选择了“活动日期”
	        strSQL.Format("select * from HD where HD_SCBZ=false and HD_HDRQ=#%d-%d-%d# ",m_dtNotice.GetYear(), m_dtNotice.GetMonth(), m_dtNotice.GetDay());
            isSelDate = TRUE;
			if (m_strSt!="") { // 选择了“所在社团”
				CString strSt;
				strSt.Format("and HD_ZZMC='%s'", m_strSt);
				strSQL += strSt;
				bSelSt = TRUE;
			}
		} else if (m_dtNotice == 0) { // 未选择“活动日期”
			if (m_strSt!="") { // 选择了“所在社团”
				strSQL.Format("select * from HD where HD_SCBZ=false and HD_ZZMC='%s'", m_strSt);
				bSelSt = TRUE;
			}
		}
	}
	if(!bSelSt && !isSelDate && !isSelPlace) { // 若什么都没有选择,则查询所有的
		strSQL.Format("select * from HD where HD_SCBZ=false");
	}
	/* 将符合条件的查询结果显示在列表中, 将CRecordset对象转成不同的数据集对象 */
	CAddNoticeRSet* oaValues = (CAddNoticeRSet *)nsSearch->getSearchResult(strSQL);
	RefreshData(oaValues); // 查询出结果,刷新显示列表	
}

⌨️ 快捷键说明

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