📄 searchxsdlg.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 "SearchXSDlg.h"
#include "AddStMsgRSet.h"
#include "AddXsMsgReSet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSearchXSDlg dialog
/*
* 构造函数
*/
CSearchXSDlg::CSearchXSDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSearchXSDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSearchXSDlg)
m_strST = _T(""); // 所选社团
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CSearchXSDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSearchXSDlg)
DDX_Control(pDX, IDC_LIST1, m_ctrList);
DDX_Control(pDX, IDC_COMBO_INWHICHST, m_ctrST);
DDX_CBString(pDX, IDC_COMBO_INWHICHST, m_strST);
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSearchXSDlg, CDialog)
//{{AFX_MSG_MAP(CSearchXSDlg)
ON_BN_CLICKED(IDC_Search, OnButtonSearch)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSearchXSDlg message handlers
/*
* 初始化“所在社团”下拉选项和学生列表
*/
BOOL CSearchXSDlg::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,60);
m_ctrList.SetColumnWidth(3,100);
m_ctrList.SetColumnWidth(4,100);
m_ctrList.SetColumnWidth(5,100);
m_ctrList.SetColumnWidth(6,0);
m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); // 设置列表
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
/*
* 执行某操作(修改,删除,查询)后刷新学生列表的记录
* @param oaValues CAddXsMsgReSet对象
*/
void CSearchXSDlg::RefreshData(CAddXsMsgReSet* oaValues)
{
m_ctrList.DeleteAllItems(); // 将学生列表的记录清空
m_ctrList.SetRedraw(FALSE);
UpdateData(TRUE); // 读入用户输入的信息
int i=0;
CString strSex;
while(!oaValues->IsEOF()) { // 将记录显示在学生列表中
m_ctrList.InsertItem(i,oaValues->m_XS_XH); // 学号
m_ctrList.SetItemText(i,1,oaValues->m_XS_XM); // 姓名
m_ctrList.SetItemText(i,2,(oaValues->m_XS_XB?"男":"女")); // 性别
m_ctrList.SetItemText(i,3,oaValues->m_XS_YDDH); // 手机
m_ctrList.SetItemText(i,4,oaValues->m_XS_YJDZ); // 邮件地址
m_ctrList.SetItemText(i,5,oaValues->m_XS_STMC); // 所在社团
m_ctrList.SetItemText(i,6,oaValues->m_XS_XSNM); // 所在社团
i++;
oaValues->MoveNext();
}
m_database.Close(); // 关掉数据库
m_ctrList.SetRedraw(TRUE);
}
/*
* 点击查询按钮后,查询XS数据表,显示符合条件的学生记录
*/
void CSearchXSDlg::OnButtonSearch()
{
UpdateData(); // 读入用户输入的信息
CString strSQL; // sql文
BOOL bHaveCon = FALSE; // 是否选择了“所在社团”
XsSearch* xsSearch = new XsSearch();
if(m_strST!="") { // 若选择了“所在社团”
strSQL.Format("select * from XS where XS_SCBZ=false and XS_STMC = '%s' ",m_strST);
bHaveCon = TRUE;
}
if(!bHaveCon) { // 若什么都没有选择,则查询所有的
strSQL.Format("select * from XS where XS_SCBZ=false");
}
/* 将符合条件的查询结果显示在列表中, 将CRecordset对象转成不同的数据集对象 */
CAddXsMsgReSet* oaValues = (CAddXsMsgReSet *)xsSearch->getSearchResult(strSQL);
RefreshData(oaValues); // 查询出结果,刷新显示列表
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -