Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
srchagas
Creator III
Creator III

Criar grafico dinamico

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?

1 Solution

Accepted Solutions
fernando_tonial
Partner - Specialist
Partner - Specialist

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.

Don't Worry, be Qlik.

View solution in original post

9 Replies
nicolett_yuri

Poderia explicar melhor sua necessidade?

srchagas
Creator III
Creator III
Author

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

nicolett_yuri

Entendi a bomba!

O que seriam os: 07x15, 23x07 e 15x23?

srchagas
Creator III
Creator III
Author

Seria os periodos do Dia (horas)

Not applicable

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

srchagas
Creator III
Creator III
Author

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.

fernando_tonial
Partner - Specialist
Partner - Specialist

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.

Don't Worry, be Qlik.
srchagas
Creator III
Creator III
Author

Muito Obrigado Fernando

resolveu

pablolabbe
Luminary Alumni
Luminary Alumni

Esse é o cara !!