9 Replies Latest reply: Aug 30, 2013 9:43 PM by Pablo Labbe RSS

    Criar grafico dinamico

    Thiago das Chagas cunha

      Pessoal tenho essa informação aqui

       

      dias.png

      precisava gerar um script que no Qlikview criasse essa sequencia maluca  com diretrizes: equipes: A,B,C e D, Dia de semana Segunda a Sexta + Dia do Mês e os periodos ao lado

      que são 07x15, 15x23, 23x07

      Onde a regra é a cada 6 dias folga 2 dias

       

      Alguem pdoe me dar uma luz por odne começar?

        • Re: Criar grafico dinamico
          Yuri Nicolett

          Poderia explicar melhor sua necessidade?

            • Re: Criar grafico dinamico
              Thiago das Chagas cunha

              Bom dia Yuri


              Funciona assim:

               

              Temos a Equipes aqui : A, b, c e D

               

              Eles querem gerar essa grafico dinamico da escala das Equipes Dia, mes e Ano das equipes, usando a regra que a cada 6 dias a equipe ganha dois dias de folga, nao existe questão de feriado nem nada e tem os periodos, no cado sempre trabalha 3 equipes em um dia por que uma esta folgando exemplo

               

              Segunda: 07x15 - Equipe D   - 15x19  - Equipe C - 23x07 - Equipe B  - Equipe A De Folga
              Terça:  07x15 - Equipe D  - 15x19  - Equipe C  - 23x07 - Equipe B - Equipe A De Folga
              Quarta: 07x15 - Equipe D - 15x19  - Equipe C - 23x07 - Equipe A - Equipe B Folga
              Quinta: 07x15 - Equipe D - 15x19  - Equipe C 23x07 - Equipe A - Equipe B Folga
              Sexta: 07x15 - Equipe D -  15x19  - Equipe B 23x07 - Equipe A - Equipe C Folga
              Sabado 07x15 - Equipe D  15x19  - Equipe B 23x07 - Equipe A - Equipe C Folga
              Domingo 07x15 - Equipe C  15x19  - Equipe B 23x07 - Equipe A - Equipe D Folga

               

               

              e Sempre alternando o periodo Quem estava na semana 07x15 na proxima irá para 23x07 , quem estiver na 23x07 , na proxima irá para 15x23 quem estiver na 15x23, na proxima semana irá para 07x15

            • Re: Criar grafico dinamico
              Rodolfo Ferreira

              Rapaz, como fazer tudo automaticamete via QlikView não consegui até o momento, porém, consegui fazer excel. Caso te adiante, segue o arquivo em anexo.

               

              Criei os primeiros 24 dias manualmente e o resto foi só Ctrl+C  Ctrl+V

                • Re: Criar grafico dinamico
                  Thiago das Chagas cunha

                  Bom Dia Rodolfo,

                   

                  Você fez manual não é, se fosse por macro salvaria minha vida é que eles podem mudar de ideia até o final do projeto.

                    • Re: Re: Criar grafico dinamico
                      Fernando Tonial

                      Olá Thiago, fiz um script que aparentemente resolve o seu problema.

                       

                      LET vDataIni = Date('01/01/2013'); //Data incial do calendario
                      LET vDataFim = Date('24/01/2013');//Date(Today()); //Data final do calendario
                      SET vDias = 2; // Numero para alterar a escala
                      LET vTotalDias = Num(vDataFim)-Num(vDataIni)+1;
                      
                      //Criado uma tabela auxiliar com as combinações das 4 equipes
                      OrdensEquipes:
                      LOAD * INLINE [
                          Escalas, Ordem1, Ordem2, Ordem3, Ordem4, Ordem5, Ordem6, Ordem7, Ordem8, Ordem9, Ordem10, Ordem11, Ordem12
                          07x15, D, D, D, C, C, C, B, B, B, A, A, A
                          15x23, C, C, B, B, B, A, A, A, D, D, D, C
                          23x07, B, A, A, A, D, D, D, C, C, C, B, B
                          FOLGA, A, B, C, D, A, B, C, D, A, B, C, D
                      ];
                      
                      LET vNumeroOrdens = 12; // Número de combinações
                      
                      SET vIniDiasEscala = 1;
                      
                      LET vCampoOrdem = 'Ordem'&$(vIniDiasEscala);
                      
                      FOR D=1 to $(vTotalDias)
                          
                          TRACE ($(D)-1);
                          LET vDataCalendario = Date(Num(vDataIni)+($(D)-1));
                          
                          Escala: 
                          LOAD 
                              '$(vDataCalendario)'             AS DataCal,
                              Year('$(vDataCalendario)')         AS Ano,
                              Month('$(vDataCalendario)')     AS Mês,
                              Day('$(vDataCalendario)')         AS Dia,
                              WeekDay('$(vDataCalendario)')     AS DiaSemana,
                              $(vCampoOrdem)                     AS Equipe,
                              Escalas                         AS Escala
                          Resident OrdensEquipes;
                          
                          If (Mod(($(D)),$(vDias)) = 0) Then
                              
                              LET vIniDiasEscala = $(vIniDiasEscala) + 1;
                              
                              If($(vIniDiasEscala)>$(vNumeroOrdens)) Then
                                  LET vIniDiasEscala = 1;    
                              ENDIF
                              
                              LET vCampoOrdem = 'Ordem'&$(vIniDiasEscala);
                              
                          ENDIF
                          
                      NEXT D
                      
                      DROP Table OrdensEquipes;
                      

                       

                      Olha o resultado abaixo.

                       

                      27-08-2013 21-44-40.png

                      Espero que realmente ajude.

                       

                      Abraços.

                      Tonial.