Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Lista de funcionários x marcação de ponto

Pessoal boa tarde!

Estou precisando demonstrar em Uma Lista Funcionários Que Não bateram o Ponto sem Relógio Ponto da Empresa.

Fonte de Dados:
Tenho uma Lista de Funcionários e also a Lista das marcações.

Fiz uma Importação há Qlik Sentido e interliguei como Chaves (código o Funcionário), porem aparecem APENAS OS Funcionários that bateram o Ponto, gostaria de selecionar Por Exemplo dia tal, EO Relatório tivesse Algum tipo de caso, verificando a Lista de Funcionários na tela e Retornado em uma Coluna a hora da Marcação do Ponto e se Caso nao Marcou aparecer uma Mensagem, falta Marcação.
Problema Que o Qlik Não reconhece OS nulos da forma Que fiz, Alguém Tem alguma Solução OU dica pra me Ajudar Nesse SENTIDO.

Obrigado Por Enquanto.

Labels (1)
14 Replies
Thiago_Justen_

Pedro, tem como postar o script usado?

De qualquer forma,  talvez seja interessante algo do tipo:

Load

SEUS_CAMPOS,

If (IsNull (DATA_PONTO), 'Não Marcou','Marcou') as Flag_Ponto

From SUA_BASE;

E na UI dá pra contar os funcionários que não bateram ponto num dado dia por exemplo;

Count ({<Flag_Ponto={'Não Marcou'}>} Distinct FUNCIONARIO)

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Anonymous
Not applicable
Author

Mandei o codigo do LOAD, consegue dar uma olhada e incrementar a ideia nele para eu testar amanha?

Thiago_Justen_

Desculpa, mas parece que o script não veio.

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Anonymous
Not applicable
Author

Funcionarios:

LOAD

     A as funcionario_codigo,

     B as funcionario_nome,

     C as funcionario_cpf,

     D as funcionario_data_admissao,

     E as funcionario_cargo,

     F as funcionario_local,

     G as funcionario_status_matricula,

     H as funcionario_data_demissao

FROM

****

Marcacoes:

LOAD

    @2 AS funcionario_codigo,

    @3 AS data_batida,

    @4 AS hora_batida

FROM

*****

Concatenate(Marcacoes)

LOAD

    @2 AS funcionario_codigo,

    @3 AS data_batida,

    @4 AS hora_batida

FROM

*****

Thiago_Justen_

Talvez, após seu script principal possa colocar o seguinte:

Right Join (Marcacoes)

Load

         funcionario_codigo

Resident Funcionarios Where funcionario_data_demissao is Null;


Marcacoes_Final:

Load

         *,

        If (isNull (data_batida),'Não Marcou','Marcou') as Flag_Ponto

Resident Marcacoes;

Drop Table Marcacoes;

Não testei pois estou no celular,  mas receio que isso será o suficiente.

Abs e Sucesso!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Anonymous
Not applicable
Author

Fiz a tentativa ele inseriu nos registros a opção "não marcou" para os registros nulos, porém, agora cai em outra situação que pensei de várias formas mas não cheguei a uma conclusão. Vou dar um exemplo para ver se fica mais fácil:
Tenho um funcionário que registra ponto nos seguintes horários: 08:00 12:00 13:00 18:00 (todos os dias)
A minha aplicação precisa validar se o funcionário marcou ponto e quais os horários fazendo inclusive a conta das horas extras e faltas. Alguma dica de como eu posso começar a fazer? Acredito ser algo bem complexo. Pois meu maior problema é cruzar marcação do ponto x qual deveria ser o horário da marcação, isso por dia e por horário.

Consegue me dar uma luz?

Thiago_Justen_

Pedro,

Consegue me enviar uma amostra de dados (ainda que fictícios) para que com base no seu modelo possa desenvolver algo útil pra você?

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Anonymous
Not applicable
Author

Marcações.txt

sequencia / codigo funcionario / data_marcacao / hora_marcacao

000078 01744 26/03/2018 11:58

000079 02158 26/03/2018 11:58

000080 02211 26/03/2018 11:58

000081 00692 26/03/2018 11:59

000082 02284 26/03/2018 11:59

000083 00140 26/03/2018 11:59

000084 02104 26/03/2018 12:00

000085 02179 26/03/2018 12:00

000086 02265 26/03/2018 12:00

000087 00944 26/03/2018 12:00

000088 00771 26/03/2018 12:00

000089 01998 26/03/2018 12:01

000090 02175 26/03/2018 12:01

000091 02200 26/03/2018 12:02

000092 02046 26/03/2018 12:03

000093 02213 26/03/2018 12:04

000094 02155 26/03/2018 12:04

000095 02298 26/03/2018 12:05

000096 02266 26/03/2018 12:07

000097 00178 26/03/2018 12:07

000098 02143 26/03/2018 12:09

000099 02159 26/03/2018 13:00

000100 02310 26/03/2018 13:00

000101 01227 26/03/2018 13:01

000102 02211 26/03/2018 13:04

000103 00140 26/03/2018 13:08

000104 02104 26/03/2018 13:09

000105 02158 26/03/2018 13:12

000106 01744 26/03/2018 13:12

000107 01998 26/03/2018 13:12

000108 00178 26/03/2018 13:13

000109 02200 26/03/2018 13:13

000110 02321 26/03/2018 13:13

000111 02213 26/03/2018 13:14

000112 00692 26/03/2018 13:15

000113 02284 26/03/2018 13:15

000114 02155 26/03/2018 13:18

000115 12238 26/03/2018 13:25

000116 12241 26/03/2018 13:25

000263 02221 27/03/2018 07:58

000264 01731 27/03/2018 07:59

000265 02201 27/03/2018 07:59

000266 02104 27/03/2018 08:00

000267 02284 27/03/2018 08:01

Funcionários TXT:

Contem os dados dos funcionários, difícil te enviar.
segue abaixo fictício
2159 JOAO
2310 JOSE

1997 MARIA

2104 PAULO

etc..

Depois tenho outra tabela onde tenho os horarios que os funcionarios devem cumprir,

Nesse caso ainda não tenho o layout dela, pois não sei como ficaria melhor pro qlik entender.
2159 JOAO 08:00 12:00 13:00 18:00 segunda,terca,quarta,quinta,sexta

2159 JOAO 08:00 12:00  sabado

2310 JOSE 08:00 11:00 13:00 17:00 segunda,terca,quarta,quinta,sexta

2310 JOSE 08:00 11:00 12:00 15:00 sabado

1997 MARIA 08:00 12:00 13:00 18:00 segunda,terca,quarta,quinta,sexta

2104 PAULO 08:00 12:00 13:00 18:00 segunda,terca,quarta,quinta,sexta

etc.. lembrando ainda que vai ter horários em que é sábado e teria que cruzar também

Entendeu mais ou menos?

A ideia é cruzar tudo isso e retornar lista de quem não marcou ponto x horário x dia da semana

Anonymous
Not applicable
Author

Em Excel eu imaginei algo assim, o que for OK eu desconsidero, pois vou tratar apenas o que gerou anomalia.

Ficou mais claro ?

       

DataCargo
CODIGONOMECARGODATAHORA MARCADAHORARIOTEMPOANOMALIA
2160JOSEMOTORISTA27/03/201807:5908:0000:01HORA EXTRA
2160JOSEMOTORISTA27/03/201812:0012:0000:00OK
2160JOSEMOTORISTA27/03/2018Não marcou13:0004:00ATRASO
2160JOSEMOTORISTA27/03/201818:3018:0000:30HORA EXTRA