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

📄 unclass.pas

📁 最简单的Delphi班级管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit UnClass;

interface

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

type
  TFm_Class = class(TForm)
    Image1: TImage;
    Shape1: TShape;
    Btn_Add: TBitBtn;
    Btn_Modify: TBitBtn;
    Btn_Delete: TBitBtn;
    Btn_Query: TBitBtn;
    Btn_Browse: TBitBtn;
    Btn_Print: TBitBtn;
    Shape2: TShape;
    Btn_OK: TBitBtn;
    Btn_Cancel: TBitBtn;
    Label10: TLabel;
    Lb_Count: TLabel;
    Label11: TLabel;
    DBGrid1: TDBGrid;
    ADOQY1: TADOQuery;
    Label1: TLabel;
    DBEdit2: TDBEdit;
    Label2: TLabel;
    DBEdit3: TDBEdit;
    Label3: TLabel;
    DBEdit4: TDBEdit;
    Label4: TLabel;
    DBEdit5: TDBEdit;
    Label5: TLabel;
    DBEdit6: TDBEdit;
    Label6: TLabel;
    DBEdit7: TDBEdit;
    Label7: TLabel;
    DBEdit8: TDBEdit;
    DS: TDataSource;
    Label8: TLabel;
    DBEdit1: TDBEdit;
    Shape3: TShape;
    DBNavigator1: TDBNavigator;
    ADOQY1DSDesigner1: TWideStringField;
    ADOQY1DSDesigner2: TWideStringField;
    ADOQY1DSDesigner3: TWideStringField;
    ADOQY1DSDesigner4: TWideStringField;
    ADOQY1DSDesigner5: TWideStringField;
    ADOQY1DSDesigner6: TWideStringField;
    ADOQY1DSDesigner7: TWideStringField;
    ADOQY1DSDesigner8: TWideStringField;
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure Btn_BrowseClick(Sender: TObject);
    procedure Btn_DeleteClick(Sender: TObject);
    procedure Btn_AddClick(Sender: TObject);
    procedure Btn_OKClick(Sender: TObject);
    procedure Btn_QueryClick(Sender: TObject);
    procedure Btn_ModifyClick(Sender: TObject);
    procedure Btn_CancelClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    function init:boolean;
    { Public declarations }
  end;

var
  Fm_Class: TFm_Class;
  Flag:Integer;//用于标识操作的属性(1:新增,2:修改,3:查询)
  edtid,edClass,edGrade,edClassroom,edMidyear,edSpeciality,edTeacher,edremark:string;//分别用于存放各种名

implementation

uses UnDB, UnStudent;

{$R *.dfm}
function TFm_Class.init; //初始化
begin
  init:=false;
  if Application.FindComponent('Fm_Class')=nil then
     Application.CreateForm(TFm_Class,Fm_Class);
  init:=true;
end;


procedure TFm_Class.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  if (messagedlg('真的要退出班级管理吗?',mtconfirmation,[mbok,mbcancel],0)=mrok)
  then
    canclose:=true
  else
    canclose:=false;
end;

procedure TFm_Class.FormCreate(Sender: TObject);
begin
 //连接数据库
   ds.DataSet.Active:=true;
   ADOQY1.Active:=true;

   ADOQY1.Close;
   ADOQY1.SQL.Clear;
   ADOQY1.SQL.Add('select * from class_Info where 1<>1');
   ADOQY1.Open;

  //初始化各文本框不能使用
   Dbedit1.Enabled:=false;
   Dbedit2.Enabled:=false;
   Dbedit3.Enabled:=false;
   Dbedit4.Enabled:=false;
   Dbedit5.Enabled:=false;
   Dbedit6.Enabled:=false;
   Dbedit7.Enabled:=false;
   Dbedit8.Enabled:=false;

   //总记录数置0
  LB_Count.Caption :=IntToStr(ADOQY1.RecordCount);


end;

procedure TFm_Class.Btn_BrowseClick(Sender: TObject);
begin
  ADOQY1.Close;
  ADOQY1.SQL.Clear;
  ADOQY1.SQL.Add('select * from class_Info order by 编号');
  ADOQY1.Open;

  if ADOQY1.RecordCount=0 then
  begin
    showmessage('班级表信息为空!       ');
    Btn_Add.SetFocus;
  end;

   Btn_OK.Enabled:=false;
   Btn_Cancel.Enabled:=false;

  //总记录数
  LB_Count.Caption :=IntToStr(ADOQY1.RecordCount);


end;

procedure TFm_Class.Btn_DeleteClick(Sender: TObject);
begin
  if ADOQY1.RecordCount=0 then
  begin
    showmessage('记录为空,请选择要删除的班级信息!');
    Btn_Browse.SetFocus;
   end

   else begin
     if messagedlg('是否真的要删除此记录!',mtwarning,[mbyes,mbno],0)=mrno then
    //取消删除
    begin
      Btn_Add.SetFocus;
      exit;
    end
    //删除记录
    else begin
      ADOQY1.Open;
      ADOQY1.Delete;
      Btn_Delete.SetFocus;
    end;

    ADOQY1.Close;
    ADOQY1.SQL.Clear;
    ADOQY1.SQL.Text:='select * from class_Info order by 编号';
    ADOQY1.Open;

    if (ADOQY1.RecordCount<=0) then
    begin
      showmessage('班级信息记录已空!    ');
      Btn_Add.SetFocus;
    end
    else begin
      ADOQY1.First;
    end;

  end;

  //总记录数
  LB_Count.Caption :=IntToStr(ADOQY1.RecordCount); 

end;

procedure TFm_Class.Btn_AddClick(Sender: TObject);
begin
  //设置各输入框的可用性
   Dbedit1.Enabled:=true;
   Dbedit2.Enabled:=true;
   Dbedit3.Enabled:=true;
   Dbedit4.Enabled:=true;
   Dbedit5.Enabled:=true;
   Dbedit6.Enabled:=true;
   Dbedit7.Enabled:=true;
   Dbedit8.Enabled:=true;

   //使数据集成为插入状态
   ADOQY1.Insert;

   //1:标识进行新增操作
   Flag:=1;

   Btn_OK.Enabled:=true;
   Btn_Cancel.Enabled:=true;

   //总记录数
  LB_Count.Caption :=IntToStr(ADOQY1.RecordCount);

  Dbedit1.SetFocus;

end;

procedure TFm_Class.Btn_OKClick(Sender: TObject);
begin
  //1:标识进行新增操作
  if Flag=1 then
  begin
    if Dbedit2.Text='' then
    begin
      showmessage('姓名不能为空,请输入姓名 !');
      Dbedit1.SetFocus;
    end
    else begin
      ADOQY1.Append;
      
      //初始化各文本框不能使用
      Dbedit1.Enabled:=false;
      Dbedit2.Enabled:=false;
      Dbedit3.Enabled:=false;
      Dbedit4.Enabled:=false;
      Dbedit5.Enabled:=false;
      Dbedit6.Enabled:=false;
      Dbedit7.Enabled:=false;
      Dbedit8.Enabled:=false;

      //设置各按钮的可用性
      Btn_Add.Enabled:=true;
      Btn_Modify.Enabled:=true;
      Btn_Delete.Enabled:=true;
      Btn_Query.Enabled:=true;
      Btn_Browse.Enabled:=true;
      Btn_Print.Enabled:=true;

      Btn_OK.Enabled:=false;
      Btn_Cancel.Enabled:=false;

      Btn_Add.SetFocus;

      //总记录数
      LB_Count.Caption :=IntToStr(ADOQY1.RecordCount);
    end;
  end

  //2:标识进行修改操作
  else if Flag=2 then
  begin
    if ((dbedit1.Text='') or (dbedit2.Text='') or (dbedit3.Text='') or (dbedit4.Text='') or (dbedit5.Text='') or (dbedit6.Text='') or (dbedit7.Text='') or (dbedit8.Text='') ) then
    begin
      showmessage('所修改不能为空,请重新输入!');
      dbedit1.SetFocus;
    end
    else begin
      ADOQY1.Post;
      showmessage('修改成功!');

      //初始化各文本框不能使用
      Dbedit1.Enabled:=false;
      Dbedit2.Enabled:=false;
      Dbedit3.Enabled:=false;
      Dbedit4.Enabled:=false;
      Dbedit5.Enabled:=false;
      Dbedit6.Enabled:=false;
      Dbedit7.Enabled:=false;
      Dbedit8.Enabled:=false;

      //设置各按钮的可用性
      Btn_Add.Enabled:=true;
      Btn_Modify.Enabled:=true;
      Btn_Delete.Enabled:=true;
      Btn_Query.Enabled:=true;
      Btn_Browse.Enabled:=true;
      Btn_Print.Enabled:=true;

      Btn_OK.Enabled:=false;
      Btn_Cancel.Enabled:=false;

      Btn_Modify.SetFocus;

      //总记录数
      LB_Count.Caption :=IntToStr(ADOQY1.RecordCount);
    end;
  end

  //3:标识进行查询操作
  else if flag = 3 then
  begin
    edtid:=dbedit1.Text;
    edClass:=dbedit2.Text;
    edGrade:=dbedit3.Text;
    edClassroom:=dbedit4.Text;
    edMidyear:=dbedit5.Text;
    edSpeciality:=dbedit6.Text;
    edTeacher:=dbedit7.Text;
    edremark:=dbedit8.Text;

    ADOQY1.Close;
    ADOQY1.SQL.Clear;
    ADOQY1.SQL.Add('select * from Address ');

    // 编号不为空
    if edtid<>'' then
    begin
      ADOQY1.SQL.Add('where 编号='''+edtid+'''');

    //班级不为空
    if edClass<>'' then
    begin
      ADOQY1.SQL.Add('where 班级='''+edClass+'''');
    end;

    //年级不为空
    if edGrade<>'' then
    begin
      ADOQY1.SQL.Add('where 年级='''+edGrade+'''');
    end;

    //教室不为空
    if edClassroom<>'' then
    begin
      ADOQY1.SQL.Add('where 教室='''+edClassroom+'''');
    end;

    //年制不为空
    if edMidyear<>'' then
    begin
       ADOQY1.SQL.Add('where 年制='''+edMidyear+'''');
    end;

    //专业不为空
    if edSpeciality<>'' then
    begin
      ADOQY1.SQL.Add('where 专业='''+edSpeciality+'''');
    end;

    //班主任不为空
    if edTeacher<>'' then
    begin
      ADOQY1.SQL.Add('where 班主任='''+edTeacher+'''');
    end;

    //备注不为空
    if edremark<>'' then
    begin
      ADOQY1.SQL.Add('where 备注='''+edremark+'''');
    end;
    end

    //班级不为空
    else if edClass<>'' then
    begin
      ADOQY1.SQL.Add('where 班级='''+edClass+'''');

    //年级不为空
    if edGrade<>'' then
    begin
      ADOQY1.SQL.Add('where 年级='''+edGrade+'''');
    end;

    //教室不为空
    if edClassroom<>'' then
    begin
      ADOQY1.SQL.Add('where 教室='''+edClassroom+'''');
    end;

    //年制不为空
    if edMidyear<>'' then
    begin
       ADOQY1.SQL.Add('where 年制='''+edMidyear+'''');
    end;

    //专业不为空

⌨️ 快捷键说明

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