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

📄 unstud.pas

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

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_Student = 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;
    ADOQY2: TADOQuery;
    Shape3: TShape;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    DS: TDataSource;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    Label3: TLabel;
    DBEdit3: TDBEdit;
    Label4: TLabel;
    DBEdit4: TDBEdit;
    Label5: TLabel;
    DBEdit5: TDBEdit;
    Label6: TLabel;
    DBEdit6: TDBEdit;
    Label7: TLabel;
    DBEdit9: TDBEdit;
    Label8: TLabel;
    DBEdit7: TDBEdit;
    Label9: TLabel;
    DBEdit8: TDBEdit;
    Label12: TLabel;
    DBEdit10: TDBEdit;
    DBNavigator1: TDBNavigator;
    ADOQY2DSDesigner1: TWideStringField;
    ADOQY2DSDesigner2: TWideStringField;
    ADOQY2DSDesigner3: TWideStringField;
    ADOQY2DSDesigner4: TWideStringField;
    ADOQY2DSDesigner5: TWideStringField;
    ADOQY2DSDesigner6: TWideStringField;
    ADOQY2DSDesigner7: TWideStringField;
    ADOQY2DSDesigner8: TWideStringField;
    ADOQY2DSDesigner9: TWideStringField;
    ADOQY2DSDesigner10: 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_Student: TFm_Student;
  Flag:Integer;//用于标识操作的属性(1:新增,2:修改,3:查询)
  edtid,edName,edsex,edMidyear,edLiner,edTime,EdMail,edtelep,EdDwelling,edremark:string;//分别用于存放各种名

implementation

uses UnDB, UnStudent;

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


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

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

   ADOQY2.Close;
   ADOQY2.SQL.Clear;
   ADOQY2.SQL.Add('select * from student_Info where 1<>1');
   ADOQY2.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;
   Dbedit9.Enabled:=false;
   Dbedit10.Enabled:=false;


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


end;

procedure TFm_Student.Btn_BrowseClick(Sender: TObject);
begin
  ADOQY2.Close;
  ADOQY2.SQL.Clear;
  ADOQY2.SQL.Add('select * from student_Info order by 学号');
  ADOQY2.Open;

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

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

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


end;

procedure TFm_Student.Btn_DeleteClick(Sender: TObject);
begin
  if ADOQY2.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
      ADOQY2.Open;
      ADOQY2.Delete;
      Btn_Delete.SetFocus;
    end;

    ADOQY2.Close;
    ADOQY2.SQL.Clear;
    ADOQY2.SQL.Text:='select * from student_Info order by 学号';
    ADOQY2.Open;

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

  end;

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

end;

procedure TFm_Student.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;
   Dbedit9.Enabled:=true;
   Dbedit10.Enabled:=true;

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

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

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

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

  Dbedit1.SetFocus;

end;

procedure TFm_Student.Btn_OKClick(Sender: TObject);
begin
  //1:标识进行新增操作
  if Flag=1 then
  begin
    if Dbedit2.Text='' then
    begin
      showmessage('姓名不能为空,请输入姓名 !');
      Dbedit1.SetFocus;
    end
    else begin
      ADOQY2.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;
      Dbedit9.Enabled:=false;
      Dbedit10.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(ADOQY2.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
      ADOQY2.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;
      Dbedit9.Enabled:=false;
      Dbedit10.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(ADOQY2.RecordCount);
    end;
  end

  //3:标识进行查询操作
  else if flag = 3 then
  begin
    edtid:=dbedit1.Text;
    edName:=dbedit2.Text;
    edsex:=dbedit3.Text;
    edMidyear:=dbedit4.Text;
    edLiner:=dbedit5.Text;
    edTime:=dbedit6.Text;
    EdMail:=dbedit7.Text;
    edtelep:=dbedit8.Text;
    EdDwelling:=dbedit9.Text;
    edremark:=dbedit10.Text;


    ADOQY2.Close;
    ADOQY2.SQL.Clear;
    ADOQY2.SQL.Add('select * from student_Info ');

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

    //姓名不为空
    if edName<>'' then
    begin
      ADOQY2.SQL.Add('where 姓名='''+edName+'''');
    end;

    //性别不为空
    if edsex<>'' then
    begin
      ADOQY2.SQL.Add('where 性别='''+edsex+'''');
    end;

    //出生年月不为空
    if edMidyear<>'' then
    begin
      ADOQY2.SQL.Add('where 出生年月='''+edMidyear+'''');
    end;

    //班号不为空
    if edLiner<>'' then
    begin
       ADOQY2.SQL.Add('where 班号='''+edLiner+'''');
    end;

    //入学时间不为空
    if edTime<>'' then
    begin
      ADOQY2.SQL.Add('where 入学时间='''+edTime+'''');
    end;

    //邮政编码不为空
    if EdMail<>'' then
    begin
      ADOQY2.SQL.Add('where 邮政编码='''+EdMail+'''');
    end;

    //联系电话不为空
    if edtelep<>'' then
    begin
      ADOQY2.SQL.Add('where 联系电话='''+edtelep+'''');
    end;

    //家庭住址不为空
    if EdDwelling<>'' then
    begin
      ADOQY2.SQL.Add('where 家庭住址='''+EdDwelling+'''');
     end;

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

    //姓名不为空
    else if edName<>'' then
    begin
      ADOQY2.SQL.Add('where 姓名='''+edName+'''');

    //性别不为空
    if edsex<>'' then
    begin
      ADOQY2.SQL.Add('where 性别='''+edsex+'''');
    end;

    //出生年月不为空
    if edMidyear<>'' then
    begin
      ADOQY2.SQL.Add('where 出生年月='''+edMidyear+'''');
    end;

    //班号不为空
    if edLiner<>'' then
    begin
       ADOQY2.SQL.Add('where 班号='''+edLiner+'''');
    end;

    //入学时间不为空
    if edTime<>'' then
    begin
      ADOQY2.SQL.Add('where 入学时间='''+edTime+'''');
    end;

    //邮政编码不为空
    if EdMail<>'' then
    begin
      ADOQY2.SQL.Add('where 邮政编码='''+EdMail+'''');
    end;

    //联系电话不为空
    if edtelep<>'' then
    begin
      ADOQY2.SQL.Add('where 联系电话='''+edtelep+'''');
    end;

    //家庭住址不为空
    if EdDwelling<>'' then
    begin
      ADOQY2.SQL.Add('where 家庭住址='''+EdDwelling+'''');
     end;

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

    //性别不为空
    else if edsex<>'' then
    begin
      ADOQY2.SQL.Add('where 性别='''+edsex+'''');

    //出生年月不为空
    if edMidyear<>'' then
    begin
      ADOQY2.SQL.Add('where 出生年月='''+edMidyear+'''');
    end;

    //班号不为空
    if edLiner<>'' then

⌨️ 快捷键说明

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