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

📄 labdefine.pas

📁 pasa人力资源考勤管理系统
💻 PAS
字号:
unit labdefine;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls, ComCtrls, Mask, Db, ADODB;

type
  TFormlabdefine = class(TForm)
    Panel5: TPanel;
    RG1: TRadioGroup;
    GroupBox3: TGroupBox;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    Label4: TLabel;
    Label5: TLabel;
    ListBox1: TListBox;
    ListBox2: TListBox;
    ComboBox1: TComboBox;
    Button1: TButton;
    Edit1: TEdit;
    GroupBox1: TGroupBox;
    ComboBox2: TComboBox;
    Edit2: TEdit;
    ListBox3: TListBox;
    Label2: TLabel;
    Label3: TLabel;
    MaskEdit1: TMaskEdit;
    DateTimePicker1: TDateTimePicker;
    Label7: TLabel;
    Label8: TLabel;
    Edit3: TEdit;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    Label9: TLabel;
    Qry1: TADOQuery;
    Qry2: TADOQuery;
    Label1: TLabel;
    procedure RG1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure ListBox1DblClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure DateTimePicker1CloseUp(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure ComboBox2KeyPress(Sender: TObject; var Key: Char);
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
    procedure FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Formlabdefine: TFormlabdefine;

implementation

uses datamol,publicfunction,main;

{$R *.DFM}

procedure TFormlabdefine.RG1Click(Sender: TObject);
begin
    if rg1.ItemIndex=0 then
    begin
       combobox1.enabled:=false;
       listbox1.enabled:=false;
       speedbutton1.enabled:=false;
       speedbutton2.enabled:=false;
       Listbox2.clear;
       Qry1.close;
       Qry1.sql.text:='Select * from per24010 where brushcard=1 and stoppay=0 and leave=0 ';
       Qry1.open;
       while not Qry1.eof do
       begin
           listbox2.Items.Add(Qry1.fieldbyname('workno').asstring+copychar(' ',Qry1.fieldbyname('workno').size-length(Qry1.fieldbyname('workno').asstring))+'   '+
                              Qry1.fieldbyname('name').asstring+copychar(' ',Qry1.fieldbyname('name').size-length(Qry1.fieldbyname('name').asstring))+'   '+
                              Qry1.fieldbyname('sexname').asstring);
           Qry1.next;
       end;
    label1.caption:=inttostr(listbox2.items.count);
    label1.update;
    end else
    begin
       combobox1.enabled:=true;
       listbox1.enabled:=true;
       speedbutton1.enabled:=true;
       speedbutton2.enabled:=true;
    end;
end;

procedure TFormlabdefine.ComboBox1Change(Sender: TObject);
begin
  if length(combobox1.text)>8 then
  begin
     listbox1.Items.Clear;
     Qry1.close;
     Qry1.SQL.Text:='select * from pub05010 where dno='''+trim(copy(combobox1.text,1,8))+''' ';
     Qry1.Open;
     if Qry1.eof then
       Application.MessageBox('没有该部门,部门编号有误','Error',mb_ok+mb_iconerror)
     else begin
       Qry1.close;  //选出该部门所有的员工
       Qry1.SQL.Clear;
       Qry1.SQL.Text:='select workno,name,sexname from per24010 where deptno='''+trim(copy(combobox1.text,1,8))+''' and leave=0 order by workno';
       Qry1.Open;
       while not Qry1.Eof do  //不为空,就把它加入listbox1(工号,姓名,性别)中,等待user选择
       begin
         listbox1.Items.Add(Qry1.fieldbyname('workno').asstring+copychar(' ',Qry1.fieldbyname('workno').size-length(Qry1.fieldbyname('workno').asstring))+'   '+
                            Qry1.fieldbyname('name').asstring+copychar(' ',Qry1.fieldbyname('name').size-length(Qry1.fieldbyname('name').asstring))+'   '+
                            Qry1.fieldbyname('sexname').asstring);
         Qry1.Next;
       end;
     end;
     Qry1.Close;
  end;
end;

procedure TFormlabdefine.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
   begin
     listbox1.Items.Clear;
     Qry1.close;
     Qry1.SQL.Text:='select * from pub05010 where dno='''+trim(copy(combobox1.text,1,8))+''' ';
     Qry1.Open;
     if Qry1.eof then
       Application.MessageBox('没有该部门,部门编号有误','Error',mb_ok+mb_iconerror)
     else begin
       Qry1.close;  //选出该部门所有的员工
       Qry1.SQL.Clear;
       Qry1.SQL.Text:='select workno,name,sexname from per24010 where deptno='''+trim(copy(combobox1.text,1,8))+''' and leave=0 order by workno';
       Qry1.Open;
       while not Qry1.Eof do  //不为空,就把它加入listbox1(工号,姓名,性别)中,等待user选择
       begin
         listbox1.Items.Add(Qry1.fieldbyname('workno').asstring+copychar(' ',Qry1.fieldbyname('workno').size-length(Qry1.fieldbyname('workno').asstring))+'   '+
                            Qry1.fieldbyname('name').asstring+copychar(' ',Qry1.fieldbyname('name').size-length(Qry1.fieldbyname('name').asstring))+'   '+
                            Qry1.fieldbyname('sexname').asstring);
         Qry1.Next;
       end;
     end;
     Qry1.Close;
   end;
end;

procedure TFormlabdefine.Edit1KeyPress(Sender: TObject; var Key: Char);
var
   i,p:integer;
   have:boolean;
begin
  if key=#13 then
  begin
    have:=false;
    p:=-1;
    for i:=0 to Listbox2.Items.Count-1 do
    begin
      if trim(copy(listbox2.items[i],1,8))=Edit1.text then
      begin
         have:=true;
         p:=i;
      end;
    end;
    if not have then
    begin
      Qry1.Close;
      Qry1.sql.text:='Select * from per24010 where workno='''+Edit1.text+''' and leave=0 ';
      Qry1.open;
      if not Qry1.eof then
      begin
           listbox2.Items.Add(Qry1.fieldbyname('workno').asstring+copychar(' ',Qry1.fieldbyname('workno').size-length(Qry1.fieldbyname('workno').asstring))+'   '+
                              Qry1.fieldbyname('name').asstring+copychar(' ',Qry1.fieldbyname('name').size-length(Qry1.fieldbyname('name').asstring))+'   '+
                              Qry1.fieldbyname('sexname').asstring);
           listbox2.ItemIndex:=Listbox2.Items.count-1;
      end else
         Application.MessageBox('没有该工号的员工','Error',mb_ok+mb_iconerror);
    end;
    listbox2.ItemIndex:=p;
    edit1.Clear;
  end;
end;

procedure TFormlabdefine.ListBox1DblClick(Sender: TObject);
begin
  if listbox2.items.indexof(listbox1.items[listbox1.itemindex])<0 then
     listbox2.items.add(listbox1.items[listbox1.itemindex]);
end;

procedure TFormlabdefine.SpeedButton1Click(Sender: TObject);
var i:integer;
begin
    for i:=0 to listbox1.items.count-1 do
    begin
       if listbox1.Selected[i] then
         if listbox2.items.indexof(listbox1.items[i])<0 then
            listbox2.Items.add(listbox1.items[i]);
    end;
    label1.caption:=inttostr(listbox2.items.count);
    label1.update;
end;

procedure TFormlabdefine.SpeedButton2Click(Sender: TObject);
var i:integer;
begin
    for i:=0 to listbox1.items.count-1 do
      if listbox2.items.indexof(listbox1.items[i])<0 then
        listbox2.items.add(listbox1.items[i]);
    label1.caption:=inttostr(listbox2.items.count);
    label1.update;
end;

procedure TFormlabdefine.SpeedButton3Click(Sender: TObject);
var i:integer;
    list:TStringList;
begin
  list:=TStringList.Create;
  for i:=0 to listbox2.items.count-1 do
    list.add(listbox2.items[i]);
  for i:=0 to listbox2.items.count-1 do
    if listbox2.Selected[i] then
      list.delete(i);
  listbox2.items.clear;
  for i:=0 to list.Count-1 do
    listbox2.Items.Add(list.Strings[i]);
    label1.caption:=inttostr(listbox2.items.count);
    label1.update;
end;

procedure TFormlabdefine.SpeedButton4Click(Sender: TObject);
begin
  listbox2.clear;
    label1.caption:=inttostr(listbox2.items.count);
    label1.update;
end;

procedure TFormlabdefine.FormCreate(Sender: TObject);
begin
    Qry1.close;
    Qry1.sql.text:='Select * from pub05010 ';
    Qry1.open;
    While not Qry1.eof do
    begin
       Combobox1.Items.add(Qry1.fieldbyname('dno').asstring+copychar(' ',Qry1.fieldbyname('dno').size-length(Qry1.fieldbyname('dno').asstring))+'   '+Qry1.fieldbyname('dept').asstring);
       Qry1.next;
    end;
    Qry1.close;
    Qry1.sql.text:='Select * from lab01010 ';
    Qry1.open;
    combobox2.Items.Clear;
    while not Qry1.eof do
    begin
       combobox2.items.add(Qry1.fieldbyname('labno').asstring+copychar(' ',Qry1.fieldbyname('labno').size-length(Qry1.fieldbyname('labno').asstring))+'   '+Qry1.fieldbyname('labname').asstring);
       qry1.next;
    end;
end;

procedure TFormlabdefine.DateTimePicker1CloseUp(Sender: TObject);
begin
   maskedit1.text:=formatdatetime('yyyy'+dateseparator+'mm'+dateseparator+'dd',datetimepicker1.date);
end;

procedure TFormlabdefine.SpeedButton5Click(Sender: TObject);
begin
   if (trim(combobox2.text)<>'') and (trim(Edit2.text)<>'') then
     Listbox3.items.add(combobox2.text+'   '+Edit2.text)
   else Application.messagebox('请输入劳保用品编号和领用量','Warning',mb_ok+mb_iconwarning);
end;

procedure TFormlabdefine.ComboBox2KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
   begin
     Qry1.close;
     Qry1.SQL.Text:='select * from lab01010 where labno='''+trim(copy(combobox2.text,1,10))+''' ';
     Qry1.Open;
     if Qry1.eof then
       Application.MessageBox('没有该劳保用品编号','Error',mb_ok+mb_iconerror)
     else
       combobox2.text:=Qry1.fieldbyname('labno').asstring+copychar(' ',Qry1.fieldbyname('labno').size-length(Qry1.fieldbyname('labno').asstring))+'   '+Qry1.fieldbyname('labname').asstring;
     Qry1.Close;
   end;
end;

procedure TFormlabdefine.SpeedButton6Click(Sender: TObject);
begin
   listbox3.Items.Delete(listbox3.ItemIndex);
end;

procedure TFormlabdefine.SpeedButton7Click(Sender: TObject);
begin
   listbox3.items.clear;
end;

procedure TFormlabdefine.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
  begin
    key:=#0;
    Selectnext(activecontrol,true,true);
  end;
end;

procedure TFormlabdefine.Button1Click(Sender: TObject);
var i,j,c:integer;
    k:real;
    item,labno,labname:string;
begin
 if trim(maskedit1.text)<>'' then  //00
 begin
   j:=listbox2.items.count;
   for i:=0 to listbox3.items.Count-1 do
   begin
      item:=listbox3.items[i];
      delete(item,1,13);   //因为劳保用品编号栏宽为10再加上3个空格的分隔符,所以为13
      k:=strtofloat(trim(copy(item,pos(' ',item),length(item))));
      qry1.close;
      qry1.sql.text:='Select * from lab01010 where labno='''+trim(copy(listbox3.items[i],1,10))+''' ';
      qry1.open;
      if not qry1.eof then  //11
      begin
        if (k*j)<=qry1.fieldbyname('num').asfloat then
        begin         //22
          labno:=qry1.fieldbyname('labno').asstring;
          labname:=qry1.fieldbyname('labname').asstring;
          for c:=0 to listbox2.items.count-1 do
          begin
            Qry2.close;
            Qry2.sql.clear;
            Qry2.sql.Add('Insert into lab02010 Select '''+edit3.text+''','''+trim(copy(listbox2.items[c],1,8))+''','''+Maskedit1.text+''','+
                         ''''+labno+''','''+labname+''','+floattostr(k)+','''+qry1.fieldbyname('unit').asstring+''','''+Qry1.fieldbyname('size').asstring+''','+
                         ''''+formatdatetime('yyyy'+dateseparator+'mm'+dateseparator+'dd',now)+''','''+pubworkname+''' ');
            qry2.sql.add('Update lab01010 set num=num-'+floattostr(k)+' where labno='''+labno+''' ');
            qry2.execsql;
          end;
        end else      //22
          Application.messagebox(pchar('编号为:'+trim(copy(listbox3.items[i],1,10))+'的劳保用品当前库存量为:'+floattostr(qry1.fieldbyname('num').asfloat)+'而'+#13#10+'领用量为:'+floattostr(k*j)+',所以不能领用.'),'Warning',mb_ok+mb_iconwarning);
      end else        //11
        Application.messagebox(pchar('没有编号为:'+trim(copy(listbox3.items[i],1,10))+'的劳保用品'),'Error',mb_ok+mb_iconerror);
   end;
 end else  //00
   Application.messagebox('请输入领用日期.','Warning',mb_ok+mb_iconwarning); 
end;

procedure TFormlabdefine.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if key=VK_F1 then
      begin
        //showmessage('ok!')
     //MessageDlg(Key + ' has been pressed', mtInformation, [mbOK], 0);
      Application.HelpFile :=Extractfilepath(application.ExeName)+ 'help\pasahelp.hlp';
      application.HelpJump('SHM_CONTENTS0042');
    end;
end;

end.

⌨️ 快捷键说明

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