u_renumber.pas
来自「人事管理程序源码」· PAS 代码 · 共 119 行
PAS
119 行
unit U_ReNumber;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Gauges, StdCtrls, Buttons, ExtCtrls,ADODB;
type
TForm_renumber = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Gauge1: TGauge;
procedure BitBtn1Click(Sender: TObject);
procedure renumber(dw_bm:string;DataSet:TADODataSet);
procedure BitBtn2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form_renumber: TForm_renumber;
implementation
uses U_gzda_dm;
{$R *.dfm}
procedure TForm_renumber.BitBtn1Click(Sender: TObject);
var
dw_bm:string;
jls,i:integer;
bfb:integer;
begin
if Application.MessageBox('确实要进行人员重新编号吗?','提示',MB_YesNO+ MB_DEFBUTTON2) <> IDYes then
Abort;
Gauge1.Visible:=true;
with gzda_dm.ADODataSet1 do begin
if active then active:=false;
commandtext:='select * from bmbmb order by dwbm,bmbm';
open;
first;
if recordcount=0 then abort;
i:=0;
jls:=recordcount;
while not eof do begin
dw_bm:=fieldbyname('dwbm').AsString+fieldbyname('bmbm').AsString;
i:=i+1;
if gzda_dm.ADODataSet_cx.Active then gzda_dm.ADODataSet_cx.Active:=false;
gzda_dm.ADODataSet_cx.CommandText:='select * from zgdab where (zgxh like :cxbh) order by zgxh';
gzda_dm.ADODataSet_cx.Parameters.ParamByName('cxbh').Value:=dw_bm+'%';
gzda_dm.ADODataSet_cx.Open;
bfb:=(i*100) div jls;
Gauge1.Progress:=bfb;
Gauge1.Refresh;
if gzda_dm.ADODataSet_cx.RecordCount=0 then //记录数为0 退出
begin
next;
Continue;
end
else
begin
gzda_dm.ADODataSet_cx.last;
if gzda_dm.ADODataSet_cx.recordcount=strtoint(copy(gzda_dm.ADODataSet_cx.fieldbyname('zgxh').AsString,5,4)) then //最后记录的记录号=记录数 退出
begin
next;
Continue;
end
else
renumber(dw_bm,gzda_dm.ADODataSet_cx);
end;
next;
end;
end;
showmessage('记录重新编号完毕!');
close;
end;
procedure TForm_renumber.renumber(dw_bm:string;DataSet:TADODataSet);
var
i:integer;
i_str:string;
begin
with DataSet do begin
first;
i:=0;
while not eof do begin
i:=i+1;
i_str:=dw_bm+copy('00000',1,4-length(trim(inttostr(i))))+trim(inttostr(i));
edit;
fieldbyname('zgxh').asstring:=i_str;
post;
next;
end;
UpdateBatch(arALL);
end;
end;
procedure TForm_renumber.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TForm_renumber.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
gzda_dm.DataModuleDestroy(self);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?