Relatorio QuickReport

Delphi

06/02/2010

Olá amigos delphianos....

Estou precisando de criar um relatorio de espelho de ponto eletronico, porem estou sem saber como vou fazer.

Tenho 6 tabelas com as seguintes estruturas:

FUNCIONARIO

ID_FUNC integer NOT NULL (chave primaria)
NOME
...

CARGAHORARIA

ID_CARGAHORARIA      INTEGER NOT NULL,
CODIGO
TIPO    
ENTRADA
ALMOCO
RETORNO
SAIDA    
HRDIARIA
HRSEMANAL
HORAEXTRA
DOM
SEG           
TER           
QUA          
QUI           
SEX           
SAB           

PRESENCA

ID_FUNC integer NOT NULL +
DATA date NOT NULL (chave primaria)
DATA
HR_ENTRADA
HR_ALMOCO
HR_RETORNO
HR_SAIDA

FALTAS

CODIGO integer NOT NULL (chave primaria)
ID_FUNC integer NOT NULL (chave secundaria)
DATAINICIAL
DATAFINAL
MOTIVO

OCORRENCIAS

CODIGO integer NOT NULL (chave primaria)
ID_FUNC integer NOT NULL (chave secundaria)
DATA
DESCRICAO

FERIADO

CODIGO integer NOT NULL (chave primaria)
DATA
DESCRICAOFERIADO

Bom agora vem o grande lance.... preciso fazer um relacionamento entre todas essas tabelas para gerar um relatorio basicamente assim..

DATA
DIA SEMANA
ENTRADA
ALMOCO
RETORNO
SAIDA
HR TRABALHADAS
HR FALTAS
HR EXTRA
05/02/2010
SEXTA-FEIRA
08:00:0012:30:0014:00:0019:00:0007:30:00
00:30:00
01:00:00
06/02/2010
SABADO
08:00:00
12:00:00
14:00:00
18:00:00
08:00:00
00:00:00
00:00:00
07/02/2010
DOMINGO
-----------
-----------
-----------
-----------
00:00:00
00:00:00
00:00:00
08/02/2010
FERIADO
--------------------------------------------00:00:0000:00:0000:00:00

Como fazer isso caso o usuario selecione o periodo 01/02/2010 a 28/02/2010, deve listar todos os dias desse periodo e na coluna DATA do relatorio deve listar todos os dias do periodo selecionado, na coluna DIA SEMANA deve listar se qual dia da semana é aquela DATA, se for dia util e se na tabela de cargahoraria estiver marcado como dia que trabalha e nao for feriado (isso deve ser comparado nas tabelas de cargahoraria e na tabela feriado) preenche as colunas ENTRADA, ALMOCO, RETORNO e SAIDA e calcula as demais horas (isso ja esta funcionando).

Espero que deu para todos entenderem e possam me ajudar o mais rapido possivel.

Desde ja agradeço,

Iramar
ADS
Iramar Junior

Iramar Junior

Curtidas 0

Respostas

Alison Bissoli

Alison Bissoli

06/02/2010

Faça essa consulta utilizando um clientdataset, com os devidos inner joins para pegar o que quizer, no relatório do quick você coloca um qrband e seta para o tipo qrdetail e coloca os campos a serem impressos. Relacione o qrband do tipo detail criado ao seu clientdataset dos resultados da sua pesquisa. 
GOSTEI 0
Perivaldo Martins

Perivaldo Martins

06/02/2010

Você poderia fazer as junções dos dados, trazendo-os prontos da sua query para o seu relatorio.   Eu particularment, substituiria os campos domingo, segunda, etc... pelo campo dia da semana ou talvez nem o colocasse optando por um campo virtual, mas isso é critério de cada um.   Pesquise sobre INNER     Boa sorte e bons códigos.
GOSTEI 0
POSTAR