📄 staffclass.pas
字号:
unit StaffClass;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, CheckLst, Grids, DBGrids, ExtCtrls, Buttons, DB, ADODB;
type
TfrmStaffClass = class(TForm)
Panel4: TPanel;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Edit_Name: TEdit;
Edit_No: TEdit;
BtnQuery: TBitBtn;
GroupBox2: TGroupBox;
Bevel1: TBevel;
Label3: TLabel;
Label4: TLabel;
Edit_StaffNo: TEdit;
Edit_StaffName: TEdit;
Panel2: TPanel;
BtnOK: TBitBtn;
BtnUndo: TBitBtn;
BtnEdit: TBitBtn;
BtnExit: TBitBtn;
Panel1: TPanel;
Panel3: TPanel;
DBGrid1: TDBGrid;
Panel7: TPanel;
Panel5: TPanel;
Panel6: TPanel;
BtnSelAll: TBitBtn;
BtnSelNo: TBitBtn;
RightListBox: TCheckListBox;
QryStaff: TADOQuery;
QryComm: TADOQuery;
dsStaff: TDataSource;
procedure BtnQueryClick(Sender: TObject);
procedure BtnOKClick(Sender: TObject);
procedure BtnUndoClick(Sender: TObject);
procedure BtnEditClick(Sender: TObject);
procedure BtnExitClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure BtnSelAllClick(Sender: TObject);
procedure BtnSelNoClick(Sender: TObject);
procedure QryStaffAfterScroll(DataSet: TDataSet);
procedure Edit_StaffNoKeyPress(Sender: TObject; var Key: Char);
procedure Edit_NoKeyPress(Sender: TObject; var Key: Char);
procedure Edit_StaffNameKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
EditFlags:Integer; //0:Normal; 1:Add; 2:Edit;
procedure SetButtonStatu(AFlags: Bool);
procedure SetEditStatu(AFlags:Bool);
procedure ReadToEdit();
procedure ClearEdit;
public
{ Public declarations }
end;
var
frmStaffClass: TfrmStaffClass;
implementation
uses CDDM, uCommon;
{$R *.dfm}
procedure TfrmStaffClass.BtnQueryClick(Sender: TObject);
var pStaffno,pStaffname:string;
begin
ClearEdit;
if trim(Edit_No.text)='' then
pstaffno:=' 1=1 '
else
pstaffno:=' 编码 Like "%'+trim(edit_no.text)+'%"';
if trim(Edit_Name.text)='' then
pstaffname:=' and 1=1 '
else
pstaffname:=' and 借阅人姓名 Like "%'+trim(edit_name.text)+'%"';
with QryStaff do
begin
Close;
SQL.CLear;
SQL.Add('Select * from 借阅人表 where '+pstaffno+pstaffname);
Open;
end;
end;
procedure TfrmStaffClass.BtnOKClick(Sender: TObject);
var pStaffRight:string;
I:Integer;
begin
if Trim(Edit_StaffNo.Text)='' then begin
Application.MessageBox('请输入员工工号!','提示',MB_OK+MB_ICONINFORMATION);
Edit_StaffNo.SetFocus;
Exit;
end;
if Trim(Edit_StaffName.Text)='' then begin
Application.MessageBox('请输入员工姓名!','提示',MB_OK+MB_ICONINFORMATION);
Edit_StaffName.SetFocus;
Exit;
end;
{if trim(Edit_Password.Text)='' then begin
Application.MessageBox('密码不能为空!','提示',MB_OK+MB_ICONINFORMATION);
Edit_Password.SetFocus;
Exit;
end;}
case EditFlags of
1:begin
end;
2:begin
with QryComm do
begin
Close;
SQL.Clear;
SQL.Add('Select 编码 from 借阅人表 Where 编码=:p_StaffNo');
SQL.Add('And 借阅人ID<>:P_StaffID');
Parameters.ParamByName('p_Staffid').Value:=QryStaff.FieldByName('借阅人ID').asinteger;
Parameters.ParamByName('p_Staffno').Value:=Trim(Edit_Staffno.Text);
Open;
if not IsEmpty then begin
Application.MessageBox('此工号已存在!','提示',MB_OK+MB_ICONINFORMATION);
Edit_Staffno.SetFocus;
Exit;
end;
Close;
SQL.Clear;
SQL.Add('Update 借阅人表 Set ');
SQL.Add('编码=:p_Staffno,借阅人姓名=:p_StaffName,');
SQL.Add('权限=:p_Class where 借阅人ID=:p_Staffid');
Parameters.ParamByName('p_Staffid').Value:=QryStaff.FieldByName('借阅人ID').AsInteger;
Parameters.ParamByName('p_Staffno').Value:=Edit_Staffno.Text;
Parameters.ParamByName('p_StaffName').Value:=Edit_StaffName.Text;
//Parameters.ParamByName('p_sex').Value:=Cmb_sex.Text;
//Parameters.ParamByName('p_sJob').Value:=edt_Job.Text;
pStaffRight:='';//权限
for i:=0 to RightListBox.items.Count-1 do
begin
if RightListBox.Checked[i]=True then
pStaffRight:=pStaffRight+'1'
else
pStaffRight:=pStaffRight+'0';
end;
Parameters.ParamByName('p_Class').Value:=pStaffRight;
try
ExecSQL;
QryStaff.Close;
QryStaff.Open;
except
Application.MessageBox('修改记录失败!','提示',MB_OK+MB_ICONEXCLAMATION);
Exit;
end;
end;
end;
end;
EditFlags:=0;
SetButtonStatu(True);
SetEditStatu(False);
end;
procedure TfrmStaffClass.BtnUndoClick(Sender: TObject);
begin
EditFlags:=0;
SetButtonStatu(True);
SetEditStatu(False);
ReadToEdit;
end;
procedure TfrmStaffClass.BtnEditClick(Sender: TObject);
begin
if (QryStaff.Active=False) or (QryStaff.IsEmpty) then Exit;
EditFlags:=2;
SetButtonStatu(False);
SetEditStatu(True);
Edit_StaffNo.SetFocus;
end;
procedure TfrmStaffClass.BtnExitClick(Sender: TObject);
begin
close;
end;
procedure TfrmStaffClass.FormActivate(Sender: TObject);
begin
if QryStaff.Active=False then QryStaff.Open;
ReadToEdit;
end;
procedure TfrmStaffClass.BtnSelAllClick(Sender: TObject);
var I:Integer;
begin
for i:=0 to RightListBox.items.Count-1 do
begin
RightListBox.Checked[i]:=True;
end;
end;
procedure TfrmStaffClass.BtnSelNoClick(Sender: TObject);
var I:Integer;
begin
for i:=0 to RightListBox.items.Count-1 do
begin
RightListBox.Checked[i]:=False;
end;
end;
procedure TfrmStaffClass.ClearEdit;
begin
Edit_Staffno.text:='';
Edit_StaffName.text:='';
end;
procedure TfrmStaffClass.ReadToEdit;
var i:integer;
tmpright:pchar;
begin
ClearEdit;
if (QryStaff.Active=False) or (QryStaff.IsEmpty) then Exit;
with QryStaff do
begin
Edit_Staffno.Text:=FieldByName('编码').AsString;
Edit_StaffName.Text:=FieldByName('借阅人姓名').AsString;
//Cmb_sex.text :=FieldByName('sex').AsString;
//edt_Job.text :=FieldByName('Department').AsString;
tmpright:=pchar(FieldByName('权限').AsString);
end;
//权限
for i:=0 to RightListBox.items.Count-1 do
begin
if tmpright[i]='1' then
RightListBox.Checked[i]:=True
else
RightListBox.Checked[i]:=False;
end;
end;
procedure TfrmStaffClass.SetButtonStatu(AFlags: Bool);
begin
BtnOk.Enabled:=not AFlags;
BtnUndo.Enabled:=not AFlags;
BtnEdit.Enabled:=AFlags;
//BtnExit.Enabled:=AFlags;
DBGrid1.Enabled:=AFlags;
end;
procedure TfrmStaffClass.SetEditStatu(AFlags: Bool);
begin
Panel3.Enabled:=not AFlags;
Panel5.Enabled:=AFlags;
BtnSelAll.Enabled:=AFlags;
BtnSelNo.Enabled:=AFlags;
GroupBox1.Enabled:=not AFlags;
GroupBox2.Enabled:=AFlags;
//
Edit_StaffNo.Color:=iif(AFlags,clWhite,clScrollBar);
Edit_StaffName.Color:=iif(AFlags,clWhite,clScrollBar);
//Cmb_Sex.Color:=iif(AFlags,clWhite,clScrollBar);
//edt_Job.Color:=iif(AFlags,clWhite,clScrollBar);
RightListBox.Color:=iif(AFlags,clWhite,clScrollBar);
end;
procedure TfrmStaffClass.QryStaffAfterScroll(DataSet: TDataSet);
begin
ReadToEdit;
end;
procedure TfrmStaffClass.Edit_StaffNoKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then perform(WM_NEXTDLGCTL,0,0);
end;
procedure TfrmStaffClass.Edit_NoKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then perform(WM_NEXTDLGCTL,0,0);
end;
procedure TfrmStaffClass.Edit_StaffNameKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then BtnQueryClick(nil);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -