unitiscore.pas

来自「这是我做的一个大学院系成绩管理系统」· PAS 代码 · 共 138 行

PAS
138
字号
unit UnitIscore;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, ExtCtrls, StdCtrls, DBCtrls, Grids, DBGrids, Mask, DB, ADODB;

type
  TFrmIscore = class(TFrame)
    ImageBg: TImage;
    GroupBox1: TGroupBox;
    DBGrid1: TDBGrid;
    GroupBox2: TGroupBox;
    ComboBox1: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    ADOQueryAvg: TADOQuery;
    Imageadd: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    DBNavigator1: TDBNavigator;
    procedure Image2Click(Sender: TObject);
    procedure Image1Click(Sender: TObject);
    procedure Image3Click(Sender: TObject);
    procedure ImageaddClick(Sender: TObject);
    procedure Image4Click(Sender: TObject);
    procedure Image5Click(Sender: TObject);
    procedure Image6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

implementation

uses UnitDBConnect, UnitIScoreInput, UnitIScoreChart;

{$R *.dfm}

procedure TFrmIscore.Image2Click(Sender: TObject);
begin
 with FMDBConnect.ADOQueryIScore do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from IScore');
    Active:=True;
    Open;
  end;
end;

procedure TFrmIscore.Image1Click(Sender: TObject);
begin
 if (ComboBox1.Text<>'') and (Edit1.Text<>'') then
  begin
    with FMDBConnect.ADOQueryIScore do
     begin
       Close;
       SQL.Clear;
       SQL.Add('select * from IScore where SNo in( select SNo from Student where SClassNo='''+ComboBox1.Text+''') and CNo='''+Edit1.Text+'''');
       Active := True;
       Open;
     end;
  end
  else
    begin
     showmessage('请输入班级和课程名');
     end;


end;

procedure TFrmIscore.Image3Click(Sender: TObject);
begin
 if (ComboBox1.Text<>'') and (Edit1.Text<>'') then
 begin
  with ADOQueryAvg do
    begin
      SQL.Clear;
      SQL.Add('select AVG(Score) as AvgScore from IScore where SNo in( select SNo from Student where SClassNo='''+ComboBox1.Text+''') and CNo='''+Edit1.Text+'''');
      Open;
      messagebox(handle,PChar('平均成绩为 '+ADOQueryAvg.FieldByName('AvgScore').AsString+' 分。'),'平均成绩',MB_ICONinformation+mb_ok);
    end;
  end
  else
    begin
    showmessage('请输入班级和课程名');
    end;
end;

procedure TFrmIscore.ImageaddClick(Sender: TObject);
begin
FMDBConnect.ADOQueryIScore.Append;
FMIScoreInput.ShowModal;
end;

procedure TFrmIscore.Image4Click(Sender: TObject);
begin
    if(messagebox(handle,PChar('确定删除吗?'),'删除记录',MB_ICONinformation+MB_OKCANCEL)=IDOK)then
     begin
     FMDBConnect.ADOQueryIScore.Delete;
     end;
end;

procedure TFrmIscore.Image5Click(Sender: TObject);
begin
FMDBConnect.ADOQueryStu.Edit;
FMIScoreInput.ShowModal;
end;

procedure TFrmIscore.Image6Click(Sender: TObject);
begin
if(Edit1.Text<>'') then
 begin
 with FMDBConnect.ADOQuery1 do
  begin
  SQL.Clear;
  SQL.Add('select SClassNo ,SUM(Score)/COUNT(SNo) as ClAvg from  dbo.ViewClScore ' +
    'where CNo='''+ Edit1.Text+''' Group by SClassNo');
    Open;
    FMIScoreChart.ShowModal;
  end;
 end
 else
 begin
 showmessage('请输入需比较课程的课程号!');
 end;
end;

end.

⌨️ 快捷键说明

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