📄 u_gwlb.pas
字号:
unit U_gwlb;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, Buttons, ExtCtrls;
type
Tfrm_gwlb = class(TForm)
DBGrid1: TDBGrid;
tbl_gwlb: TTable;
DataSource1: TDataSource;
tbl_gwlbGWLBMC: TStringField;
tbl_zy: TTable;
tbl_gwlbzymc: TStringField;
tbl_gwlbZYXH: TSmallintField;
GroupBox1: TGroupBox;
Label2: TLabel;
ComboBox1: TComboBox;
Label1: TLabel;
Edit1: TEdit;
tbl_gwlbGWLBXH: TSmallintField;
btn_insert: TButton;
btn_delete: TButton;
btn_edit: TButton;
btn_save: TButton;
btn_cancel: TButton;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ComboBox1Change(Sender: TObject);
procedure tbl_gwlbAfterScroll(DataSet: TDataSet);
procedure btn_insertClick(Sender: TObject);
procedure btn_deleteClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btn_editClick(Sender: TObject);
procedure btn_saveClick(Sender: TObject);
procedure btn_cancelClick(Sender: TObject);
private
{ Private declarations }
xh:integer;
appending:boolean;
public
{ Public declarations }
end;
var
frm_gwlb: Tfrm_gwlb;
implementation
{$R *.dfm}
procedure Tfrm_gwlb.FormCreate(Sender: TObject);
begin
tbl_zy.First;
while not tbl_zy.Eof do
begin
ComboBox1.Items.AddObject(tbl_zy.fieldbyname('zymc').AsString,TObject(tbl_zy.fieldbyname('zyxh').AsInteger));
tbl_zy.Next;
end;
ComboBox1.ItemIndex:=0;
ComboBox1Change(self);
end;
procedure Tfrm_gwlb.FormClose(Sender: TObject; var Action: TCloseAction);
begin
tbl_zy.Close;
tbl_gwlb.Close;
end;
procedure Tfrm_gwlb.ComboBox1Change(Sender: TObject);
begin
tbl_gwlb.Filter:='zyxh='+inttostr(integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]));
end;
procedure Tfrm_gwlb.tbl_gwlbAfterScroll(DataSet: TDataSet);
begin
if tbl_gwlb.RecordCount=0 then
begin
Edit1.Text:='';
exit;
end;
if appending then exit;
Edit1.Text:=tbl_gwlb.fieldbyname('gwlbmc').AsString;
end;
procedure Tfrm_gwlb.btn_insertClick(Sender: TObject);
var
n,max,i:integer;
begin
tbl_gwlb.DisableControls;
n:=tbl_gwlb.RecordCount;
max:=0;
tbl_gwlb.First;
while not tbl_gwlb.Eof do
begin
if max<tbl_gwlb.fieldbyname('gwlbxh').AsInteger then max:=tbl_gwlb.fieldbyname('gwlbxh').AsInteger;
tbl_gwlb.Next;
end;
xh:=1;
if n<max then
begin
for i:=1 to max do
begin
if not tbl_gwlb.Locate('gwlbxh',i,[]) then
begin
xh:=i;
break;
end;
end;
end
else
xh:=n+1;
tbl_gwlb.Append;
tbl_gwlb.EnableControls;
btn_insert.Enabled:=false;
btn_save.Enabled:=true;
btn_cancel.Enabled:=true;
appending:=true;
Edit1.SetFocus;
end;
procedure Tfrm_gwlb.btn_deleteClick(Sender: TObject);
begin
if tbl_gwlb.RecordCount=0 then exit;
tbl_gwlb.Delete;
end;
procedure Tfrm_gwlb.FormShow(Sender: TObject);
begin
Edit1.SetFocus;
end;
procedure Tfrm_gwlb.btn_editClick(Sender: TObject);
begin
if tbl_gwlb.RecordCount=0 then exit;
btn_edit.Enabled:=false;
btn_save.Enabled:=true;
btn_cancel.Enabled:=true;
tbl_gwlb.Edit;
Edit1.SetFocus;
end;
procedure Tfrm_gwlb.btn_saveClick(Sender: TObject);
var
s:string;
n:integer;
begin
s:=trim(Edit1.Text);
n:=length(s);
if n=0 then
begin
MessageBox(0,'岗位类别名称不能为空!','岗位类别',MB_OK+MB_ICONSTOP);
tbl_gwlb.EnableControls;
Edit1.SetFocus;
exit;
end
else
if n>10 then
begin
MessageBox(0,'岗位类别名称不能超过5个汉字!','岗位类别',MB_OK+MB_ICONSTOP);
tbl_gwlb.EnableControls;
Edit1.SetFocus;
exit;
end;
if appending then
begin
if tbl_gwlb.Locate('gwlbmc',s,[loCaseInsensitive]) then
begin
MessageBox(0,'岗位类别名称重复!','岗位类别',MB_OK+MB_ICONSTOP);
tbl_gwlb.EnableControls;
Edit1.SetFocus;
exit;
end;
tbl_gwlb.Insert;
appending:=false;
tbl_gwlb.FieldByName('gwlbxh').AsInteger:=xh;
tbl_gwlb.FieldByName('zyxh').AsInteger:=integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
end
else
tbl_gwlb.Edit;
tbl_gwlb.FieldByName('gwlbmc').AsString:=s;
tbl_gwlb.Post;
btn_insert.Enabled:=true;
btn_edit.Enabled:=true;
btn_save.Enabled:=false;
btn_cancel.Enabled:=false;
tbl_gwlb.EnableControls;
Edit1.SetFocus;
tbl_gwlbAfterScroll(tbl_gwlb);
end;
procedure Tfrm_gwlb.btn_cancelClick(Sender: TObject);
begin
tbl_gwlb.Cancel;
btn_insert.Enabled:=true;
btn_edit.Enabled:=true;
btn_save.Enabled:=false;
btn_cancel.Enabled:=false;
Edit1.SetFocus;
tbl_gwlbAfterScroll(tbl_gwlb);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -