📄 workman.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "WorkMan.h"
#include "Student.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmWorkMan *frmWorkMan;
//---------------------------------------------------------------------------
__fastcall TfrmWorkMan::TfrmWorkMan(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmWorkMan::FormShow(TObject *Sender)
{
rad_All->Checked=true;
rad_hasjob->Checked=false;
rad_nojob->Checked=false;
RefreshYX();
cmb_Major->Clear();
cmb_Grade->Clear();
cmb_Class->Clear();
String s="select y.name as yxname,m.name as majorname,g.name as gradename,c.name as classname,s.num as stunum,s.name as stuname,s.iswork as work from tbStudent as s inner join tbClass as c on s.classid=c.id inner join tbMajor as m on c.majorid=m.id inner join tbGrade as g on g.id=c.gradeid inner join tbYX as y on y.id=m.yxid";
RefreshStudent(s);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWorkMan::RefreshYX()
{
cmb_YX->Clear();
ADODataSet1->CommandText="select name from tbYX";
ADODataSet1->Open();
if(!ADODataSet1->Eof)
{
ADODataSet1->First();
}
while(!ADODataSet1->Eof)
{
cmb_YX->Items->Add(ADODataSet1->FieldByName("name")->AsString);
ADODataSet1->Next();
}
ADODataSet1->Close();
}
void __fastcall TfrmWorkMan::RefreshMajor(String yx)
{
String yxid;
cmb_Major->Clear();
ADODataSet1->CommandText="select id from tbyx where name='" + yx +"'";
ADODataSet1->Open();
yxid=ADODataSet1->FieldByName("id")->AsString;
ADODataSet1->Close();
ADODataSet1->CommandText="select name from tbMajor where yxid=" +yxid;
ADODataSet1->Open();
if(!ADODataSet1->Eof)
{
ADODataSet1->First();
}
while(!ADODataSet1->Eof)
{
cmb_Major->Items->Add(ADODataSet1->FieldByName("name")->AsString);
ADODataSet1->Next();
}
ADODataSet1->Close();
}
void __fastcall TfrmWorkMan::RefreshGrade()
{
cmb_Grade->Clear();
ADODataSet1->CommandText="select name from tbGrADE";
ADODataSet1->Open();
if(!ADODataSet1->Eof)
{
ADODataSet1->First();
}
while(!ADODataSet1->Eof)
{
cmb_Grade->Items->Add(ADODataSet1->FieldByName("name")->AsString);
ADODataSet1->Next();
}
ADODataSet1->Close();
}
void __fastcall TfrmWorkMan::RefreshClass(String major,String grade)
{
String majorid,gradeid;
cmb_Class->Clear();
ADODataSet1->CommandText="select id from tbMajor where name='" + major +"'";
ADODataSet1->Open();
majorid=ADODataSet1->FieldByName("id")->AsString;
ADODataSet1->Close();
ADODataSet1->CommandText="select id from tbGrade where name='" + grade + "'";
ADODataSet1->Open();
gradeid=ADODataSet1->FieldByName("id")->AsString;
ADODataSet1->Close();
ADODataSet1->CommandText="select name from tbClass where majorid=" +majorid + " and gradeid=" + gradeid;
ADODataSet1->Open();
if(!ADODataSet1->Eof)
{
ADODataSet1->First();
}
while(!ADODataSet1->Eof)
{
cmb_Class->Items->Add(ADODataSet1->FieldByName("name")->AsString);
ADODataSet1->Next();
}
ADODataSet1->Close();
}
void __fastcall TfrmWorkMan::RefreshStudent(String s)
{
String yxname;
String majorname;
String gradename;
String classname;
String stunum;
String stuname;
String iswork;
String str;
int i;
lis_Student->Clear();
ADODataSet1->CommandText=s;
ADODataSet1->Open();
if(!ADODataSet1->Eof)
{
ADODataSet1->First();
}
while(!ADODataSet1->Eof)
{
yxname=ADODataSet1->FieldByName("yxname")->AsString;
majorname=ADODataSet1->FieldByName("majorname")->AsString;
gradename=ADODataSet1->FieldByName("gradename")->AsString;
classname=ADODataSet1->FieldByName("classname")->AsString;
stunum=ADODataSet1->FieldByName("stunum")->AsString;
stuname=ADODataSet1->FieldByName("stuname")->AsString;
iswork=ADODataSet1->FieldByName("work")->AsString;
if(iswork=="True")
{
iswork="是";
}
else
{
iswork="否";
}
while(yxname.Length()<30)
{yxname+=" ";}
while(majorname.Length()<30)
{majorname+=" "; }
while(gradename.Length()<20)
{gradename+=" ";}
while(classname.Length()<20)
{classname+=" ";}
while(stunum.Length()<20)
{stunum+=" ";}
while(stuname.Length()<20)
{stuname+=" ";}
str="";
str=yxname+majorname+gradename+classname+stunum+stuname+iswork;
lis_Student->Items->Add(str);
ADODataSet1->Next();
}
ADODataSet1->Close();
}
void __fastcall TfrmWorkMan::btn_CancelClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWorkMan::btn_SelectClick(TObject *Sender)
{
String s="select y.name as yxname,m.name as majorname,g.name as gradename,c.name as classname,s.num as stunum,s.name as stuname,s.iswork as work from tbStudent as s inner join tbClass as c on s.classid=c.id inner join tbMajor as m on c.majorid=m.id inner join tbGrade as g on g.id=c.gradeid inner join tbYX as y on y.id=m.yxid ";
if(rad_hasjob->Checked==true)
{
s+="where s.iswork=1";
}
if(rad_nojob->Checked==true)
{
s+="where s.iswork=0";
}
if(rad_All->Checked==true)
{
s+="where s.iswork in(0,1)";
}
if(!cmb_YX->Text.IsEmpty())
s+=" and y.name='" + cmb_YX->Text +"'";
if(!cmb_Major->Text.IsEmpty())
s+=" and m.name='" + cmb_Major->Text +"'";
if(!cmb_Grade->Text.IsEmpty())
s+=" and g.name='" + cmb_Grade->Text +"'";
if(!cmb_Class->Text.IsEmpty())
s+=" and c.name='" + cmb_Class->Text +"'";
if(!txt_Name->Text.IsEmpty())
s+=" and s.name='" + txt_Name->Text +"'";
if(!txt_Num->Text.IsEmpty())
s+=" and s.num='" + txt_Num->Text +"'";
if(chkZS->Checked)
s+=" and (s.zs1<>'' or s.zs2<>'' or s.zs3<>'')";
if(chkJY->Checked)
s+=" and s.jy<>''";
if(chkJLCF->Checked)
s+=" and s.jlcf<>''";
RefreshStudent(s);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWorkMan::cmb_YXChange(TObject *Sender)
{
RefreshMajor(cmb_YX->Text);
cmb_Grade->Clear();
cmb_Class->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWorkMan::cmb_MajorChange(TObject *Sender)
{
RefreshGrade();
cmb_Class->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWorkMan::cmb_GradeChange(TObject *Sender)
{
RefreshClass(cmb_Major->Text,cmb_Grade->Text);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWorkMan::btn_AddClick(TObject *Sender)
{
TfrmStudent *fm=new TfrmStudent(this);
fm->method=0;
fm->ShowModal();
delete fm;
String s="select y.name as yxname,m.name as majorname,g.name as gradename,c.name as classname,s.num as stunum,s.name as stuname,s.iswork as work from tbStudent as s inner join tbClass as c on s.classid=c.id inner join tbMajor as m on c.majorid=m.id inner join tbGrade as g on g.id=c.gradeid inner join tbYX as y on y.id=m.yxid";
RefreshStudent(s);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWorkMan::btn_UpdClick(TObject *Sender)
{
if(lis_Student->ItemIndex<0)
{
Application->MessageBoxA("请选择要修改的毕业生信息!","警告!",MB_OK);
return;
}
String str;
str=lis_Student->Items->Strings[lis_Student->ItemIndex];
str=str.SubString(100,20);
str=str.Trim();
TfrmStudent *fm=new TfrmStudent(this);
fm->method=1;
fm->Admin=1;
fm->num=str;
fm->ShowModal();
delete fm;
String s="select y.name as yxname,m.name as majorname,g.name as gradename,c.name as classname,s.num as stunum,s.name as stuname,s.iswork as work from tbStudent as s inner join tbClass as c on s.classid=c.id inner join tbMajor as m on c.majorid=m.id inner join tbGrade as g on g.id=c.gradeid inner join tbYX as y on y.id=m.yxid";
RefreshStudent(s);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWorkMan::btn_DeleteClick(TObject *Sender)
{
if(lis_Student->ItemIndex<0)
{
Application->MessageBoxA("请选择要删除的毕业生信息!","警告!",MB_OK);
return;
}
String str;
str=lis_Student->Items->Strings[lis_Student->ItemIndex];
str=str.SubString(100,20);
str=str.Trim();
ADOCommand1->CommandText="delete from tbStudent where num='" + str + "'";
ADOCommand1->Execute();
String s="select y.name as yxname,m.name as majorname,g.name as gradename,c.name as classname,s.num as stunum,s.name as stuname,s.iswork as work from tbStudent as s inner join tbClass as c on s.classid=c.id inner join tbMajor as m on c.majorid=m.id inner join tbGrade as g on g.id=c.gradeid inner join tbYX as y on y.id=m.yxid";
RefreshStudent(s);
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -