u_sddwbm.pas
来自「人事管理程序源码」· PAS 代码 · 共 429 行
PAS
429 行
unit U_sddwbm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Grids, DBGrids, Menus, Buttons,ADODB,DB;
type
TForm_sddwbm = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Image1: TImage;
Label1: TLabel;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
BitBtn1: TBitBtn;
PopupMenu_dwbm: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
PopupMenu_bmbm: TPopupMenu;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
MenuItem3: TMenuItem;
MenuItem4: TMenuItem;
Panel7: TPanel;
Label2: TLabel;
xs_dwbm: TEdit;
Label3: TLabel;
xs_dwmc: TEdit;
Panel8: TPanel;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Panel9: TPanel;
Label4: TLabel;
Label5: TLabel;
xs_bmbm: TEdit;
xs_bmmc: TEdit;
Panel10: TPanel;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
procedure FormShow(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure bmbm_filter(dwbm:string);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure N1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure MenuItem1Click(Sender: TObject);
procedure MenuItem2Click(Sender: TObject);
procedure MenuItem3Click(Sender: TObject);
procedure MenuItem4Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
function Delete_bm_record(bh:string):boolean;
procedure Delete_record(zgbh:integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form_sddwbm: TForm_sddwbm;
czfs:integer;
implementation
uses U_gzda_dm, U_wjbf;
{$R *.dfm}
procedure TForm_sddwbm.FormShow(Sender: TObject);
begin
with gzda_dm.ADODataSet1 do begin
if active then active:=false;
commandtext:='select * from dwbmb order by dwbm'; //打开dwbmb
open;
first;
end;
with gzda_dm.ADODataSet2 do begin
if active then active:=false;
commandtext:='select * from bmbmb order by bmbm'; //打开bmbmb
open;
first;
end;
bmbm_filter(gzda_dm.ADODataSet1.fieldbyname('dwbm').AsString);
end;
procedure TForm_sddwbm.BitBtn1Click(Sender: TObject);
begin
with gzda_dm.ADODataSet1 do begin
if active then UpdateBatch(arALL);
end;
with gzda_dm.ADODataSet2 do begin
if active then UpdateBatch(arALL);
end;
close;
end;
procedure TForm_sddwbm.bmbm_filter(dwbm:string);
begin
with gzda_dm.ADODataSet2 do begin
Filtered := False;
Filter := 'dwbm = ' + QuotedStr(dwbm);
Filtered := True;
dbgrid2.Refresh;
dbgrid1.SetFocus;
end;
end;
procedure TForm_sddwbm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key =#13 then
begin
Key := #0;
Perform(WM_NEXTDLGCTL,0,0);
end;
end;
procedure TForm_sddwbm.N1Click(Sender: TObject);
begin
czfs:=1;
xs_dwbm.Text:='';
xs_dwmc.Text:='';
panel7.Visible:=true;
xs_dwmc.SetFocus;
end;
procedure TForm_sddwbm.BitBtn2Click(Sender: TObject);
var
ls_bm:string;
ls_num:integer;
begin
with gzda_dm.ADODataSet1 do begin
if czfs=1 then
begin
if recordcount<>0 then
begin
last;
ls_num:=fieldbyname('dwbm').asinteger+1;
if ls_num<10 then
ls_bm:='0'+inttostr(ls_num)
else
ls_bm:=inttostr(ls_num);
end
else
ls_bm:='01';
xs_dwbm.Text:=ls_bm;
append;
end
else
edit;
fieldbyname('dwbm').AsString:=xs_dwbm.Text;
fieldbyname('dwmc').AsString:=xs_dwmc.Text;
post;
end;
panel7.Visible:=false;
dbgrid1.SetFocus;
dbgrid1.Refresh;
end;
procedure TForm_sddwbm.N2Click(Sender: TObject);
begin
czfs:=2;
with gzda_dm.ADODataSet1 do begin
xs_dwbm.Text:=fieldbyname('dwbm').AsString;
xs_dwmc.Text:=fieldbyname('dwmc').AsString;
end;
panel7.Visible:=true;
panel7.Refresh;
xs_dwmc.SetFocus;
end;
procedure TForm_sddwbm.N3Click(Sender: TObject);
var
dwbm:string;
begin
with gzda_dm.ADODataSet1 do begin
if recordcount=0 then abort;
if Application.MessageBox('确实要删除本条记录吗?','提示',MB_YesNO+ MB_DEFBUTTON2) <> IDYes then
Abort;
if Application.MessageBox('删除本条记录后,数据库中所有与之相关的数据将被删除,且不可恢复,继续吗?','提示',MB_YesNO+ MB_DEFBUTTON2) <> IDYes then
Abort;
dwbm:=fieldbyname('dwbm').AsString;
delete;
end;
with gzda_dm.ADODataSet2 do begin
UpdateBatch(arALL);
close;
end;
with gzda_dm.ADOCommand1 do begin
commandtext:='delete from bmbmb where (dwbm=:dwbm)';
Parameters.ParamByName('dwbm').Value:=dwbm;
Execute;
end;
with gzda_dm.ADODataSet2 do begin
if active then active:=false;
commandtext:='select * from bmbmb order by bmbm'; //打开bmbmb
open;
first;
end;
if Delete_bm_record(dwbm) then //删除其他数据表中的数据;
begin
showmessage('本单位的所有数据已被删除!!');
end;
bmbm_filter(gzda_dm.ADODataSet1.fieldbyname('dwbm').AsString);
end;
procedure TForm_sddwbm.N4Click(Sender: TObject);
begin
with gzda_dm.ADODataSet1 do begin
UpdateBatch(arALL);
end;
showmessage('单位名称数据已存盘!!');
end;
procedure TForm_sddwbm.MenuItem1Click(Sender: TObject);
begin
czfs:=1;
xs_bmbm.Text:='';
xs_bmmc.Text:='';
panel9.Visible:=true;
xs_bmmc.SetFocus;
end;
procedure TForm_sddwbm.MenuItem2Click(Sender: TObject);
begin
czfs:=2;
with gzda_dm.ADODataSet2 do begin
xs_bmbm.Text:=fieldbyname('bmbm').AsString;
xs_bmmc.Text:=fieldbyname('bmmc').AsString;
end;
panel9.Visible:=true;
panel9.Refresh;
xs_bmmc.SetFocus;
end;
procedure TForm_sddwbm.MenuItem3Click(Sender: TObject);
var
bmbm:string;
begin
with gzda_dm.ADODataSet2 do begin
if recordcount=0 then abort;
if Application.MessageBox('确实要删除本条记录吗?','提示',MB_YesNO+ MB_DEFBUTTON2) <> IDYes then
Abort;
if Application.MessageBox('删除本条记录后,数据库中所有与之相关的数据将被删除,且不可恢复,继续吗?','提示',MB_YesNO+ MB_DEFBUTTON2) <> IDYes then
Abort;
bmbm:=fieldbyname('dwbm').AsString+fieldbyname('bmbm').AsString;
delete;
if Delete_bm_record(bmbm) then
begin
showmessage('本部门的所有数据已被删除!!');
end;
end;
end;
procedure TForm_sddwbm.MenuItem4Click(Sender: TObject);
begin
with gzda_dm.ADODataSet2 do begin
UpdateBatch(arALL);
end;
showmessage('编码名称数据已存盘!!');
end;
procedure TForm_sddwbm.BitBtn3Click(Sender: TObject);
begin
panel7.Visible:=false;
dbgrid1.Refresh;
dbgrid1.SetFocus;
end;
procedure TForm_sddwbm.BitBtn4Click(Sender: TObject);
var
ls_bm:string;
ls_num:integer;
begin
with gzda_dm.ADODataSet2 do begin
if czfs=1 then
begin
if recordcount<>0 then
begin
last;
ls_num:=fieldbyname('bmbm').asinteger+1;
if ls_num<10 then
ls_bm:='0'+inttostr(ls_num)
else
ls_bm:=inttostr(ls_num);
end
else
ls_bm:='01';
xs_bmbm.Text:=ls_bm;
append;
end
else
edit;
fieldbyname('dwbm').AsString:=gzda_dm.ADODataSet1.fieldbyname('dwbm').AsString;
fieldbyname('bmbm').AsString:=xs_bmbm.Text;
fieldbyname('bmmc').AsString:=xs_bmmc.Text;
post;
end;
panel9.Visible:=false;
dbgrid2.SetFocus;
dbgrid2.Refresh;
end;
procedure TForm_sddwbm.BitBtn5Click(Sender: TObject);
begin
panel9.Visible:=false;
dbgrid2.Refresh;
dbgrid2.SetFocus;
end;
procedure TForm_sddwbm.DBGrid1CellClick(Column: TColumn);
begin
bmbm_filter(gzda_dm.ADODataSet1.fieldbyname('dwbm').AsString);
end;
procedure TForm_sddwbm.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
with gzda_dm.ADODataSet1 do begin
case key of
37,38:
if not bof then
begin
Prior;
bmbm_filter(gzda_dm.ADODataSet1.fieldbyname('dwbm').AsString);
next;
end;
39,40:
if not eof then
begin
next;
bmbm_filter(gzda_dm.ADODataSet1.fieldbyname('dwbm').AsString);
Prior;
end
end;
end;
end;
procedure TForm_sddwbm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
gzda_dm.DataModuleDestroy(self);
end;
procedure TForm_sddwbm.Delete_record(zgbh:integer);
begin
with gzda_dm.ADOCommand1 do begin
commandtext:='delete from gzjl where zgbh=:zgbh';
Parameters.ParamByName('zgbh').Value:=zgbh;
Execute;
commandtext:='delete from xxjl where zgbh=:zgbh';
Parameters.ParamByName('zgbh').Value:=zgbh;
Execute;
commandtext:='delete from zcprjl where zgbh=:zgbh';
Parameters.ParamByName('zgbh').Value:=zgbh;
Execute;
commandtext:='delete from gztzqk where zgbh=:zgbh';
Parameters.ParamByName('zgbh').Value:=zgbh;
Execute;
commandtext:='delete from jxjy where zgbh=:zgbh';
Parameters.ParamByName('zgbh').Value:=zgbh;
Execute;
commandtext:='delete from jfjl where zgbh=:zgbh';
Parameters.ParamByName('zgbh').Value:=zgbh;
Execute;
commandtext:='delete from poqk where zgbh=:zgbh';
Parameters.ParamByName('zgbh').Value:=zgbh;
Execute;
commandtext:='delete from shgx where zgbh=:zgbh';
Parameters.ParamByName('zgbh').Value:=zgbh;
Execute;
end;
end;
function TForm_sddwbm.Delete_bm_record(bh:string):boolean;
begin
with gzda_dm.ADODataSet_cx do begin
if active then active:=false;
commandtext:='select * from zgdab where (zgxh like :bh) order by zgxh';
Parameters.ParamByName('bh').Value:=bh+'%';
open;
if recordcount=0 then
begin
delete_bm_record:=false;
abort;
end;
end;
// 进行数据备份
Form_SJbf:=TForm_SJbf.create(application); //建立
Form_SJbf.showmodal; //以有模式方式显示
Form_SJbf.free ; //释放窗体
with gzda_dm.ADODataSet_cx do begin
first;
while not eof do begin
delete_record(fieldbyname('zgbh').AsInteger); //删除记录
next;
end;
end;
with gzda_dm.ADOCommand1 do begin
commandtext:='delete from zgdab where (zgxh like :bh)';
Parameters.ParamByName('bh').Value:=bh+'%';
Execute;
end;
delete_bm_record:=true;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?