📄 searchnoticedlg.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 + -