📄 wl85_p.~pas
字号:
unit wl85_p;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, Buttons, ExtCtrls;
type
Twl85 = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label5: TLabel;
BitBtn1: TBitBtn;
BitBtn3: TBitBtn;
Panel2: TPanel;
Label2: TLabel;
Label3: TLabel;
ComboBox1: TComboBox;
Edit1: TEdit;
BitBtn2: TBitBtn;
DBGrid1: TDBGrid;
Query1: TQuery;
DataSource1: TDataSource;
Query2: TQuery;
Edit2: TEdit;
Label6: TLabel;
RadioGroup1: TRadioGroup;
procedure FormActivate(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure DBGrid1Enter(Sender: TObject);
procedure DBGrid1Exit(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
wl85: Twl85;
implementation
{$R *.dfm}
procedure Twl85.FormActivate(Sender: TObject);
begin
// 显示部门-人员表
with query1 do begin
close;
sql.clear;
sql.Add('select * from wl_bm order by bm_mc');
open;
end;
// 初始化部门名称
with query2 do
begin
close;
sql.Clear;
sql.Add('select DISTINCT bm_mc from wl_bm order by bm_mc');
open;
ComboBox1.Items.Clear;
First;
while not EOF do
begin
ComboBox1.Items.Add(fields[0].asString);
next;
end;
ComboBox1.itemindex := 0;
end;
end;
procedure Twl85.BitBtn3Click(Sender: TObject);
begin
Query1.Close;
Query2.Close;
close;
end;
// 增加员工
procedure Twl85.BitBtn1Click(Sender: TObject);
var
DQUser:string;
begin
with query1 do begin
close;
sql.clear;
sql.Add('select * from wl_bm where bm_xm = :CS0 and bm_mc=:cs1');
params[0].asstring := edit1.text;
params[1].asstring := ComboBox1.Text;
open;
if recordcount > 0 then begin
DQUser := fieldbyname('bm_mc').value;
showMessage(edit1.text+'已经是'+ComboBox1.Text+'的员工,不能再次定义!');
end
else begin
if RadioGroup1.Itemindex =0 then
DQUser := '男'
else
DQUser := '女';
close;
sql.clear;
sql.Add('insert into wl_bm (bm_mc,bm_xm,bm_xb,bm_zw) values(:cs0,:cs1,:cs2,:cs3)');
params[0].asstring := ComboBox1.text; // 部门
params[1].asstring := edit1.text; // 员工姓名
params[2].asstring := DQUser; // 性别
params[3].asstring := edit2.text; // 职务
execsql; // 执行insert。
end;
close;
sql.clear;
sql.Add('select * from wl_bm order by bm_mc asc');
open;
end;
// 重新初始化部门名称
with query2 do
begin
close;
sql.Clear;
sql.Add('select DISTINCT bm_mc from wl_bm order by bm_mc');
open;
ComboBox1.Items.Clear;
First;
while not EOF do
begin
ComboBox1.Items.Add(fields[0].asString);
next;
end;
ComboBox1.itemindex := 0;
end;
edit1.text:='';
edit2.text:='';
end;
// 焦点进入DBGrid1,令删除按钮启用!
procedure Twl85.DBGrid1Enter(Sender: TObject);
begin
BitBtn1.Enabled := false;
BitBtn2.Enabled := True;
end;
// 焦点进入DBGrid1,令删除按钮失效!
procedure Twl85.DBGrid1Exit(Sender: TObject);
begin
if ActiveControl <> BitBtn2 then begin
BitBtn2.Enabled := False;
BitBtn1.Enabled := True;
end;
end;
// 删除员工
procedure Twl85.BitBtn2Click(Sender: TObject);
var
DQUser:string;
begin
with query1 do begin
DQUser := fieldbyname('bm_xm').value;
if MessageDlg('要被删除的是'+DQUser+',一定要删除这名人员吗?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
close;
sql.clear;
sql.Add('delete from wl_bm where bm_xm = :cs0');
params[0].asstring := DQUser; // 员工姓名
execsql;
close;
sql.clear;
sql.Add('select * from wl_bm order by bm_mc asc');
open;
end;
end;
BitBtn1.Enabled := true;
BitBtn2.Enabled := False;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -