📄 labdefine.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 + -