📄 teacherunit.pas
字号:
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 + -