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

📄 input.pas

📁 劳保用品管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
      Edit1.Text := s2;
      loadfm.Close;
      Edit2.setfocus;
    end;
    key := #0;
  end;

end;

procedure Tinputfm.Edit39DblClick(Sender: TObject);
var sqltxt: string;
begin
  sqltxt := 'select bmbh as 部门编号,bmmc as 部门名称 from bm order by bmmc';
  openadoquery(adodm.loadquery, sqltxt);
  loadfm.Show;
  loadfm.Tag := 1;
  mainfm.SetFocus;
end;

procedure Tinputfm.Edit40DblClick(Sender: TObject);
var sqltxt: string;
begin
  sqltxt := 'select gzbh as 工种编号,gzmc as 工种名称 from gz';
  openadoquery(adodm.loadquery, sqltxt);
  loadfm.Show;
  loadfm.Tag := 2;
  mainfm.SetFocus;
end;

procedure Tinputfm.Edit40KeyPress(Sender: TObject; var Key: Char);
var s1, s2: string;
begin
  if (key = #13) and (loadfm.Tag = 2) then
  begin
    if adodm.loadquery.RecordCount = 0 then Edit40.SetFocus;
    if adodm.loadquery.RecordCount > 0 then
    begin
      s1 := adodm.loadquery.FieldValues['工种名称'];
      s2 := adodm.loadquery.FieldValues['工种编号'];
      edit40.Text := s1;
      Edit5.Text := s2;
      loadfm.Close;
      edit5.SetFocus;
    end;
    key := #0;
  end;
end;

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

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

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

procedure Tinputfm.FormShow(Sender: TObject);
var j: integer;
  s: string;
  yy, mm, dd: word;
begin
  decodedate(Date, yy, mm, dd);
  s := inttostr(yy);
  if (mm >= 1) and (mm <= 6) then edit31.Text := s + '-1-1';
  if (mm >= 7) and (mm <= 12) then edit31.Text := s + '-7-1';
//以下动态生成有规格劳保用品输入框,query1中指向表,有一个字段lbmc(有规格)
  adodm.adoquery1.Close;
  adodm.adoquery1.Open;
  ii := adodm.adoquery1.RecordCount;
  adodm.adoquery1.First;
  if ii = 0 then exit;
  if ii > 0 then SetLength(a, ii);
  if ii > 0 then SetLength(b, ii);
  if ii > 0 then SetLength(lbname, ii);
//lbname用来保存劳保名称
  for ii := 0 to Length(a) - 1 do
  begin
    a[ii] := Tcombobox.Create(Self);
    b[ii] := Tlabel.Create(self);
//在scrollbox1上定位
    with b[ii] do
    begin
      left := 5;
      Top := ii * 25 + 10;
      Parent := scrollbox1;
    end;
    with a[ii] do
    begin
      Parent := scrollbox1;
      Left := b[ii].Left + 80;
//  Height := 20;
      Width := 90;
      Top := ii * 25 + 5;
      Style := csDropDownList;
      lbname[ii] := adodm.adoquery1.FieldValues['lbmc'];
      with adodm.ADOQuery2 do //取劳保的各种规格
      begin
        close;
        sql.Clear;
        sql.Add('select ggg from lbgg where glbmc=''' + lbname[ii] + '''');
        open;
      end;
      for j := 1 to adodm.ADOQuery2.RecordCount do
      begin
        a[ii].Items.Add(adodm.ADOQuery2.FieldValues['ggg']);
        adodm.ADOQuery2.Next;
      end;
      b[ii].Caption := lbname[ii] + '规格';
      adodm.adoquery1.Next;
    end;
  end;

end;
// 释放动态生成的标签和combobox

procedure Tinputfm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  adodm.adoquery1.close;
  adodm.adoquery1.open;
  if ii > 0 then
  begin
    for ii := 0 to adodm.adoquery1.RecordCount - 1 do
    begin
      a[ii].free;
      b[ii].free;
    end;
  end;
  adodm.adoquery1.close;
  adodm.adoquery2.close;
  adodm.adoquery3.close;
  adodm.adoquery4.close;
  adodm.adoquery5.close;
  adodm.adoquery6.close;
  adodm.adoquery8.close;
  adodm.adoquery9.close;
  adodm.adoquery24.close;
  adodm.adoquery25.close;
  adodm.loadquery.close;
  adodm.adotable1.close;
//  adodm.adotable2.close;

  Action := caFree;
end;


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

procedure Tinputfm.TabSheet2Show(Sender: TObject);
var sqltxt: string;
  i: integer;
begin
  sqltxt := 'select bmmc,bmbh from fftmp group by bmmc,bmbh order by bmbh';
  openadoquery(adodm.adoquery8, sqltxt);
  sqltxt := 'select distinct lbmc from fftmp';
  openadoquery(adodm.adoquery9, sqltxt);
  listbox1.Clear;
  listbox2.Clear;
  for i := 1 to adodm.ADOQuery9.RecordCount do
  begin
    listbox1.Items.Add(adodm.adoquery9.FieldValues['lbmc']);
    adodm.ADOQuery9.Next;
  end;


end;

procedure Tinputfm.Button1Click(Sender: TObject);
var
  s1, s2, s3, lbmc, gg: string;
  ir, sl, i: integer;
  t: TfrMemoView;
begin
  if adodm.ADOQuery8.RecordCount = 0 then exit;
  if (adodm.ADOQuery8.RecordCount = 0) then
  begin
    MessageDlg('没有发放部门!', mtWarning, [mbOk], 0);
    exit;
  end;
  s1 := adodm.ADOQuery8.FieldValues['bmbh'];
  s2 := adodm.ADOQuery8.FieldValues['bmmc'];
  t := TfrMemoView(frReport2.FindObject('Memo1'));
  if t <> nil then
    t.Memo.Text := s2 + '劳保用品发放汇总表(' + edit31.Text + ')';
  getlist;
//显示单位汇总
  s3 := 'select lbmc,gg,sum(sl) as zsl from fftmp ';
  s3 := s3 + 'where bmbh=''' + s1 + '''';
  s3 := s3 + noprintlb + ' group by lbmc,gg';
  openadoquery(adodm.adoquery25, s3);
  frreport2.ShowReport;
//清理网格
//  StringGrid1.RestoreCells(fillrect(1, 1, 5, stringgrid1.ColCount));
//  StringGrid1.ClearCells(fillrect(1, 1, 5, stringgrid1.ColCount));
//  stringgrid1.refresh;
//  ir := adodm.adoquery9.RecordCount;
//  gridinit(StringGrid1, 5, ir + 3, s2 + '劳保用品发放汇总(' + edit31.Text + ')');
//  with StringGrid1 do
//  begin
//    foretexts[4, 2] := '备注';
//    foretexts[1, 2] := ' 劳保名称';
//    foretexts[2, 2] := ' 规格';
//    foretexts[3, 2] := ' 数量';
//  end;
//  with adodm.adoquery9 do
//  begin
//    for i := 1 to RecordCount do
//    begin
//      lbmc := FieldValues['lbmc'];
//      gg := FieldValues['gg'];
//      sl := FieldValues['zsl'];
//      StringGrid1.foretexts[1, i + 2] := lbmc;
//      StringGrid1.foretexts[2, i + 2] := gg;
//      StringGrid1.foretexts[3, i + 2] := inttostr(sl);
//      next;
//    end;
//  end;
//  if fileexists(s1) or fileexists(s2) then
//  begin
//    MessageDlg('已经存在此部门的发放记录!', mtWarning, [mbOk], 0);
//    exit;
//  end;

end;


procedure Tinputfm.Button2Click(Sender: TObject);
var
  lbmc, gg, sqltxt: string;
  ir, i, sl: integer;
  t: TfrMemoView;
begin
//显示所有汇总
  t := TfrMemoView(frReport2.FindObject('Memo1'));
  if t <> nil then
    t.Memo.Text := '劳保用品发放汇总表(' + edit31.Text + ')';
  getlist;
  sqltxt := 'select lbmc,gg,sum(sl) as zsl from fftmp where 1=1 ' + noprintlb + ' group by lbmc,gg';
  openadoquery(adodm.adoquery25, sqltxt);
  frreport2.ShowReport;
//清理网格
//  StringGrid1.RestoreCells(fillrect(1, 1, 5, stringgrid1.ColCount));
//  StringGrid1.ClearCells(fillrect(1, 1, 5, stringgrid1.ColCount));
//  stringgrid1.refresh;
//  ir := adodm.adoquery9.RecordCount;
//  gridinit(StringGrid1, 5, ir + 3, '所有部门劳保用品发放汇总(' + edit31.Text + ')');
//  with StringGrid1 do
//  begin
//    foretexts[4, 2] := '备注';
//    foretexts[1, 2] := ' 劳保名称';
//    foretexts[2, 2] := ' 规格';
//    foretexts[3, 2] := ' 数量';
//  end;
//  with adodm.adoquery9 do
//  begin
//    for i := 1 to RecordCount do
//    begin
//      lbmc := FieldValues['lbmc'];
//      gg := FieldValues['gg'];
//      sl := FieldValues['zsl'];
//      StringGrid1.foretexts[1, i + 2] := lbmc;
//      StringGrid1.foretexts[2, i + 2] := gg;
//      StringGrid1.foretexts[3, i + 2] := inttostr(sl);
//      next;
//    end;
//  end;

end;

procedure Tinputfm.Button3Click(Sender: TObject);
begin
  if listbox1.ItemIndex = -1 then
  begin
    showmessage('没有选择劳保用品');
    exit;
  end;
  listbox2.Items.Add(listbox1.Items[listbox1.ItemIndex]);
  listbox1.Items.Delete(listbox1.ItemIndex);
end;

procedure Tinputfm.Button4Click(Sender: TObject);
begin
  if listbox2.ItemIndex = -1 then
  begin
    showmessage('没有选择劳保用品');
    exit;
  end;
  listbox1.Items.Add(listbox2.Items[listbox2.ItemIndex]);
  listbox2.Items.Delete(listbox2.ItemIndex);
end;

procedure Tinputfm.getlist;
var s1: string;
  i: integer;
begin
  if listbox2.Items.Count = 0 then s1 := ''
  else
  begin
    for i := 0 to listbox2.Items.Count - 1 do
    begin
      s1 := s1 + ' and lbmc<>''' + listbox2.Items[i] + '''';
    end;
  end;
  noprintlb := s1;
end;

end.

⌨️ 快捷键说明

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