我有个问题
我们老师让做一个学籍管理系统
我做的有个菜单 学生管理-学生信息 当我单击时 在DBGrid1中显示我做的学生信息的表格
这个我做到了
接着还有个菜单 成绩管理-(本学期成绩,补考成绩,极限补考成绩(前面三个是并列的)),我想实现的是 当我单击本学期成绩时就显示我做的本学期成绩的表格
这个我也做到了
重点到了
我还设制了一个button1我让他的caption的值为检查分数
是想实现当我点button1时 就会在DBGrid1中显示所有成绩不及格的学生的信息(比如在里面的一个 couscore的值小于60)。
我做了总是出错最后好象是说我做的程序有漏洞什么的
请帮帮我呀 我用的是 table1 和datasource
下面是我的写的程序
帮我改改谢谢了
procedure TForm1.N2Click(Sender: TObject);
begin
table1.Active :=true;
end;procedure TForm1.N4Click(Sender: TObject);
begin
table1.Active :=false;
table1.DatabaseName :='学生成绩登记表';
table1.TableName :='学生成绩登记表.db';
DBGrid1.DataSource :=datasource1;
datasource1.DataSet :=table1;
table1.Active :=true;
end;procedure TForm1.Button6Click(Sender: TObject);
begin
table1.Active :=false;
if table1.FieldByName('CouScore').AsString <'80' then
begin
// table1.filtered:=true;
table1.Active :=false;
table1.DatabaseName :='学生成绩登记表';
table1.TableName :='学生成绩登记表.db';
DBGrid1.DataSource :=datasource1;
datasource1.DataSet :=table1;
table1.Active :=true;
end;
end;begin //if messagedlg('您确定要添加记录吗?',mtwarning,[mbyes,mbno],0)=mryes then
a:=strtoint(edit1.Text);
//b:=strtoint(edit9.Text);
// c:=strtoint(edit10.Text);
// d:=strtoint(edit13.Text);
// e:=strtoint(edit14.Text);
table1.insertrecord([a,edit2.Text,edit3.Text ,edit4.text,edit5.Text,edit6.Text,edit7.Text,edit8.Text,edit9.Text,edit10.Text,edit11.Text,edit12.Text,edit13.Text,edit14.Text,edit15.Text]);end;
我们老师让做一个学籍管理系统
我做的有个菜单 学生管理-学生信息 当我单击时 在DBGrid1中显示我做的学生信息的表格
这个我做到了
接着还有个菜单 成绩管理-(本学期成绩,补考成绩,极限补考成绩(前面三个是并列的)),我想实现的是 当我单击本学期成绩时就显示我做的本学期成绩的表格
这个我也做到了
重点到了
我还设制了一个button1我让他的caption的值为检查分数
是想实现当我点button1时 就会在DBGrid1中显示所有成绩不及格的学生的信息(比如在里面的一个 couscore的值小于60)。
我做了总是出错最后好象是说我做的程序有漏洞什么的
请帮帮我呀 我用的是 table1 和datasource
下面是我的写的程序
帮我改改谢谢了
procedure TForm1.N2Click(Sender: TObject);
begin
table1.Active :=true;
end;procedure TForm1.N4Click(Sender: TObject);
begin
table1.Active :=false;
table1.DatabaseName :='学生成绩登记表';
table1.TableName :='学生成绩登记表.db';
DBGrid1.DataSource :=datasource1;
datasource1.DataSet :=table1;
table1.Active :=true;
end;procedure TForm1.Button6Click(Sender: TObject);
begin
table1.Active :=false;
if table1.FieldByName('CouScore').AsString <'80' then
begin
// table1.filtered:=true;
table1.Active :=false;
table1.DatabaseName :='学生成绩登记表';
table1.TableName :='学生成绩登记表.db';
DBGrid1.DataSource :=datasource1;
datasource1.DataSet :=table1;
table1.Active :=true;
end;
end;begin //if messagedlg('您确定要添加记录吗?',mtwarning,[mbyes,mbno],0)=mryes then
a:=strtoint(edit1.Text);
//b:=strtoint(edit9.Text);
// c:=strtoint(edit10.Text);
// d:=strtoint(edit13.Text);
// e:=strtoint(edit14.Text);
table1.insertrecord([a,edit2.Text,edit3.Text ,edit4.text,edit5.Text,edit6.Text,edit7.Text,edit8.Text,edit9.Text,edit10.Text,edit11.Text,edit12.Text,edit13.Text,edit14.Text,edit15.Text]);end;
将不及格的记录显示出来
要是一条条判断,数据量大的话会很慢的
datasource.dataset.filter := 'couscore < 60';
datasource.dataset.filtered := true;
这样就可以过滤了
想取消过滤就用
datasource.dataset.filter := '';
datasource.dataset.filtered := false;
'您确定要添加记录吗?' onbeforepost
所有edit都用dbedit
所有数据库操作都用标准actionlist,数据过滤采用楼上办法,程序稳定又不会出错。
datasource.dataset.filter := 'couscore < 60';
datasource.dataset.filtered := true;
中的':='是=吧 我认为
我是男生 可爱的男生 哈哈
还有
你说的那个我试过了 但是我怎么才能在我点击 学生信息时在gbgrid中再显示学生登记表
就是可以来回的点击切换呢
明不明白我说的吗呀
在 学生信息 本学期成绩登记表 和 button1来回的切换 我想应该明白了把