pub_input.pas

来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 286 行

PAS
286
字号
unit pub_input;

interface

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

type
  TFormpubinput = class(TForm)
    Splitter1: TSplitter;
    Qry1: TADOQuery;
    Qry2: TADOQuery;
    Panel5: TPanel;
    RG1: TRadioGroup;
    GroupBox3: TGroupBox;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    Label2: TLabel;
    Label3: TLabel;
    Label25: TLabel;
    ListBox1: TListBox;
    ListBox2: TListBox;
    ComboBox1: TComboBox;
    Button1: TButton;
    Edit1: TEdit;
    procedure RG1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ListBox1DblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Formpubinput: TFormpubinput;

implementation

uses datamol,main,publicfunction;
{$R *.DFM}

procedure TFormpubinput.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  stoppay=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);
           Qry1.next;
       end;
    label25.caption:=inttostr(listbox2.items.count);
    label25.update;
    end else                //部分
    begin
       combobox1.enabled:=true;
       listbox1.enabled:=true;
       speedbutton1.enabled:=true;
       speedbutton2.enabled:=true;
    end;
end;

procedure TFormpubinput.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))+''' order by workno';
       Qry1.Open;
       if not Qry1.Eof then    //如果为空,提示user信息
         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);
           Qry1.Next;
         end;
     end;
     Qry1.Close;
  end;
end;

procedure TFormpubinput.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))+''' order by workno';
       Qry1.Open;
       if Qry1.Eof then    //如果为空,提示user信息
         Application.MessageBox('该部门没有员工','Error',mb_ok+mb_iconerror)
       else
         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);
           Qry1.Next;
         end;
     end;
     Qry1.Close;
   end;
end;

procedure TFormpubinput.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 ansicomparetext(trim(copy(listbox2.items[i],1,10)),Edit1.text)=0 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+''' ';
      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);
           listbox2.ItemIndex:=Listbox2.Items.count-1;
      end else
         Application.MessageBox('没有该工号的员工','Error',mb_ok+mb_iconerror);
    end;
    listbox2.ItemIndex:=p;
    edit1.Clear;
  end;
end;

procedure TFormpubinput.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;
    label25.caption:=inttostr(listbox2.items.count);
    label25.update;
end;

procedure TFormpubinput.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]);
    label25.caption:=inttostr(listbox2.items.count);
    label25.update;
end;



procedure TFormpubinput.SpeedButton3Click(Sender: TObject);
///2003/04/05
var i,j,k:integer;
    list:TStringList;
begin
  j:=0;
  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
   // begin
   //j:=i;
   // break;
   // end;
 k:=0;
 for i:=0 to listbox2.items.count-1 do
    if listbox2.Selected[i] then
    begin
    j:=i;
      list.delete(j-k);
      inc(k);
    end;
  listbox2.items.clear;
  for i:=0 to list.Count-1 do
    listbox2.Items.Add(list.Strings[i]);
  for i:=0 to list.count-1 do
    if j=list.count then
    begin
    //listbox2.itemindex:=j-1 ;
    listbox2.selected[j-1]:=true;
     end
     else
     begin
    //listbox2.itemindex:=j;
    listbox2.selected[j]:=true;
    break;
    end;
    ////////////////////////////////
    label25.caption:=inttostr(listbox2.items.count);
    label25.update;
end;

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

procedure TFormpubinput.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   formpubinput:=nil;
   action:=cafree;
end;

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

procedure TFormpubinput.FormCreate(Sender: TObject);
begin
  Listbox1.items.clear;
  listbox2.items.clear;
  Qry1.close;
  Qry1.sql.text:='Select * from pub05010 order by dno ';
  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;
end;

procedure TFormpubinput.FormKeyPress(Sender: TObject; var Key: Char);
begin
   if (activecontrol=edit1) or (activecontrol=combobox1) then exit;
   if key=#13 then
   begin
      key:=#0;
      selectnext(activecontrol,true,true);
   end;
end;

end.

⌨️ 快捷键说明

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