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 + -
显示快捷键?