⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fix.pas

📁 劳保用品管理系统
💻 PAS
📖 第 1 页 / 共 4 页
字号:
         s11:=dm.table8.FieldValues['bjx'];
         s12:=dm.table8.FieldValues['jx'];
         s13:=dm.table8.FieldValues['jyx'];
         s14:=dm.table8.FieldValues['xz'];
         gg:='-';
         if s6='工作服' then gg:=s7;
         if s6='棉衣' then gg:=s8;
         if s6='衬衣' then gg:=s9;
         if s6='白鞋' then gg:=s10;
         if s6='布胶鞋' then gg:=s11;
         if s6='胶靴' then gg:=s12;
         if s6='绝缘鞋' then gg:=s13;
         if s6='文化衫' then gg:=s14;
         //写发放记录
         dm.table9.append;
         dm.table9.FieldValues['bmbh']:=s1;
         dm.table9.FieldValues['bmmc']:=s2;
         dm.table9.FieldValues['ygbh']:=s5;
         dm.table9.FieldValues['xm']:=xm;
         dm.table9.FieldValues['lbmc']:=s6;
         dm.table9.FieldValues['gg']:=gg;
         dm.table9.FieldValues['sl']:=sl;
         dm.table9.post;
         //更新原始发放记录
         dm.table7.edit;
         dm.table7.FieldValues['ffrq']:=strtodate(trim(edit31.text));
         post;
         end;
       end;
     end;
    next;
   end;
 end;
dm.table7.Active :=false;
dm.table8.active:=false;
dm.table9.active:=false;
//显示单位发放记录及汇总记录
with dm.Query21 do //发放记录
     begin
       close;
       SQL.clear;
       SQL.add('select bmmc,ygbh,xm,lbmc,gg,sl from fftmp ');
       SQL.add(' where bmbh=:p1');
       ParamByname('p1').Asstring:=s1;
       prepare;
       open;
     end;
with dm.Query22 do //单位汇总
     begin
       close;
       SQL.clear;
       SQL.add('select lbmc,gg,sum(sl) as zsl from fftmp ');
       SQL.add(' where bmbh=:p1 group by lbmc,gg');
       ParamByname('p1').Asstring:=s1;
       prepare;
       open;
     end;

 end;

procedure Tfixfm.BitBtn19Click(Sender: TObject);
begin
with dm.Query20 do
     begin
       close;
       SQL.clear;
       SQL.add('select bmmc,bmbh from fftmp group by bmmc,bmbh');
       prepare;
       open;
     end;

end;

procedure Tfixfm.BitBtn20Click(Sender: TObject);
//生成汇总文件
var s1:string;
begin
with dm.Query23 do //单位汇总
     begin
       close;
       SQL.clear;
       SQL.add('select lbmc,gg,sum(sl) as zsl from fftmp ');
       SQL.add(' group by lbmc,gg');
       prepare;
       open;
     end;
if dm.query23.RecordCount =0 then exit;
s1:='整体汇总表.txt';
if fileexists(s1) then
   begin
    MessageDlg('已经存在整体发放记录!', mtWarning, [mbOk], 0);
    exit;
   end;
SaveDataSet(dm.query23,s1);
end;

procedure Tfixfm.BitBtn18Click(Sender: TObject);
begin
with dm.Query23 do //单位汇总
     begin
       close;
       SQL.clear;
       SQL.add('select lbmc,gg,sum(sl) as zsl from fftmp ');
       SQL.add(' group by lbmc,gg');
//       ParamByname('p1').Asstring:=s1;
       prepare;
       open;
     end;
end;

procedure Tfixfm.BitBtn21Click(Sender: TObject);
var s1,s2:string;
begin
with dm.Query20 do
     begin
       close;
       SQL.clear;
       SQL.add('select bmmc,bmbh from fftmp group by bmmc,bmbh');
       prepare;
       open;
     end;
if dm.query20.RecordCount =0 then exit;
s1:=dm.query20.FieldValues['bmmc']+'.txt';
s2:=dm.query20.FieldValues['bmmc']+'汇总.txt';
if fileexists(s1) or fileexists(s2) then
   begin
    MessageDlg('已经存在此部门的发放记录!', mtWarning, [mbOk], 0);
    exit;
   end;
SaveDataSet(dm.query21,s1);
SaveDataSet(dm.query22,s2);
end;

procedure Tfixfm.DBGrid22CellClick(Column: TColumn);
var s1:string;
begin
if dm.query20.RecordCount =0 then exit;
s1:=dm.query20.FieldValues['bmbh'];
//显示单位发放记录及汇总记录
with dm.Query21 do //发放记录
     begin
       close;
       SQL.clear;
       SQL.add('select bmmc,ygbh,xm,lbmc,gg,sl from fftmp ');
       SQL.add(' where bmbh=:p1');
       ParamByname('p1').Asstring:=s1;
       prepare;
       open;
     end;
with dm.Query22 do //单位汇总
     begin
       close;
       SQL.clear;
       SQL.add('select lbmc,gg,sum(sl) as zsl from fftmp ');
       SQL.add(' where bmbh=:p1 group by lbmc,gg');
       ParamByname('p1').Asstring:=s1;
       prepare;
       open;
     end;

end;

procedure Tfixfm.BitBtn22Click(Sender: TObject);
var s,s1,s2,s3:string;
begin
//更改所有员工发放记录中的发放周期
s1:=trim(edit35.text);
s2:=trim(edit36.text);
s3:=trim(edit37.text);
if (s1='') or (s2='') then exit;
if (s3='') then exit;
//更改发放记录周期
s:='update ffjl set ffzq='''+s3+''' where lbmc=:p1 and gzbh=:p2';
with dm.query8 do
     begin
       close;
       SQL.clear;
       SQL.add(s);
       ParamByname('p1').Asstring:=s2;
       ParamByname('p2').Asstring:=s1;
       prepare;
       ExecSQL;
     end;
//更改工种劳保库中的发放周期
s:='update gzlb set ffzq='''+s3+''' where lbmc=:p1 and gzbh=:p2';
with dm.query8 do
     begin
       close;
       SQL.clear;
       SQL.add(s);
       ParamByname('p1').Asstring:=s2;
       ParamByname('p2').Asstring:=s1;
       prepare;
       ExecSQL;
     end;
MessageDlg('更改完毕!', mtInformation,[mbOk], 0);
end;



procedure Tfixfm.Edit24KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit26.setfocus;
end;

procedure Tfixfm.Edit28KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit29.setfocus;
end;

procedure Tfixfm.Edit25KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit30.setfocus;
end;

procedure Tfixfm.Edit30KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit32.setfocus;
end;

procedure Tfixfm.Edit33KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit34.setfocus;
end;

procedure Tfixfm.Edit35KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit36.setfocus;
end;

procedure Tfixfm.Edit36KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit37.setfocus;
end;

procedure Tfixfm.Edit15KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit16.setfocus;
end;

procedure Tfixfm.Edit17KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit21.setfocus;
end;

procedure Tfixfm.DBGrid23CellClick(Column: TColumn);
var s,s1,s3,s2:string;
begin
s:=dm.query24.FieldValues['bmbh'];
with dm.Query19 do
     begin
       close;
       SQL.clear;
       SQL.add('select * from lkyg where bmbh=:p1');
       ParamByname('p1').Asstring:=s;
       prepare;
       open;
     end;

with dm.Query25 do
     begin
       close;
       SQL.clear;
       SQL.add('select ygbh from lkyg');
       SQL.add(' where bmbh=:p1 and xb=''男''');
       ParamByname('p1').Asstring:=s;
       prepare;
       open;
     end;
s1:=inttostr(dm.query19.RecordCount);
s2:=inttostr(dm.Query25.RecordCount);
s3:=inttostr(dm.query19.RecordCount-dm.Query25.RecordCount);
StatusBar1.Panels[1].Text :=s1;
StatusBar1.Panels[3].Text :=s2;
StatusBar1.Panels[5].Text :=s3;

end;

procedure Tfixfm.TabSheet7Show(Sender: TObject);
begin
dm.query24.Close;
dm.query24.Open;
end;

procedure Tfixfm.Button2Click(Sender: TObject);
var s:string;
begin
s:='select bmbh,bmmc';
s:=s+' into tmp from bmold group by bmmc,bmbh';
with dm.Query25 do
     begin
       close;
       SQL.clear;
       SQL.add(s);
       prepare;
       ExecSQL;
       //open;
     end;
end;

procedure Tfixfm.BitBtn23Click(Sender: TObject);
begin
if MessageDlg('本功能每次发放前使用一次,且只能使用一次,请确认!', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  begin
   dm.table11.EmptyTable;
   MessageDlg('初始化完毕,本次发放过程中不要再使用此功能!', mtInformation,
      [mbOk], 0);
  end;
end;




procedure Tfixfm.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit2.SetFocus ;
end;

procedure Tfixfm.ComboBox1Click(Sender: TObject);
begin
edit2.SetFocus;
end;

procedure Tfixfm.TabSheet5Show(Sender: TObject);
begin
dm.query10.close;
dm.query10.open;
dm.query12.close;
dm.query12.Open;
end;

procedure Tfixfm.Query6AfterPost(DataSet: TDataSet);
begin
dm.query7.Close;
dm.query7.Open;
end;

procedure Tfixfm.DBGrid4CellClick(Column: TColumn);
begin
edit19.Text:=dm.query26.FieldValues['lbmc'];  
end;

procedure Tfixfm.Edit38KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8,#13]) then key:=#0 ;
end;

procedure Tfixfm.BitBtn24Click(Sender: TObject);
begin
//PrintAtOnceEx1.Preview;
end;

procedure Tfixfm.BitBtn25Click(Sender: TObject);
begin
//PrintAtOnceEx2.Preview;
end;

procedure Tfixfm.BitBtn26Click(Sender: TObject);
begin
//PrintAtOnceEx3.Preview;
end;

procedure Tfixfm.BitBtn27Click(Sender: TObject);
begin
//PrintAtOnceEx4.Preview;
end;

procedure Tfixfm.TabSheet1Show(Sender: TObject);
var
i:integer;
begin
//以下动态生成有规格劳保用品输入框
//adoquery1.Close;
//adoquery1.Open;
ii:=adoquery1.RecordCount;
adoquery1.First;
if ii>0 then SetLength(a,ii); //这里的100可以用变量来代替,想要多少个都行
if ii>0 then SetLength(b,ii); //这里的100可以用变量来代替,想要多少个都行
for ii := 0 to Length(a) - 1 do
Begin
a[ii] := Tcombobox.Create(Self);
b[ii]:=Tlabel.Create(self);
with b[ii] do
 begin
 left:=5;
 Top := ii * 25+10;
 Parent := scrollbox1;
 end;
with a[ii] do
 begin
  Left := b[ii].Left+80 ;
//  Height := 20;
  Width := 90;
  Top := ii * 25+5;
  Style:=csDropDownList;
//  text :=adoquery1.FieldValues['lbmc'];
  b[ii].Caption :=adoquery1.FieldValues['lbmc']+'规格';
  adoquery1.Next;
  Parent := scrollbox1;
//  a[ii].Refresh;
//  OnClick := Imageclick; //点击事件
 End;
end;


//添加部门列表
Combobox1.Clear;
Combobox3.Clear;
dm.Table1.Close;
dm.table1.open;
dm.table1.first;
for i:=1 to dm.table1.RecordCount do
 begin
  Combobox1.items.add(dm.table1.FieldValues['bmmc']);
  dm.table1.Next;
 end;
//添加工种列表
dm.Table2.Close;
dm.table2.open;
dm.table2.first;
for i:=1 to dm.table2.RecordCount do
 begin
  Combobox3.items.add(dm.table2.FieldValues['gzmc']);
  dm.table2.Next;
 end;
end;


procedure Tfixfm.Edit39Change(Sender: TObject);
var s1,sqltxt:string;
begin
s1:=trim(edit39.Text);
sqltxt:='select bmbh as 部门编号,bmmc as 部门名称 from bm where bmbh like '''+s1+'%''';
editc(edit39,qryform.ADOQuery1,qryform,sqltxt)
end;

procedure Tfixfm.Edit39KeyPress(Sender: TObject; var Key: Char);
var s1,s2,sqltxt:string;
begin
if (key=#13) and (qryform.Tag =1) then
 begin
   if qryform.adoquery1.RecordCount=0 then Edit39.SetFocus;
   if qryform.adoquery1.RecordCount>1 then
    begin
    s1:=qryform.adoquery1.FieldValues['部门名称'];
    s2:=qryform.adoquery1.FieldValues['部门编号'];
    edit39.Text:=s1;
    Edit1.Text :=s2;
    qryform.Close ;
    Edit2.setfocus;
    end;
 end;
end;

procedure Tfixfm.Edit39DblClick(Sender: TObject);
var sqltxt:string;
begin
sqltxt:='select bmbh as 部门编号,bmmc as 部门名称 from bm ';
openadoquery(qryform.ADOQuery1,sqltxt);
qryform.Show;
qryform.Tag :=1;
edit39.SetFocus;
end;

procedure Tfixfm.Edit40DblClick(Sender: TObject);
var sqltxt:string;
begin
sqltxt:='select gzbh as 工种编号,gzmc as 工种名称 from gz';
openadoquery(qryform.ADOQuery1,sqltxt);
qryform.Show;
qryform.Tag :=2;
edit40.SetFocus;
end;

procedure Tfixfm.Edit40KeyPress(Sender: TObject; var Key: Char);
var s1,s2:string;
begin
if (key=#13) and (qryform.Tag =2) then
 begin
   if qryform.adoquery1.RecordCount=0 then Edit40.SetFocus;
   if qryform.adoquery1.RecordCount>1 then
    begin
    s1:=qryform.adoquery1.FieldValues['工种名称'];
    s2:=qryform.adoquery1.FieldValues['工种编号'];
    edit40.Text:=s1;
    Edit5.Text :=s2;
    qryform.Close ;
    combobox4.setfocus;
    form3.combobox4.DroppedDown:=true;
    end;
 end;
end;

procedure Tfixfm.Edit40Change(Sender: TObject);
var s1,sqltxt:string;
begin
s1:=trim(edit40.Text);
sqltxt:='select gzbh as 工种编号,gzmc as 工种名称 from gz where gzbh like '''+s1+'%''';
editc(edit40,qryform.ADOQuery1,qryform,sqltxt)
end;

procedure Tfixfm.Edit40KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Key=VK_ESCAPE) then qryform.close;
if (key=vk_UP) then
  begin
  key:=0;
  PostMessage(qryform.DBGrid1.Handle, WM_KEYDOWN, vk_up, 0);
  end
  else
  PostMessage(qryform.DBGrid1.Handle, WM_KEYDOWN, key, 0);
end;

procedure Tfixfm.Edit39KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Key=VK_ESCAPE) then qryform.close;
if (key=vk_UP) then
  begin
  key:=0;
  PostMessage(qryform.DBGrid1.Handle, WM_KEYDOWN, vk_up, 0);
  end
  else
  PostMessage(qryform.DBGrid1.Handle, WM_KEYDOWN, key, 0);
end;

procedure Tfixfm.TabSheet1Hide(Sender: TObject);
begin
for ii:=0 to adoquery1.RecordCount-1 do
begin
a[ii].free;
b[ii].free;
end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -