⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 studentscore_unit.pas

📁 学校班级教学管理系统 DELPHI7下的
💻 PAS
字号:
unit StudentScore_Unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Base_Unit, ExtCtrls, Grids, DBGrids, StdCtrls, DBCtrls, Mask,
  Buttons, ComCtrls, DB, Menus, StdActns, ActnList;

type
  TfrmStudentScore = class(TfrmBase)
    Panel1: TPanel;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    Panel2: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    SpeedButton1: TSpeedButton;
    cmbxStudentID: TDBLookupComboBox;
    edtScoreDateTime: TDBEdit;
    cmbxTerm: TDBComboBox;
    cmbxClassName: TDBLookupComboBox;
    TabSheet2: TTabSheet;
    cmbxSubjectName: TDBLookupComboBox;
    edtScore: TDBEdit;
    edtRemark: TDBMemo;
    Panel3: TPanel;
    DBGrid1: TDBGrid;
    btnCancel: TBitBtn;
    btnSave: TBitBtn;
    btnDel: TBitBtn;
    btnModify: TBitBtn;
    btnAdd: TBitBtn;
    DataStudentID: TDataSource;
    DataClassName: TDataSource;
    DataSubjectName: TDataSource;
    DataStudentScore: TDataSource;
    txtCreditHour: TDBText;
    Panel4: TPanel;
    cmbxItems: TComboBox;
    Label14: TLabel;
    Label15: TLabel;
    cmbxCondition: TComboBox;
    Label16: TLabel;
    cmbxValues: TComboBox;
    btnFind: TBitBtn;
    Panel5: TPanel;
    DBGrid2: TDBGrid;
    DataFindScore: TDataSource;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure cmbxSubjectNameClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure cmbxItemsChange(Sender: TObject);
    procedure btnFindClick(Sender: TObject);
    procedure btnAddClick(Sender: TObject);
    procedure btnModifyClick(Sender: TObject);
    procedure btnDelClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmStudentScore: TfrmStudentScore;

implementation

uses Common_Unit, DM_Unit, DateChoice_Unit;

{$R *.dfm}

procedure TfrmStudentScore.FormCreate(Sender: TObject);
var
  SQLScore, SQLStudentID, SQLClaName, SQLSubName: string;
begin
  inherited;
  SQLScore := 'Select * From Score';
  DataStudentScore.DataSet := SQLDataSet(SQLScore,DM.ADOConn);   //连接数据集

  SQLStudentID := 'Select * From StudentInfo';
  DataStudentID.DataSet := SQLDataSet(SQLStudentID,DM.ADOConn);

  SQLClaName := 'Select * From ClassInfo';
  DataClassName.DataSet := SQLDataSet(SQLClaName,DM.ADOConn);

  SQLSubName := 'Select * From SubjectInfo';
  DataSubjectName.DataSet := SQLDataSet(SQLSubName,DM.ADOConn);
end;

procedure TfrmStudentScore.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  frmStudentScore := nil;
end;

procedure TfrmStudentScore.cmbxSubjectNameClick(Sender: TObject);
begin
  inherited;
  DataStudentScore.DataSet.FieldByName('CreditHour').AsString :=
      DataSubjectName.DataSet.FieldByName('CreditHour').AsString;//选中科目后自动添加学分
end;

procedure TfrmStudentScore.SpeedButton1Click(Sender: TObject);
begin
  inherited;
  frmDateChoice := TfrmDateChoice.Create(Self);
  try
    frmDateChoice.ShowModal;
    edtScoreDateTime.Text := DateToStr(frmDateChoice.MonthCalendar1.Date);
  finally
    frmDateChoice.Free;
  end;
end;

procedure TfrmStudentScore.cmbxItemsChange(Sender: TObject);
var
  SQLSubject, SQLClass: string;
begin
  inherited;
  cmbxValues.Items.Clear;
  if cmbxItems.ItemIndex = 1 then        //选择科目的时候自动搜索科目名称
  begin
    SQLSubject := 'Select * From SubjectInfo';
    with SQLDataSet(SQLSubject,DM.ADOConn) do
    begin
      while not eof do
      begin
        cmbxValues.Items.Add(FieldByName('SubjectID').AsString + '.' + FieldByName('SubName').AsString);
        Next;
      end;
    end;
  end;
  if cmbxItems.ItemIndex = 2 then
  begin
    SQLClass := 'Select * From ClassInfo';
    with SQLDataSet(SQLClass,DM.ADOConn) do
    begin
      while not eof do
      begin
        cmbxValues.Items.Add(FieldByName('ClassID').AsString + '.' + FieldByName('ClaName').AsString);
        Next;
      end;
    end;
  end;
end;

procedure TfrmStudentScore.btnFindClick(Sender: TObject);
var
  strSQL : string;
begin
  inherited;
  if cmbxItems.ItemIndex =0 then
    strSQL :='Select B.* From StudentInfo A, Score B ' +
          'where A.StudentID=B.StudentID and A.StudentID ' +
          cmbxCondition.Text + Quotedstr(cmbxValues.Text);

  if cmbxItems.ItemIndex =1 then
    strSQL :='Select B.* From SubjectInfo A, Score B ' +
          'where A.SubjectID=B.SubjectID and A.SubjectID '
          + cmbxCondition.Text + Quotedstr(Copy(cmbxValues.Text,1,Pos('.',cmbxValues.Text)-1));

  if cmbxItems.ItemIndex =2 then
    strSQL :='Select B.* From ClassInfo A, Score B ' +
          'where A.ClassID=B.ClassID and A.ClassID '
          + cmbxCondition.Text + Quotedstr(Copy(cmbxValues.Text,1,Pos('.',cmbxValues.Text)-1));

  if cmbxItems.ItemIndex =3 then
  begin
    strSQL :='Select B.* From StudentInfo A, Score B ' +
          'where A.StudentID=B.StudentID and A.StuName '
          + cmbxCondition.Text + Quotedstr(cmbxValues.Text);
    if cmbxCondition.Text ='Like' then
      strSQL :='Select B.* From StudentInfo A, Score B ' +
            'where A.StudentID=B.StudentID and A.StuName '
            + cmbxCondition.Text + Quotedstr('%' + cmbxValues.Text + '%');
  end;
  if strSQL <> '' then
    DataFindScore.DataSet :=SQLDataSet(strSQL,DM.ADOConn);
end;

procedure TfrmStudentScore.btnAddClick(Sender: TObject);
begin
  inherited;
  DataStudentScore.DataSet.Insert;
end;

procedure TfrmStudentScore.btnModifyClick(Sender: TObject);
begin
  inherited;
  DataStudentScore.DataSet.Edit;
end;

procedure TfrmStudentScore.btnDelClick(Sender: TObject);
begin
  inherited;
  if Application.MessageBox('确定要删除此条记录?','提示',68) = IDNo then
    Exit;
  DataStudentScore.DataSet.Delete;
end;

procedure TfrmStudentScore.btnSaveClick(Sender: TObject);
begin
  inherited;
  if DataStudentScore.State in [dsInsert,dsEdit] then          //判断状态,只有在添加或是修改的时候才能保存信息
    DataStudentScore.DataSet.Post;
end;

procedure TfrmStudentScore.btnCancelClick(Sender: TObject);
begin
  inherited;
  DataStudentScore.DataSet.Cancel;
end;

end.

⌨️ 快捷键说明

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