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

📄 teacherunit.pas

📁 DELPHI计算机科学系教务管理系统,带论文设计,不错的参考
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit TeacherUnit;

interface

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

type
  TTeacherForm = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    DBGrid1: TDBGrid;
    tno: TLabel;
    levtname: TLabel;
    edttname: TEdit;
    lbool: TLabel;
    cbxbool: TComboBox;
    lpost: TLabel;
    cbxpost: TComboBox;
    lsex: TLabel;
    lage: TLabel;
    edtage: TEdit;
    ladress: TLabel;
    edtadress: TEdit;
    ltel: TLabel;
    edttel: TEdit;
    BitBtn3: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    BitBtn7: TBitBtn;
    cbxsex: TComboBox;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    Label1: TLabel;
    Edtmemo: TEdit;
    btnFind: TBitBtn;
    btnReport: TButton;
    Label2: TLabel;
    edttname2: TEdit;
    cbxbool2: TComboBox;
    Label3: TLabel;
    cbxSex2: TComboBox;
    lbSex: TLabel;
    Label4: TLabel;
    cbxpost2: TComboBox;
    Button1: TButton;
    cbxtcscode: TComboBox;
    Label5: TLabel;
    cbxtcdepartment: TComboBox;
    ADOQuery2: TADOQuery;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure ADOQuery1AfterScroll(DataSet: TDataSet);
    procedure FormShow(Sender: TObject);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure btnFindClick(Sender: TObject);
    procedure btnReportClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure cbxtcscodeChange(Sender: TObject);
  private
    procedure GridMouseWheel(Sender: TObject; Shift: TShiftState;
    WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
    function GetUno: string;

    procedure ControlTheEnablePro(isSaved: Boolean);//控制按钮面板的Enable属性
//***********************************************************
    procedure CopyDbDataToExcel(Args: array of const); // DbDataToExcel
//*****************************************************************
    { Private declarations }
  public
    function isUnameExist(Uname: string): Boolean; //检测用户名是否存在

    { Public declarations }
  end;
   TControlAccess = class(TControl);
var
  TeacherForm: TTeacherForm;
   flag:integer;
implementation

uses DataModul, public_unit, TeacherQRUnit;

{$R *.dfm}

procedure TTeacherForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  adoquery1.Close;
  Action := caFree;
  TeacherForm := nil;
end;

procedure TTeacherForm.FormCreate(Sender: TObject);
begin
  adoquery1.Open;
 { with adoquery1 do
  begin
    cbxtcscode.Enabled:=false;
    //edttno.Text := fieldByName('tno').AsString;
    edttname.Text := fieldByName('tname').AsString;
    edtage.Text := fieldByname('tage').AsString;
    edttel.Text := fieldByName('ttel').AsString;
    edtadress.Text := fieldByName('tadress').AsString;
    Edtmemo.Text:=fieldbyname('tmemo').AsString;
    cbxsex.ItemIndex := cbxsex.Items.IndexOf(fieldbyname('tsex').AsString);
    cbxpost.ItemIndex := cbxpost.Items.IndexOf(fieldByname('tpost').AsString);
    cbxbool.ItemIndex := cbxbool.Items.IndexOf(fieldByname('tbool').AsString);
    cbxtcscode.ItemIndex:=cbxtcscode.Items.IndexOf(fieldbyname('tno').AsString);
  end;}
   ControlTheEnablePro(true);
  TControlAccess(DBGrid1).OnMouseWheel := GridMouseWheel;
end;

procedure TTeacherForm.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
    with adoquery1 do
  begin
    cbxtcscode.Text := fieldByName('tno').AsString;
    edtage.Text := fieldByname('tage').AsString;
    edttel.Text := fieldByName('ttel').AsString;
    edtadress.Text := fieldByName('tadress').AsString;
    Edtmemo.Text:=fieldbyname('tmemo').AsString;
    edttname.Text:=fieldbyname('tname').AsString;
    cbxpost.Text:=fieldbyname('tpost').AsString;
    cbxtcdepartment.Text:=fieldbyname('tcdepartment').AsString;
    cbxsex.ItemIndex := cbxsex.Items.IndexOf(fieldbyname('tsex').AsString);
    cbxpost.ItemIndex := cbxpost.Items.IndexOf(fieldByname('tpost').AsString);
    cbxbool.ItemIndex := cbxbool.Items.IndexOf(fieldByname('tbool').AsString);
    cbxtcdepartment.ItemIndex := cbxtcdepartment.Items.IndexOf(adoquery1.fieldByname('tcdepartment').AsString);
  end;
end;

procedure TTeacherForm.FormShow(Sender: TObject);
begin
  GetFieldsToCombox('001', cbxsex, DM.ADOConnection1); //性别
  GetFieldsToCombox('002', cbxpost, DM.ADOConnection1); //职务
  GetFieldsToCombox('002', cbxpost2, DM.ADOConnection1); //职务
  GetFieldsToCombox('003', cbxtcdepartment, DM.ADOConnection1); //职务
end;

procedure TTeacherForm.GridMouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
  TDBGrid(Sender).DataSource.DataSet.MoveBy(-WheelDelta div WHEEL_DELTA);
  Handled := True;
end;

procedure TTeacherForm.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
 if gdSelected in State then Exit;  //隔行改变网格背景色:
  if adoquery1.RecNo mod 2 = 0 then
    (Sender as TDBGrid).Canvas.Brush.Color := clinfobk //定义背景颜色
  else
    (Sender as TDBGrid).Canvas.Brush.Color := RGB(191, 255, 223);  //定义背景颜色

  //定义网格线的颜色:
  DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
  with (Sender as TDBGrid).Canvas do //画 cell 的边框
  begin
    Pen.Color := $00ff0000; //定义画笔颜色(蓝色)
    MoveTo(Rect.Left, Rect.Bottom); //画笔定位
    LineTo(Rect.Right, Rect.Bottom); //画蓝色的横线
    Pen.Color := clbtnface; //定义画笔颜色(兰色)
    MoveTo(Rect.Right, Rect.Top); //画笔定位
    LineTo(Rect.Right, Rect.Bottom); //画绿色
  end;
end;

procedure TTeacherForm.BitBtn2Click(Sender: TObject);
begin
  clearText(self);
   // cbxsex.ItemIndex := cbxsex.Items.IndexOf('');
   // cbxpost.ItemIndex := cbxpost.Items.IndexOf('');
    //cbxbool.ItemIndex := cbxbool.Items.IndexOf('');
    cbxsex.ItemIndex := 0;
    cbxpost.ItemIndex := 0;
    cbxpost2.ItemIndex := 0;
    cbxbool.ItemIndex := 0;
  cbxtcscode.Enabled:=false;
  cbxtcscode.Text:= GetUno;
  ControlTheEnablePro(false);
  edttname.SetFocus;
  flag:=1;

end;

function TTeacherForm.GetUno: string;
var
  UnoQry: TADOQuery;
  id: string;
begin
  UnoQry := TADOQuery.Create(self);
  with Unoqry do
  begin
    Connection := dm.ADOConnection1;
    sql.Text := 'select max(tno) as id from tteacher';
    Open;
    id := fieldbyName('id').AsString;
    if id='' then
        id:='01'
      else
        id:=copy(inttostr(strtoint(id)+101),2,4);
    end;
  Result := id;
  UnoQry.Free;

end;

procedure TTeacherForm.ControlTheEnablePro(isSaved: Boolean);
begin
  if isSaved = true then
  begin
    panel3.Enabled:=true;       Panel2.Enabled:=false;

    BitBtn2.Enabled:=True;      BitBtn3.Enabled:=true;
    BitBtn4.Enabled:=true;      BitBtn7.Enabled:=true;
    BitBtn5.Enabled:=false;     BitBtn6.Enabled:=false;

    edttName.Enabled:=false;       edtage.Enabled:=false;
    edttel.Enabled:=false;       edtAdress.Enabled:=false;
    Edtmemo.Enabled:=false;

    cbxPost.Enabled:=false;   cbxSex.Enabled:=false;
    cbxbool.Enabled:=false;   cbxtcdepartment.Enabled:=false;
//********************************************************
  end
  else
  begin
    panel3.Enabled:=false;       Panel2.Enabled:=true;

    BitBtn2.Enabled:=false;      BitBtn3.Enabled:=false;
    BitBtn4.Enabled:=false;      BitBtn7.Enabled:=false;
    BitBtn5.Enabled:=true;       BitBtn6.Enabled:=true;

     edttName.Enabled:=true;       edtage.Enabled:=true;
    edttel.Enabled:=true;       edtAdress.Enabled:=true;
    Edtmemo.Enabled:=true;

    cbxPost.Enabled:=true;   cbxSex.Enabled:=true;
    cbxbool.Enabled:=true;   cbxtcdepartment.Enabled:=true;
//********************************************************
  end;
end;

procedure TTeacherForm.BitBtn5Click(Sender: TObject);
begin
  with adoquery1 do
  begin
    cbxtcscode.Enabled:=false;
    cbxtcscode.Text := fieldByName('tno').AsString;
    edttname.Text := fieldByName('tname').AsString;
    edtage.Text := fieldByname('tage').AsString;
    edttel.Text := fieldByName('ttel').AsString;
    edtadress.Text := fieldByName('tadress').AsString;
    Edtmemo.Text:=fieldbyname('tmemo').AsString;
    cbxsex.ItemIndex := cbxsex.Items.IndexOf(fieldbyname('tsex').AsString);
    cbxpost.ItemIndex := cbxpost.Items.IndexOf(fieldByname('tpost').AsString);
    cbxbool.ItemIndex := cbxbool.Items.IndexOf(fieldByname('tbool').AsString);
    cbxtcdepartment.ItemIndex := cbxtcdepartment.Items.IndexOf(adoquery1.fieldByname('tcdepartment').AsString);
    ControlTheEnablePro(true);
  end;

end;

procedure TTeacherForm.BitBtn6Click(Sender: TObject);
var
  Uno: string;
  sqlStr: string;
begin
  if edttname.Text='' then
  begin
    if application.MessageBox('教师名称不能为空','提示消息', mb_iconInformation+mb_ok)=idok then
        edttname.SetFocus;
  end

⌨️ 快捷键说明

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