if label3.Visible=false then condition:=(condition)and(3);
//如果第2个条件不可用,则将该位置0,方法是和整数5(二进制101)进行与操作
if label4.Visible=false then condition:=(condition)and(5);
//如果第3个条件不可用,则将该位置0,方法是和整数6(二进制110)进行与操作
if label5.Visible=false then condition:=(condition)and(6);
if condition=7 then//三个查询条件都存在的情况 begin
adoquery1.Close; adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from '+adotable1.TableName);
adoquery1.SQL.Add(' where('+label3.Caption+' like ''%'+edit1.Text+'%'')'); adoquery1.SQL.Add('and('+label4.Caption+' like ''%'+edit2.Text+'%'')'); adoquery1.SQL.Add('and('+label5.Caption+' like ''%'+edit3.Text+'%'')'); adoquery1.Open;
//将查询得到的数据通过clone命令复制到adotable中去 adotable1.Clone(adoquery1,ltUnspecified); end;
if condition=6 then//只存在两个查询条件的情况 begin
adoquery1.Close; adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from '+adotable1.TableName);
adoquery1.SQL.Add(' where('+label3.Caption+' like ''%'+edit1.Text+'%'')'); adoquery1.SQL.Add('and('+label4.Caption+' like ''%'+edit2.Text+'%'')'); adoquery1.Open;
//将查询得到的数据通过clone命令复制到adotable中去
26
adotable1.Clone(adoquery1,ltUnspecified); end;
if condition=4 then //只存在一个查询条件的情况 begin
adoquery1.Close; adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from '+adotable1.TableName);
adoquery1.SQL.Add(' where('+label3.Caption+' like ''%'+edit1.Text+'%'')'); adoquery1.Open;
//将查询得到的数据通过clone命令复制到adotable中去 adotable1.Clone(adoquery1,ltUnspecified); end; end;
27
图4.5 学生选课模块的系统截图
学生选课界面的核心代码:
procedure TCourseElect.Edit1KeyPress(Sender: TObject; var Key: Char); begin
if not (key in ['0'..'9',#8,#13]) then //该文本框中只能输入数字 begin key:=#0; exit; end;
//回车输入,将在籍学生的信息显示在文本框中 if key=#13 then begin
id:=trim(edit1.Text); //清除上一次的数据 edit2.Clear; edit3.Clear; adoquery2.Close; adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('select XSXX,BJXX');
adoquery1.SQL.Add('where (XSXX.xh='''+id+''')and(XSXX.bjbh=BJXX.bjbh)'); adoquery1.Open;
if trim(adoquery1.FieldByName('xjbh').AsString)='01'then begin
XSXX.xm,BJXX.bjmc,XSXX.xjbh
from
28
edit2.Text:=trim(adoquery1.fieldbyname('xm').AsString); edit3.Text:=trim(adoquery1.fieldbyname('bjmc').AsString); listcourse(id); //列出已选课程 //允许开始选课 bitbtn2.Enabled:=true; bitbtn3.Enabled:=true; //bitbtn4.Enabled:=true; end else begin
//只有在籍学生才能选课
showmessage('该生非在籍学生,不能选课'); bitbtn2.Enabled:=false; bitbtn3.Enabled:=false; id:=''; end; end; end;
//--------显示学生已经选的课程---------- procedure TCourseElect.listcourse(id: string); begin
//将符合选课条件的学生已经选过的课程列在表中 adoquery2.Close; adoquery2.SQL.Clear; adoquery2.SQL.Add('select
XSXX.xh,XKB.kxh,KCXX.kcmc,js,kkxb,KCB.sksjt,sksjj,skdd
from
KCB,XSXX,KCXX,XKB where XKB.kxh=KCB.kxh and XKB.xh=XSXX.xh and KCXX.kcbh=KCB.kcbh'); adoquery2.Open; end;
//---------------课程查询-------------------
29
procedure TCourseElect.BitBtn1Click(Sender: TObject); begin
if(edit4.Text='')and(edit5.Text='')and(edit6.Text='')and(edit7.Text='')then showmessage('请输入查询条件!') else begin
adoquery3.Close; adoquery3.SQL.Clear; adoquery3.SQL.Add('select
KCB.kxh,KCXX.kcbh,kcmc,js,kkxb,pym,KCB.sksjt,sksjj,skdd KCB,XSXX,KCXX,XKB');
adoquery3.SQL.Add('where (XKB.kxh=KCB.kxh and XKB.xh=XSXX.xh and KCXX.kcbh=KCB.kcbh) KCXX.kcmc='''+edit5.Text+'''or XKB.kxh='''+edit7.Text+''')'); Adoquery3.Open;
if(Adoquery3.RecordCount=0)then showmessage('找不到这门课程!') else begin
DBGrid2.DataSource.DataSet:=Adoquery3; DBGrid2.DataSource.DataSet.Active:=false; DBGrid2.DataSource.DataSet.Active:=true; end; end; end;
//-----------将选择的课程添加到学生的选课表中-------------- procedure TCourseElect.BitBtn2Click(Sender: TObject); var num:string; day,section:integer;
and
(KCXX.pym='''+edit4.Text+'''or KCXX.kcbh='''+edit6.Text+'''or
from
30
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Java学生选课系统实验报告(6)在线全文阅读。
相关推荐: