utermtoclass.~pas

来自「一.录入学生信息(预计有81个学生」· ~PAS 代码 · 共 168 行

~PAS
168
字号
unit uTermToClass;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, StdCtrls, Grids, DBGridEh, ExtCtrls, Buttons;

type
  TfrmTermToClass = class(TForm)
    dsQuery: TADODataSet;
    GroupBox1: TGroupBox;
    DBGridEh1: TDBGridEh;
    Panel1: TPanel;
    GroupBox2: TGroupBox;
    Panel2: TPanel;
    GroupBox3: TGroupBox;
    DataSource1: TDataSource;
    sbUp: TSpeedButton;
    sbDown: TSpeedButton;
    dsClass: TADODataSet;
    DBGridEh2: TDBGridEh;
    DataSource2: TDataSource;
    dsClassMain: TADODataSet;
    DBGridEh3: TDBGridEh;
    DataSource3: TDataSource;
    ADOCommand1: TADOCommand;
    Function ReadyData():Boolean;
    Function ReadyList():Boolean;
    procedure dsQueryAfterScroll(DataSet: TDataSet);
    procedure sbUpClick(Sender: TObject);
    procedure DBGridEh3DblClick(Sender: TObject);
    procedure sbDownClick(Sender: TObject);
    procedure DBGridEh2DblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

Function ShowTermToClass():Boolean;

implementation

uses uDM;

{$R *.dfm}

Function ShowTermToClass():Boolean;
var
  frmTermToClass: TfrmTermToClass;
begin
  Result:=False;
  frmTermToClass:=TfrmTermToClass.Create(nil);
  if Not frmTermToClass.ReadyData then
  begin
    frmTermToClass.Free;
    Exit;
  end;
  frmTermToClass.ShowModal;
  frmTermToClass.Free;
  Result:=True;
end;

Function TfrmTermToClass.ReadyData():Boolean;
var TmpSQL:String;
begin
  Result:=False;
  TmpSQL:='select * from TTerm Order by TermCode';
  dsQuery.Close;
  dsQuery.CommandText:=TmpSQL;
  Try
    dsQuery.Open;
  Except
    ShowMessage('读取本地数据文件发生错误!');
    Exit;
  End;
  Result:=True;
end;



Function TfrmTermToClass.ReadyList():Boolean;
var TmpSQL:String;
begin
  Result:=False;
  if dsQuery.IsEmpty then Exit;
  TmpSQL:='select TTermToClass.*,TClass.ClassName from TTermToClass,TClass Where '+
    ' TClass.ClassCode=TTermToClass.ClassCode And '+
    ' TermCode='+dsQuery.fieldByName('TermCode').AsString+' Order by TTermToClass.ClassCode';
  dsClass.Close;
  dsClass.CommandText:=TmpSQL;
  Try
    dsClass.Open;
  Except
    ShowMessage('读取本地数据文件发生错误!');
    Exit;
  End;
  GroupBox2.Caption:='学期['+dsQuery.fieldByName('TermName').AsString+']有效的班级!';

  TmpSQL:='select * from TClass Where 1=1 '+
    ' and Not ClassCode in (Select ClassCode from TTermToClass where '+
    ' TermCode='+dsQuery.fieldByName('TermCode').AsString+
    ')'+' Order by ClassCode';
  dsClassMain.Close;
  dsClassMain.CommandText:=TmpSQL;
  Try
    dsClassMain.Open;
  Except
    ShowMessage('读取本地数据文件发生错误!');
    Exit;
  End;
  Result:=True;
end;

procedure TfrmTermToClass.dsQueryAfterScroll(DataSet: TDataSet);
begin
  ReadyList;
end;

procedure TfrmTermToClass.sbUpClick(Sender: TObject);
var TmpSQL:String;
begin
  if dsQuery.IsEmpty then Exit;
  if dsClassMain.IsEmpty then Exit;
  TmpSQL:='Insert into TTermToClass (TermCode,ClassCode) Values('+
    dsQuery.fieldByName('TermCode').AsString+','+''''+
    dsClassMain.fieldByName('ClassCode').AsString+''''+')';
  ADOCommand1.CommandText:=TmpSQL;
  Try
    ADOCommand1.Execute;
  Except
    ShowMessage('增加数据发生错误!');
    Exit;
  end;
  ReadyList;
end;

procedure TfrmTermToClass.DBGridEh3DblClick(Sender: TObject);
begin
  sbUpClick(nil);
end;

procedure TfrmTermToClass.sbDownClick(Sender: TObject);
var TmpSQL:String;
begin
  if dsQuery.IsEmpty then Exit;
  if dsClass.IsEmpty then Exit;
  TmpSQL:='Delete From TTermToClass where TermCode='+
    dsQuery.fieldByName('TermCode').AsString+' And ClassCode='+''''+
    dsClass.fieldByName('ClassCode').AsString+'''';
  ADOCommand1.CommandText:=TmpSQL;
  Try
    ADOCommand1.Execute;
  Except
    ShowMessage('删除数据发生错误,可能该对应班级记录已经进入使用!');
    Exit;  
  End;
  ReadyList;  
end;

procedure TfrmTermToClass.DBGridEh2DblClick(Sender: TObject);
begin
  sbDownClick(nil);
end;

end.

⌨️ 快捷键说明

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