PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum QRBAND... Please!!!!!! #185473

01/10/2003

0

Caros colegas,

O meu problema é complexo. Os registro q quero que apareçam na QRBand pertencem a uma tabela, e ao mesmo campo. Tanto entrada como saída são registrados no mesmo campo da tabela. O problema é que preciso mostrar nuam QRBand, 2 QRDBText, e em cada um deles o mesmo campo, só que um é entrada e o outro é saída. Se eu colocar num único SELECT eles aparecem iguais, por isso precisei colocar duas Query, para que cada uma me mostre resultados distintos do mesmo campo. ( Entrada e Saída). Quando eu coloco na propriedade ´DataSet´ da QRBand (SubDatail) uma Query, ela me mostra tuco ok, conforme meu select,mas a outra mostra o primeiro registro e o repete. Enfim, meu problema não é SQL e sim conseguir que numa mesma QRBand (SubDetail) apareça os registro dessa tabela e que em cada QRDBText linkado num mesmo campo me mostre dados distintos.

exemplo das consultas:

with Q2 do
begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM a2003, funcionario, horarios´);
SQL.Add(´WHERE funcionario.id =:Pid´);
SQL.Add(´and funcionario.horario = horarios.id´);
SQL.Add(´and a2003.cracha = funcionario.cracha´);
SQL.Add(´and extract(month from data) =:pdata´);
SQL.Add(´and a2003.horario <= horarios.h_entrada´);
SQL.Add(´group by a2003.data, a2003.horario´);
SQL.Add(´order by a2003.data,a2003.horario´);
ParamByName(´Pid´).Value := StrToInt(txtCampo.Text);
ParamByName(´Pdata´).AsInteger := StrToInt(txtMes.KeyValue);
Open;
end;

with Q3 do
begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM a2003, funcionario, horarios´);
SQL.Add(´WHERE funcionario.id =:Pid´);
SQL.Add(´and funcionario.horario = horarios.id´);
SQL.Add(´and a2003.cracha = funcionario.cracha´);
SQL.Add(´and extract(month from data) =:pdata´);
SQL.Add(´and a2003.horario >= horarios.h_saida´);
SQL.Add(´group by a2003.data, a2003.horario´);
SQL.Add(´order by a2003.data,a2003.horario´);
ParamByName(´Pid´).Value := StrToInt(txtCampo.Text);
ParamByName(´Pdata´).AsInteger := StrToInt(txtMes.KeyValue);
Open;
end;

Voltar ao Topo


Aroldo Zanela



Registrado em: Quinta-Feira, 20 de Fevereiro de 2003
Mensagens: 1667
Localização: Brasília - DF
Enviada: Ter Set 30, 2003 10:14 am Assunto:

--------------------------------------------------------------------------------

Colega,

Coloca a estrutura da tabela para que possamos entender melhor o problema. A princípio, me parece que poderemos resolver utilizando o Union All para ter as duas consultas na mesma query, pois o QR só pode rolar o cursor de banco em uma delas. Por meio dos manipuladores de evento ´OnPrint´ faremos os ajustes de impressão.

Aguardamos a estrutura.
_________________
Atenciosamente,

[]´s
Aroldo Zanela (Moderador)

´Parece que é difícil, mas não é fácil não...´


Voltar ao Topo


Joey



Registrado em: Quinta-Feira, 10 de Abril de 2003
Mensagens: 11

Enviada: Ter Set 30, 2003 12:49 pm Assunto:

--------------------------------------------------------------------------------

Caro Aroldo,

Obrigado por se interessar no meu problema, vou tentar descrever a estrutura das tabelas o melhor possível...
Essas são as algumas tabelas desse banco, são as necessarias p/ esse relatório. Vale ressaltar que, não fui eu quem criou esse banco, apenas estou continuando o projeto. Não posso refazer o banco, pois, somando todos os registros das tabelas ultrapassam os 30.000 registros.


Na tabela ´funcionario´ o campo horario faz referencia ao campo id da tabela horarios.

A tabela ´horarios´ contem registros dos horarios dos turnos.
ex: 7:30 às 13:30
8:00 às 12:00

Na tabela ´a2003´ são salvos os regsitros de ponto, quero dizer que, quando o funcionario passa o cartão na máquina ela grava o dia e a hora.
são gravados no mesmo registro, depois quando ele vai sair passa novamente e daí dependendo do horario q ele passar e do seu horario de turno (horario de trabalho) é que preciso q ele separe p/ mim no relatório.

Ahhhh!!!! O banco que uso é MySQL...


Desde já gradeço!!!!!!!


FUNCIONARIO

ID INT PRIMARY KEY
NOME VARCHAR(60)
CRACHA VARCHAR(20)
HORARIO INT
...


HORARIOS

ID INT PRIMARY KEY
H_ENTRADA TIME
H_SAIDA TIME


A2003

ID INT PRYMARY KEY
CRACHA VARCHAR(20)
DATA DATE
HORARIO TIME


Joey

Joey

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar