【delphi开源代码栏目提醒】:网学会员在delphi开源代码频道为大家收集整理了chech.pas提供大家参考,希望对大家有所帮助!
unit chech;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids;
type
TCheckForm = class(TForm)
GroupBox1: TGroupBox;
DBGrid1: TDBGrid;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
Label1: TLabel;
Memo1: TMemo;
Label2: TLabel;
Memo2: TMemo;
Label3: TLabel;
Edit1: TEdit;
Label4: TLabel;
Label5: TLabel;
Edit3: TEdit;
Button1: TButton;
Memo3: TMemo;
Button2: TButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
CheckForm: TCheckForm;
implementation
uses DataModule;
{$R *.dfm}
procedure TCheckForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;
procedure TCheckForm.FormCreate(Sender: TObject);
begin
DBGrid1.Columns[0].FieldName:='准考证号';
DBGrid1.Columns[1].FieldName:='题型';
DBGrid1.Columns[2].FieldName:='小题题号';
dbgrid1.Columns[0].Width:=60;
dbgrid1.Columns[1].Width:=60;
dbgrid1.Columns[2].Width:=60;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select * from 详细成绩表';
adoquery1.Open;
end;
procedure TCheckForm.Button1Click(Sender: TObject);
var query:TADOQuery;
begin
if strtoint(edit3.Text) > strtoint(edit1.text) then begin
MessageBox(handle, '得分超过本题的分值', '提示', mb_IconWarning + mb_Ok);
edit3.Text:='0';
exit;
end;
query := TADOQuery.Create(nil);
query.Connection := Data.Connection;
query.Close;
query.SQL.Clear;
query.SQL.Text:='update 详细成绩表 set 得分 ='''+trim(edit3.Text)+
''' where 准考证号 = '''+trim(adoquery1.fieldbyname('准考证号').AsString)+
''' and 题型 ='''+trim(adoquery1.fieldbyname('题型').AsString)+
''' and 小题题号 ='+adoquery1.fieldbyname('小题题号').AsString+'';
query.ExecSQL;
MessageBox(handle, '批改成功', '提示', mb_IconWarning + mb_Ok);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select * from 详细成绩表';
adoquery1.Open;
end;
procedure TCheckForm.DataSource1DataChange(Sender: TObject; Field: TField);
var query:TADOQuery;
begin
memo3.Text:=adoquery1.fieldbyname('答案').AsString;
edit3.Text:=adoquery1.fieldbyname('得分').AsString;
query := TADOQuery.Create(nil);
query.Connection := Data.Connection;
query.Close;
query.SQL.Clear;
query.SQL.Text:='select * from 题库 where 题型 ='''+trim(adoquery1.fieldbyname('题型').AsString)+
''' and 小题题号 = '+trim(adoquery1.fieldbyname('小题题号').AsString)+'';
query.Open;
memo1.Text:=query.fieldbyname('题干').AsString;
memo2.Text:=query.fieldbyname('答案').AsString;
edit1.Text:=query.fieldbyname('分值').AsString;
end;
procedure TCheckForm.Button2Click(Sender: TObject);
var query:TADOQuery;
query1:TADOQuery;
count:Integer;
begin
query := TADOQuery.Create(nil);
query.Connection := Data.Connection;
query.Close;
query.SQL.Clear;
query.SQL.Text:='select 准考证号 ,sum(得分) as 总成绩 from 详细成绩表 group by 准考证号 ' ;
query.Open;
if query.Recordset.RecordCount > 0 then begin
query1 := TADOQuery.Create(nil);
query1.Connection := Data.Connection;
query1.Close;
query1.SQL.Clear;
for count:=1 to query.Recordset.RecordCount do begin
query1.SQL.Text:='update 学生 set 总成绩 = '+ query.fieldbyname('总成绩').AsString+
' where 准考证号 = '''+query.fieldbyname('准考证号').AsString+'''' ;
query1.ExecSQL;
query.Next;
end;
end;
MessageBox(handle, '计算完成', '提示', mb_IconWarning + mb_Ok);
end;
end.
上一篇:
DlgKCPD.cpp
下一篇:
恋沫