personalreport.pas
来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 813 行 · 第 1/2 页
PAS
813 行
ppLine33: TppLine;
ppLabel85: TppLabel;
ppLabel86: TppLabel;
ppLabel87: TppLabel;
ppLabel88: TppLabel;
ppLine34: TppLine;
ppLabel89: TppLabel;
ppLabel90: TppLabel;
ppLabel91: TppLabel;
ppSystemVariable13: TppSystemVariable;
ppSystemVariable14: TppSystemVariable;
ppLabel92: TppLabel;
ppLabel93: TppLabel;
ppLabel94: TppLabel;
ppLabel95: TppLabel;
ppSystemVariable19: TppSystemVariable;
ppSystemVariable20: TppSystemVariable;
ppLabel96: TppLabel;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ppReport9PreviewFormCreate(Sender: TObject);
procedure ppDBText13GetText(Sender: TObject; var Text: String);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ppReport8PreviewFormCreate(Sender: TObject);
procedure ppReport8AfterPrint(Sender: TObject);
procedure ppReport9AfterPrint(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure ppReport1AfterPrint(Sender: TObject);
procedure ppReport1PreviewFormCreate(Sender: TObject);
procedure DateTimePicker1CloseUp(Sender: TObject);
procedure DateTimePicker2CloseUp(Sender: TObject);
procedure ppReport2PreviewFormCreate(Sender: TObject);
procedure ppReport3PreviewFormCreate(Sender: TObject);
procedure ppReport4PreviewFormCreate(Sender: TObject);
procedure ppReport5PreviewFormCreate(Sender: TObject);
procedure ppReport6PreviewFormCreate(Sender: TObject);
procedure ppReport7PreviewFormCreate(Sender: TObject);
procedure MaskEdit2KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
formpersonalreport: Tformpersonalreport;
factoryname:string;
implementation
uses main, datamol, personalanalyse, fullcompanymanchange, profanalyse;
{$R *.DFM}
procedure Tformpersonalreport.Button2Click(Sender: TObject);
begin
close;
formpersonalreport:=nil;
end;
procedure Tformpersonalreport.Button1Click(Sender: TObject);
var
teststr:string;
fmat1:string;
begin
if fmat='/' then
fmat1:=' / / ';
if fmat='-' then
fmat1:=' - - ';
if (MaskEdit1.text=fmat1) or (MaskEdit2.text=fmat1) then
begin
Application.MessageBox('日期输入不完整!','Error',mb_ok+mb_iconerror);
exit;
end;
case radiogroup1.ItemIndex of
0:
begin
if not assigned(formanalyse) then
formanalyse:=tformanalyse.create(self);
formanalyse.QuickRep1.preview;
end;
1:
begin
teststr:=combobox1.Text;
adodataset1.Close;
adodataset1.CommandText:='select * from per24010 where month(birthday)= '+teststr+' and leave=0 order by birthday,dept,workno ';
adodataset1.Open;
pplabel150.Caption:=inttostr(strtoint(teststr))+'月寿星名单';
pplabel151.Caption :=companyname1;
pplabel154.Caption :=pubworkname;
ppReport8.print;
end;
2:
begin
ADODataSet7.Close;
adodataset7.commandtext:='select distinct z.dept, z.dno,isnull(a.num1,0)+isnull(c.num3,0)+isnull(d.num4,0) as num1,isnull(b.num2,0) as num2,isnull(c.num3,0) as num3,isnull(d.num4,0) as num4, isnull(f.num6,0) as num6, isnull(e.num5,0) as num5'+
' from( select dno,dept '+
'from pub05010 ) as z '+
'left join '+
'( select deptno, count(workno) as num1 '+
' from per24010'+
' where left(convert(varchar,indate,111),7)<left(convert(varchar,'''+maskedit1.text+''',111),7) and leave=0'+
' group by deptno) as a on z.dno=a.deptno '+
'left join '+
'( select deptno, count(workno) as num2 '+
' from per24010 '+
' where left(convert(varchar,indate,111),7)=left(convert(varchar,'''+maskedit1.text+''',111),7) and leave=0 '+
' group by deptno) as b on z.dno=b.deptno '+
'left join '+
'( select deptno,count(workno) as num3 '+
' from per16010 '+
'where left(convert(varchar,leavedate,111),7)=left(convert(varchar,'''+maskedit1.text+''',111),7) '+
' group by deptno) as c on z.dno=c.deptno '+
'left join '+
'( select dept,count(workno) as num4 '+
' from per21010 '+
'where month(usefuldate)=substring('''+maskedit1.text+''',6,2) and year(usefuldate)=substring('''+maskedit1.text+''',1,4)'+
'group by dept) as d on z.dno=d.dept '+
'left join '+
'( select ldept,count(workno) as num6 '+
' from per21010 '+
'where month(usefuldate)=substring('''+maskedit1.text+''',6,2) and year(usefuldate)=substring('''+maskedit1.text+''',1,4)'+
'group by ldept) as f on z.dno=f.ldept '+
'left join '+
'( select deptno,count(workno) as num5 '+
' from per24010 where left(convert(varchar,indate,111),7)<=left(convert(varchar,'''+maskedit1.text+''',111),7) and leave=0 '+
' group by deptno) as e on z.dno=e.deptno '+
' order by z.dno ';
ADODataSet7.Open;
pplabel166.Caption :=companyname1;
pplabel170.Caption :=pubworkname;
pplabel167.Caption :=copy(MaskEdit1.text,1,4)+'年'+copy(MaskEdit1.text,6,2)+'月'+'人力资源表';
// ppReport9.DeviceType:='Screen';
ppReport9.print;
end;
3:
begin
if not assigned(fullcompanyman) then
fullcompanyman:=tfullcompanyman.create(self);
fullcompanyman.quickrep1.preview;
end;
4:
begin
if not assigned(QRListForm) then
QRListForm:=tQRListForm.create(self);
QRListForm.ADOQuery1.Open;
QRListForm.quickrep1.preview;
end;
5:
begin
adodataset2.Close;
adodataset2.CommandText:='select z.dept,isnull(x1.num,0),isnull(x2.num1,0),isnull(x3.num2,0),isnull(x4.num3,0),isnull(x5.num4,0),(isnull(x1.num,0)+isnull(x2.num1,0)+isnull(x3.num2,0)+isnull(x4.num3,0)+isnull(x5.num4,0)) as num5 from '+
'(select dept from pub05010 ) as z '+
'left join (select a.dept as dept,count(a.cardno) as num from per24010 a,per01010 b where a.prof=b.profname and b.profkind=''主管'' and a.indate between '''+MaskEdit1.text+''' and '''+MaskEdit2.text+''' group by a.dept ) as x1 on z.dept=x1.dept '+
'left join (select a1.dept as dept,count(a1.cardno) as num1 from per24010 a1,per01010 b1 where a1.prof=b1.profname and b1.profkind=''管理员'' and a1.indate between '''+MaskEdit1.text+''' and '''+MaskEdit2.text+''' group by a1.dept) as x2 on z.dept=x2.dept '+
'left join (select a2.dept as dept,count(a2.cardno) as num2 from per24010 a2,per01010 b2 where a2.prof=b2.profname and b2.profkind=''助手'' and a2.indate between '''+MaskEdit1.text+''' and '''+MaskEdit2.text+''' group by a2.dept) as x3 on z.dept=x3.dept '+
'left join (select a3.dept as dept,count(a3.cardno) as num3 from per24010 a3,per01010 b3 where a3.prof=b3.profname and b3.profkind=''间接工'' and a3.indate between '''+MaskEdit1.text+''' and '''+MaskEdit2.text+''' group by a3.dept) as x4 on z.dept=x4.dept '+
'left join (select a4.dept as dept,count(a4.cardno) as num4 from per24010 a4,per01010 b4 where a4.prof=b4.profname and b4.profkind=''直接工'' and a4.indate between '''+MaskEdit1.text+''' and '''+MaskEdit2.text+''' group by a4.dept) as x5 on z.dept=x5.dept '+
'order by z.dept';
adodataset2.Open;
pplabel1.Caption:=copy(MaskEdit1.text,1,4)+'年'+copy(MaskEdit1.text,6,2)+'月份日常管理人事表';
pplabel14.Caption :=companyname1;
pplabel15.Caption :=pubworkname;
ppReport1.DeviceType:='Screen';
ppReport1.print;
end;
6:
begin
adodataset3.close;
adodataset3.CommandText:='select distinct b.deptno,b.dept, isnull((select count(sexname) from per24010 where sexname='+'''男'''+'and deptno= b.deptno and dept=b.dept and leave=0 group by deptno ),0) as nan,isnull((select count(sexname) as nu from per24010 where sexname='+'''女'''+'and deptno=b.deptno and dept=b.dept and leave=0 group by deptno),0) as nu,isnull((select count(sexname) from per24010 where deptno= b.deptno and dept=b.dept and leave=0 ),0) as xiaoji from per24010 b where b.leave=0 order by dept';
adodataset3.open;
pplabel17.caption:=companyname1;
//ppreport2.DeviceType:='screen';
ppreport2.print;
end;
7:
begin
adoold.close;
adoold.commandtext:=' select distinct f.deptno,f.dept,isnull(a.num1,0) num1,isnull(b.num2,0) num2,isnull(c.num3,0) num3,isnull(d.num4,0) num4,isnull(e.num5,0) num5 from ( select deptno,dept from per24010 ) f '+
'left join (select deptno,dept,count(*) as num1 from per24010 where age<20 and leave=0 group by deptno,dept) a '+
'on f.deptno=a.deptno and f.dept=a.dept '+
'left join '+
'(select deptno,dept,count(*) as num2 from per24010 where age<26 and age>=20 and leave=0 group by deptno,dept) b '+
'on b.deptno=f.deptno and f.dept=b.dept '+
' left join '+
'(select deptno,dept,count(*) as num3 from per24010 where age<30 and age>=26 and leave=0 group by deptno,dept) c '+
'on c.deptno=f.deptno and c.dept=f.dept '+
' left join '+
'(select deptno,dept,count(*) as num4 from per24010 where age<40 and age>=30 and leave=0 group by deptno,dept)d '+
'on d.deptno=f.deptno and d.dept=f.dept '+
'left join '+
'(select deptno,dept,isnull(count(*),0) as num5 from per24010 where age>=40 and leave=0 group by deptno,dept) e '+
'on e.deptno=f.deptno and e.deptno=f.dept ';
adoold.Open;
pplabel41.caption:=companyname1;
pplabel80.caption:=pubworkname;
ppreport3.Print;
end;
8:
begin
adoJIGUAN.close;
adoJIGUAN.commandtext:=' select distinct substring(b.provname,1,2) provname,isnull(a.num1,0) num1,isnull(c.num2,0) num2,isnull(e.num3,0) num3 ,b.deptno,b.dept from per24010 b '+
'left join '+
'(select distinct substring(provname,1,2) provname,count(workno) num1,deptno,dept from per24010 where sexname=''女'' and leave=0 group by substring(provname,1,2),deptno,dept) a '+
'on b.deptno=a.deptno and b.dept=a.dept and substring(b.provname,1,2)=substring(a.provname,1,2) '+
'left join '+
'(select distinct substring(provname,1,2) provname,count(workno) num2,deptno,dept from per24010 where sexname=''男'' and leave=0 group by substring(provname,1,2),deptno,dept) c '+
'on b.deptno=c.deptno and b.dept=c.dept and substring(b.provname,1,2)=substring(c.provname,1,2) '+
'left join '+
'(select distinct substring(provname,1,2) provname,count(workno) num3,deptno,dept from per24010 where leave=0 group by substring(provname,1,2),deptno,dept) e '+
'on b.deptno=e.deptno and b.dept=e.dept and substring(b.provname,1,2)=substring(e.provname,1,2) '+
'order by b.deptno,b.provname ';
adoJIGUAN.open;
pplabel43.caption:=companyname1;
pplabel96.caption:=pubworkname;
ppreport4.Print;
end;
9:
begin
adojiguan2.close;
adojiguan2.CommandText :='select distinct substring(b.provname,1,2) provname,isnull(a.num1,0) num1,isnull(c.num2,0) num2,isnull(e.num3,0) num3 from per24010 b '+
'left join '+
'(select distinct substring(provname,1,2) provname,count(workno) num1 from per24010 where sexname=''女'' and leave=0 group by substring(provname,1,2)) a '+
'on substring(b.provname,1,2)=substring(a.provname,1,2) '+
'left join '+
'(select distinct substring(provname,1,2) provname,count(workno) num2 from per24010 where sexname=''男'' and leave=0 group by substring(provname,1,2)) c '+
'on substring(b.provname,1,2)=substring(c.provname,1,2) '+
'left join '+
'(select distinct substring(provname,1,2) provname,count(workno) num3 from per24010 where leave=0 group by substring(provname,1,2)) e '+
'on substring(b.provname,1,2)=substring(e.provname,1,2) '+
' order by b.provname ';
adojiguan2.open;
pplabel53.caption:=companyname1;
pplabel84.caption:=pubworkname;
ppreport5.print;
end;
10:
begin
adodegreedept.close;
adodegreedept.commandtext:=' select distinct substring(b.degreename,1,2) degreename,isnull(a.num1,0) num1,isnull(c.num2,0) num2,isnull(e.num3,0) num3 ,b.deptno,b.dept from per24010 b '+
'left join '+
'(select distinct substring(degreename,1,2) degreename,count(workno) num1,deptno,dept from per24010 where sexname=''女'' and leave=0 group by substring(degreename,1,2),deptno,dept) a '+
'on b.deptno=a.deptno and b.dept=a.dept and substring(b.degreename,1,2)=substring(a.degreename,1,2) '+
'left join '+
'(select distinct substring(degreename,1,2) degreename,count(workno) num2,deptno,dept from per24010 where sexname=''男'' and leave=0 group by substring(degreename,1,2),deptno,dept) c '+
'on b.deptno=c.deptno and b.dept=c.dept and substring(b.degreename,1,2)=substring(c.degreename,1,2) '+
'left join '+
'(select distinct substring(degreename,1,2) degreename,count(workno) num3,deptno,dept from per24010 where leave=0 group by substring(degreename,1,2),deptno,dept) e '+
'on b.deptno=e.deptno and b.dept=e.dept and substring(b.degreename,1,2)=substring(e.degreename,1,2) '+
' order by b.deptno,b.degreename ';
adodegreedept.open;
pplabel60.caption:=companyname1;
pplabel88.caption:=pubworkname;
ppreport6.print;
end;
11:
begin
adodegree.close;
adodegree.commandtext:=' select distinct substring(b.degreename,1,2) degreename,isnull(a.num1,0) num1,isnull(c.num2,0) num2,isnull(e.num3,0) num3 from per24010 b '+
'left join '+
'(select distinct substring(degreename,1,2) degreename,count(workno) num1 from per24010 where sexname=''女'' and leave=0 group by substring(degreename,1,2)) a '+
'on substring(b.degreename,1,2)=substring(a.degreename,1,2) '+
'left join '+
'(select distinct substring(degreename,1,2) degreename,count(workno) num2 from per24010 where sexname=''男'' and leave=0 group by substring(degreename,1,2)) c '+
'on substring(b.degreename,1,2)=substring(c.degreename,1,2) '+
'left join '+
'(select distinct substring(degreename,1,2) degreename,count(workno) num3 from per24010 where leave=0 group by substring(degreename,1,2)) e '+
'on substring(b.degreename,1,2)=substring(e.degreename,1,2) '+
' order by b.degreename ';
adodegree.open;
pplabel70.caption:=companyname1;
pplabel92.caption:=pubworkname;
ppreport7.print;
end;
end;
end;
procedure Tformpersonalreport.ppReport9PreviewFormCreate(Sender: TObject);
begin
tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
TppViewer(tppReport(Sender).PreviewForm.Viewer).ZoomSetting := zsWholePage;
end;
procedure Tformpersonalreport.ppDBText13GetText(Sender: TObject;
var Text: String);
begin
if text='0' then
text:='未婚'
else
text:='已婚';
end;
procedure Tformpersonalreport.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
adodataset1.Close;
ADODataSet7.close;
adodataset2.Close;
formpersonalreport:=nil;
action:=cafree;
end;
procedure Tformpersonalreport.ppReport8PreviewFormCreate(Sender: TObject);
begin
tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
TppViewer(tppReport(Sender).PreviewForm.Viewer).ZoomSetting := zsWholePage;
end;
procedure Tformpersonalreport.ppReport8AfterPrint(Sender: TObject);
begin
adodataset1.Close;
end;
procedure Tformpersonalreport.ppReport9AfterPrint(Sender: TObject);
begin
adodataset7.close;
end;
procedure Tformpersonalreport.FormCreate(Sender: TObject);
begin
combobox1.Text:=copy(datetostr(date),6,2);
maskedit1.Text :=datetostr(Date);
maskedit2.Text :=datetostr(Date);
DateTimePicker1.Date:=date;
DateTimePicker2.Date:=date;
end;
procedure Tformpersonalreport.RadioGroup1Click(Sender: TObject);
begin
case radiogroup1.ItemIndex of
0,2,3,4,5:begin
combobox1.Visible:=false;
edit1.visible:=false;
statictext1.Visible:=false;
end;
1:begin
combobox1.Visible:=true;
statictext1.Visible:=true;
edit1.Visible:=true;
end;
end;
end;
procedure Tformpersonalreport.ppReport1AfterPrint(Sender: TObject);
begin
adodataset2.Close;
end;
procedure Tformpersonalreport.ppReport1PreviewFormCreate(Sender: TObject);
begin
tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
TppViewer(tppReport(Sender).PreviewForm.Viewer).ZoomSetting := zsWholePage;
end;
procedure Tformpersonalreport.DateTimePicker1CloseUp(Sender: TObject);
begin
maskedit1.text:=datetostr(datetimepicker1.date);
end;
procedure Tformpersonalreport.DateTimePicker2CloseUp(Sender: TObject);
begin
maskedit2.text:=datetostr(datetimepicker2.date);
end;
procedure Tformpersonalreport.ppReport2PreviewFormCreate(Sender: TObject);
begin
tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
end;
procedure Tformpersonalreport.ppReport3PreviewFormCreate(Sender: TObject);
begin
tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
end;
procedure Tformpersonalreport.ppReport4PreviewFormCreate(Sender: TObject);
begin
tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
end;
procedure Tformpersonalreport.ppReport5PreviewFormCreate(Sender: TObject);
begin
tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
end;
procedure Tformpersonalreport.ppReport6PreviewFormCreate(Sender: TObject);
begin
tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
end;
procedure Tformpersonalreport.ppReport7PreviewFormCreate(Sender: TObject);
begin
tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
end;
procedure Tformpersonalreport.MaskEdit2KeyPress(Sender: TObject;
var Key: Char);
begin
if key=#13 then
key:=#0;
selectnext(activecontrol,true,true);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?