7 Replies Latest reply: Feb 18, 2015 8:39 AM by Gustavo Amorim RSS

    Cenario Intervalo de Datas

      Bom dia a todos!

      Estou com uma dúvida ao montar um cenário

       

      Estou desenvolvendo um Painel no Layout no qual no meu banco de dados possuo as informações (Abaixo:

      ( os campos que estão em amarelo eu coloquei direto na carga no QV com as funções YEAR, Month, Day

       

      Cadastro

      Nome

      Admissão

      Ano Admissão

      Mês Admissão

      Dia Admissão

      Data Afastamento

      Ano Afastamento

      Mês Afastamento

      Dia Afastamento

      1

      A

      03/09/2012

      2012

      9

      3

      17/09/2014

      2014

      9

      17

      2

      B

      20/09/2012

      2012

      9

      20

      01/08/2013

      2013

      8

      1

      3

      C

      20/09/2012

      2012

      9

      20

      00/00/0000

      0

      0

      0

      4

      D

      01/10/2012

      2012

      10

      1

      00/00/0000

      0

      0

      0

      5

      E

      20/09/2012

      2012

      9

      20

      00/00/0000

      0

      0

      0

      6

      F

      10/07/2012

      2012

      7

      10

      19/08/2013

      2013

      8

      19

      7

      G

      16/04/2013

      2013

      4

      16

      29/05/2013

      2013

      5

      29

      8

      H

      22/05/2013

      2013

      5

      22

      00/00/0000

      0

      0

      0

      9

      I

      17/06/2013

      2013

      6

      17

      00/00/0000

      0

      0

      0

      10

      J

      02/09/2013

      2013

      9

      2

      02/01/2015

      2015

      1

      2

      11

      K

      18/09/2013

      2013

      9

      18

      00/00/0000

      0

      0

      0

      12

      L

      10/11/2014

      2014

      11

      10

      00/00/0000

      0

      0

      0

      13

      M

      10/11/2014

      2014

      11

      10

      00/00/0000

      0

      0

      0

       

       

       

      • Gostaria de montar um gráfico onde o mesmo me traria por ano e/Ou Mês todos os empregados ativos . Dúvida: Qual seria a melhor forma de fazer esta limitação por período como por Ex.: Jan/2014 quem estão ativos?
      • Gostaria também de ter um lista dos ANOS e uma lista de MES para que fosse possível a seleção independente. Dúvida: Tenho que criar uma lista independente tipo InLine? Se sim como associá-la? Se não qual seria a melhor solução?

       

       

       

      Outra coisa seria fazer um gráfico tipo esse abaixo separado por idade tenho a data de nascimento no campo Nascimento :

       

       

      Age Distribution.png

      Como faço para realizar estas separações por intervalo de anos? Da mesma forma teria que associar o intervalo de seleção tipo que estas informações estivessem associados com os ativos do período selecionado tipo Janeiro/2014 .

       

      Sei que são muitas perguntas mas acredito que as associações irão acontecendo com o tempo e com estas definições vou conseguir dar continuidade no meu projeto.

       

      Desde já agradeço,

       

      Abraço,

       

      Gustavo

        • Re: Cenario Intervalo de Datas
          Alessandro Furtado

          Boa tarde Gustavo.

           

          Trabalho com modelos de RH e particularmente, acredito que criar mês a mês os registros vale a pena.

          Assim, se o funcionário foi admitido em 01/2014, sera criado um registro com ano e mês para 01/2014 , 02/2014 .....01/2015 , 02/2015 ou ate o ano e mês da demissão.  Assim em qualquer mês e ano que for selecionado, você saberá quais os funcionários que estavam naquele mês ativos e os demitidos. Um menos o outro te dará os ativos.

           

          Como fazer?    While e iterno().

          Segue um exemplo de código.

           

          //========================================================================

          TmpEscala:

          LOAD

              NUMEMP & '-' & NUMCAD     as Funcionario_Codigo,

              date(DATALT,'DD/MM/YYYY') as FuncEscala_Data,

              CODESC                    as FuncEscala_Codigo,

              if(Previous(NUMEMP & '-' & NUMCAD)=NUMEMP & '-' & NUMCAD,Previous(DATALT),Today()) as FuncEscala_DataFim ;

          SQL SELECT NUMEMP,NUMCAD,DATALT,CODESC FROM "Vetorh".dbo.R038HES order by NUMCAD,DATALT DESC;

          //

          ResumoEscala:

          LOAD

               Funcionario_Codigo,

               year(AddMonths(FuncEscala_Data,IterNo()-1)) & '.' & num(month(AddMonths(FuncEscala_Data,IterNo()-1)),'00')  AS Escala_Periodo,

               FuncEscala_Codigo                                                                                           as Escala

          Resident TmpEscala

          While  num(AddMonths(FuncEscala_Data,IterNo()-1)) <= num(FuncEscala_DataFim);

          //========================================================================

           

           

          Neste caso eu leio em ordem de funcionário e data descendente (importante isto...) e vejo sobre o registro anterior ,se do mesmo funcionário a data, senão a atual.  Como lê em ordem descendente ficaria como exemplo assim

           

          Funcionário   Data

          Alessandro    01/01/2015

          Alessandro    01/06/2014

           

          Então, ao ler Alessandro 01/01/2015, como o previous não vai ser verdadeiro pois não tem, a data sera a atual. Ao ler Alessandro 01/06/2015, o previous dará como data o 01/01/2015, gerando registros mês a mês de 06/2014 a 01/2015

           

           

           

          AMF

            • Re: Cenario Intervalo de Datas
              Alessandro Furtado

              No caso da idade, podemos ter duas. uma a atual e a outra no ano e mes selecionado.   Imagina voce selecionar Janeiro de 2014.  As idades deveriam estar calculadas para Janeiro de 2014 (meu ponto de vista...).  Se for assim

               

                  floor(age(makedate(Ano,Mes),Dt_Nasc))  as Folha_Func_Idade

               

              sendo que o Ano e Mes seriam os gerados mes a mes (que no exemplo acima seria o campo Escala_Periodo para efeito de entendimento...... )

                • Re: Cenario Intervalo de Datas

                  Bom Alessandro,

                   

                  Esta questão da Data não entendi onde posso colocar esse comando... e quando você fala que o ano e Mês seriam os gerados mês a mês você quer dizer o campo gerado junto que o no Escala_Período ficou assim

                   

                  2014.01

                   

                  utilizei o código conforme abaixo:

                   

                   

                   

                  LOAD

                  Cadastro as Funcionario_Codigo,

                  date(Admissão,'DD/MM/YYYY') as FuncEscala_Data,

                  //CODESC as FuncEscala_Codigo,

                  if(Previous(Cadastro)=Cadastro,Previous(Admissão),Today()) as FuncEscala_DataFim ,

                   

                  Não utilizei o CODESC as FuncEscala_Código isso influencia em algo no meu cenário?

                   

                   

                   

                  Outra coisa como consigo fazer esta quebra abaixo para este tipo de gráfico?

                   

                  Abraço,

                   

                  GustavoAge Distribution.png

              • Re: Cenario Intervalo de Datas

                Bom dia Alessandro,

                 

                Muito obrigado!

                 

                Abraço,

                 

                Gustavo Amorim