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

📄 mngquery.cpp

📁 学生选课管理信息系统原码
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "MngQuery.h"
#include "DataUnit.h"
#include "SelCourse.h"
#include "ModifyPassword.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TMngQryForm *MngQryForm;
//---------------------------------------------------------------------------
__fastcall TMngQryForm::TMngQryForm(TComponent* Owner)
        : TForm(Owner)
{
  m_strManagerName = "" ;
}
//---------------------------------------------------------------------------
_fastcall TMngQryForm::ShowData()
{
  AnsiString  tableName = "";
  switch(CatgGroup->ItemIndex)
  {
    case 0:
      tableName = "EduManager" ;
      break;
    case 1:
      tableName = "Course" ;
      break;
    case 2:
      tableName = "Department" ;
      break;
    case 3:
      tableName = "Student" ;
      break;
    case 4:
      tableName = "Grade" ;
      break;
    default:
      break;
  }
  AnsiString queryStr = "Select * from " ;
  queryStr += tableName ;       

  DataMod->GeneralQuery->Close() ;
  DataMod->GeneralQuery->SQL->Clear() ;
  if(CatgGroup->ItemIndex !=4 )
  {
    DataMod->GeneralQuery->SQL->Add(queryStr) ;

    try
    {
      //执行查询,以中文形式显示字段名
      DataMod->GeneralQuery->ExecSQL() ;
      DataMod->GeneralQuery->Active = True ;
      switch(CatgGroup->ItemIndex)
      {
        case 0:
          DataMod->GeneralQuery->FieldByName("EMName")->DisplayLabel  ="教务注册名" ;
          DataMod->GeneralQuery->FieldByName("EPassword")->DisplayLabel ="口 令" ;
          break;
        case 1:
          DataMod->GeneralQuery->FieldByName("CourseNo")->DisplayLabel ="课程号" ;
          DataMod->GeneralQuery->FieldByName("CourseName")->DisplayLabel ="课程名称" ;
          DataMod->GeneralQuery->FieldByName("CourseKind")->DisplayLabel ="课程类别" ;
          DataMod->GeneralQuery->FieldByName("Score")->DisplayLabel ="学 分" ;
          DataMod->GeneralQuery->FieldByName("Term")->Visible = false ;
          DataMod->GeneralQuery->FieldByName("Time")->DisplayLabel ="上课时间" ;
          DataMod->GeneralQuery->FieldByName("StudentMaxNum")->DisplayLabel ="名 额" ;
          break;
        case 2:
          DataMod->GeneralQuery->FieldByName("DepartNo")->DisplayLabel ="系 号" ;
          DataMod->GeneralQuery->FieldByName("DepartName")->DisplayLabel ="系 名" ;
          DataMod->GeneralQuery->FieldByName("Phone")->DisplayLabel ="电 话" ;
          break;
        case 3:
          DataMod->GeneralQuery->FieldByName("StudentNo")->DisplayLabel ="学 号" ;
          DataMod->GeneralQuery->FieldByName("StudentName")->DisplayLabel ="姓 名" ;
          DataMod->GeneralQuery->FieldByName("SPassword")->DisplayLabel ="口 令" ;
          DataMod->GeneralQuery->FieldByName("Sex")->DisplayLabel ="性 别" ;
          DataMod->GeneralQuery->FieldByName("Age")->DisplayLabel ="年 龄" ;
          DataMod->GeneralQuery->FieldByName("BirthPlace")->DisplayLabel ="生源地" ;
          DataMod->GeneralQuery->FieldByName("DepartNo")->DisplayLabel ="系 号" ;
          break;
        default:
          break;
      }
    }
    catch(EDBEngineError &E)
    {
      return FALSE ;
    }
  }
  else
  {
    //如果选择浏览课程成绩,必须先选择一门课程
    TSelectCourseDlg *SelectCourseDlg = new TSelectCourseDlg(this) ;
    if(SelectCourseDlg->ShowModal() == mrOk )
    {
      //然后显示所选择的课程的成绩表数据
      //需要先依据课程号查询成绩表
      queryStr = "Select * from Grade where CourseNo = \"" ;
      queryStr += SelectCourseDlg->m_strSelCourseNo ;
      queryStr += "\" Group by StudentNo,Term,GradeNo,Score,CourseNo,CourseKind,PlanCourse" ;

      DataMod->GeneralQuery->SQL->Add(queryStr) ;

      try                              
      {
        //执行查询,以中文形式显示字段名
        DataMod->GeneralQuery->ExecSQL() ;
        DataMod->GeneralQuery->Active = True ;
        DataMod->GeneralQuery->FieldByName("GradeNo")->Visible = false ;
        DataMod->GeneralQuery->FieldByName("StudentNo")->DisplayLabel ="学 号" ;
        DataMod->GeneralQuery->FieldByName("CourseNo")->DisplayLabel ="课程号" ;
        DataMod->GeneralQuery->FieldByName("CourseKind")->DisplayLabel ="课程类别" ;
        DataMod->GeneralQuery->FieldByName("Score")->DisplayLabel ="成 绩" ;
        DataMod->GeneralQuery->FieldByName("Term")->DisplayLabel ="开课学期" ;
        DataMod->GeneralQuery->FieldByName("PlanCourse")->DisplayLabel ="是否属于计划课程" ;
      }
      catch(EDBEngineError &E)
      {
        return FALSE ;
      }
    }
    delete SelectCourseDlg ;
  }
  return TRUE ;
}
void __fastcall TMngQryForm::FormShow(TObject *Sender)
{
  if(!ShowData())
    MessageBox(this,"查询失败!","错误",mbOK ) ;
}
//---------------------------------------------------------------------------

void __fastcall TMngQryForm::CatgGroupClick(TObject *Sender)
{
  if(!ShowData())
    MessageBox(this,"查询失败!","错误",mbOK ) ;        
}
//---------------------------------------------------------------------------

void __fastcall TMngQryForm::OKBtnClick(TObject *Sender)
{
  Close() ;        
}
//---------------------------------------------------------------------------

void __fastcall TMngQryForm::PasswordBtnClick(TObject *Sender)
{
  TMdfPwdDlg *MdfPwdDlg = new TMdfPwdDlg(this) ;
  if(MdfPwdDlg->ShowModal() == mrOk )
  {
    //修改口令
    DataMod->EduManagQuery->SQL->Clear() ;
    DataMod->EduManagQuery->Close() ;
    try
    {
      //查询EduManager.db数据表
      AnsiString queryString = "Select * from EduManager" ;
      queryString += " where EMName = " ;
      queryString += "\"" ;
      queryString += m_strManagerName ;
      queryString += "\"" ;
      DataMod->EduManagQuery->SQL->Add(queryString) ;
      //允许修改与TQuery控件相连的数据库文件
      DataMod->EduManagQuery->RequestLive = true ;
      DataMod->EduManagQuery->ExecSQL() ;
      DataMod->EduManagQuery->Active = true ;
      //首先将表设置为编辑模式
      DataMod->EduManagQuery->Edit() ;
      //修改口令
      DataMod->EduManagQuery->FieldValues["EPassword"]=
        MdfPwdDlg->FstTimeEdt->Text ;
      DataMod->EduManagQuery->Post() ;
      //修改完成之后,关闭数据表
      DataMod->EduManagQuery->Close() ;
    }
    catch(EDBEngineError &E)
    {
      MessageBox(this,"不能修改口令!","错误",mbOK ) ;
      delete MdfPwdDlg ;
      return ;
    }
  }
  //释放内存资源
  delete MdfPwdDlg ;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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