📄 adminquerystudentinfdlg.cpp
字号:
// AdminQueryStudentInfDlg.cpp : implementation file
//
#include "stdafx.h"
#include "学生成绩管理系统.h"
//以下是手工添加的
#include "StudentRS.h"
#include "Public.h"
//以上是手工添加的
#include "AdminQueryStudentInfDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAdminQueryStudentInfDlg dialog
CAdminQueryStudentInfDlg::CAdminQueryStudentInfDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAdminQueryStudentInfDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CAdminQueryStudentInfDlg)
m_andOr = _T("");
m_condition1 = _T("");
m_condition2 = _T("");
m_keyWord1 = _T("");
m_keyWord2 = _T("");
//}}AFX_DATA_INIT
}
void CAdminQueryStudentInfDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAdminQueryStudentInfDlg)
DDX_Control(pDX, IDC_QUERY_STUDENT_INF_RESULT, m_queryStudentInfResult);
DDX_Control(pDX, IDC_QUERY_STUDENT_INF_RESULT_INDEX, m_queryStudentInfResultIndex);
DDX_CBString(pDX, IDC_AND_OR, m_andOr);
DDX_CBString(pDX, IDC_CONDITION1, m_condition1);
DDX_CBString(pDX, IDC_CONDITION2, m_condition2);
DDX_Text(pDX, IDC_KEYWORD1, m_keyWord1);
DDX_Text(pDX, IDC_KEYWORD2, m_keyWord2);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAdminQueryStudentInfDlg, CDialog)
//{{AFX_MSG_MAP(CAdminQueryStudentInfDlg)
ON_LBN_SELCHANGE(IDC_QUERY_STUDENT_INF_RESULT_INDEX, OnSelchangeListResult)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAdminQueryStudentInfDlg message handlers
void CAdminQueryStudentInfDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData();
m_queryStudentInfResultIndex.ResetContent();
m_queryStudentInfResult.ResetContent();
if (!m_studentSet.IsOpen())
{
m_studentSet.Open();
}
CString strFilter;
CString astrColumnCaption[3];//列名
CString *astrColumVal[3];//指向CString的指针数组,记录用户选择的查询条件
astrColumVal[1]=&m_condition1;
astrColumVal[2]=&m_condition2;
for(int i=1;i<3;i++)
{
if(!astrColumVal[i]->Compare("学号")){
astrColumnCaption[i]="ID";
continue;
}
else if (!astrColumVal[i]->Compare("姓名")){
astrColumnCaption[i]="name";
continue;
}
else if(!astrColumVal[i]->Compare("年龄")){
astrColumnCaption[i]="age";
continue;
}
else if(!astrColumVal[i]->Compare("年级")){
astrColumnCaption[i]="grade";
continue;
}
else if(!astrColumVal[i]->Compare("学院")){
astrColumnCaption[i]="college";
continue;
}
else
continue;
}
CString equal("=");
CString space(" ");
int flag=0;
if (m_condition1!=""&&m_keyWord1!=""&&m_andOr!=""&&m_condition2!=""&&m_keyWord2!="")
//当两个条件都成立时,并且有两个条件的关系时,按照两个条件查询
{
strFilter.Empty();
strFilter+=astrColumnCaption[1];
strFilter+=equal;
strFilter+="'";
strFilter+=m_keyWord1;
strFilter+="'";
strFilter+=space;
strFilter+=m_andOr;
strFilter+=space;
strFilter+=astrColumnCaption[2];
strFilter+=equal;
strFilter+="'";
strFilter+=m_keyWord2;
strFilter+="'";
}
else if(m_condition1!=""&&m_keyWord1!=""&&(m_condition2==""||m_andOr==""||m_keyWord2==""))
//当第一个条件成立,并且第二个条件不成立时,按照第一个条件查询
{
strFilter.Empty();
strFilter+=astrColumnCaption[1];
strFilter+=equal;
strFilter+="'";
strFilter+=m_keyWord1;
strFilter+="'";
}
else if ((m_condition1==""||m_keyWord1==""||m_andOr=="")&&m_condition2!=""&&m_keyWord2!="")
//当第二个条件成立时,并且第一个条件不成立时,按照第二个条件查询
{
strFilter.Empty();
strFilter+=astrColumnCaption[2];
strFilter+=equal;
strFilter+="'";
strFilter+=m_keyWord2;
strFilter+="'";
}
else if (m_condition1!=""&&m_keyWord1!=""&&m_condition2!=""&&m_keyWord2!=""&&m_andOr=="")
//当第一个、第二个条件都有时,但只缺少两个条件之间的关系时,给出的提示
{
flag=1;
AfxMessageBox("请输入连接关系后再查询!");
}
else
{
flag=1;
AfxMessageBox("请输入必要的信息!");
}
m_studentSet.m_strFilter=strFilter;
m_studentSet.Requery();
if (m_studentSet.IsEOF())
{
AfxMessageBox("没有查到!");
}
while (!m_studentSet.IsEOF()&&flag==0)
{
CString temp("学号:");
CString table(";姓名:");
temp+=m_studentSet.m_ID;
temp+=table;
temp+=m_studentSet.m_name;
m_queryStudentInfResultIndex.AddString(temp);
m_studentSet.MoveNext();
}
}
void CAdminQueryStudentInfDlg::OnSelchangeListResult()
{
// TODO: Add your control notification handler code here
CString aColCaption[7];
aColCaption[0]="学号: ";
aColCaption[1]="姓名: ";
aColCaption[2]="密码: ";
aColCaption[3]="类别: ";
aColCaption[4]="年龄: ";
aColCaption[5]="学院: ";
aColCaption[6]="年级: ";
m_queryStudentInfResult.ResetContent();//清空查询的结果的列表中的原有内容
int curSel;//记录集中的当前位置
CString strDetail;//内容
CString strLine;//列表中的一行,行=标题:+内容
curSel= m_queryStudentInfResultIndex.GetCurSel();//取得结果列表中当前的选中位置
m_studentSet.SetAbsolutePosition(curSel+1); //将记录集指针移到该位置
for (int i=0;i<m_studentSet.m_nFields;i++){
m_studentSet.GetFieldValue(i,strDetail);//从记录集中取出第i列的值,存在strDetail中
strLine.Empty();// 清空原有的内容
strLine+=aColCaption[i];//增加标题
strLine+=strDetail;//增加内容
m_queryStudentInfResult.AddString(strLine);//把该行添加到书目详细信息的列表中
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -