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 + -
显示快捷键?