Dúvida --gt; Montar SQL e Relatório
Bom dia galera, é o seguinte:
Preciso montar um relatório mais ou menos no seguinte layout
[color=blue:d5106017e1]
Tabelas
Alunos --> Codigo, Nome, ...
Professores --> Codigo, Nome, ...
Turmas --> Codigo, Dia, Horario, ...
TurmasAlunos --> CodTurma, CodAluno
Pagamentos --> Codigo, CodAluno, DtPagamento, ...
Cheques --> Codigo, CodAluno, DtaCredito, ...[/color:d5106017e1]
A ideia do relátorio é a seguinte, a principio uma chamada normal de escola(academia) mesmo, com os itens básicos ali listados. Uma parte do esrosco é que o cliente quer que na coluna ULTCHQ esteja a data do ultimo cheque que aquele aluno deu (DtaCredito(Maior Data)), e na coluna ULTPAGTO esteja a data do ultimo pagamento(DtPagamento(Maior Data)) efetuado pelo aluno(se o aluno trabalha com cheque aparece na coluna do cheque, se o aluno trabalha com pagamento, aparece em pagto ou, se for o caso, nos dois, sempre mostrando o ultimo, ou melhor, com maior data).
Entao as duvidas são, como montar esse SQL, e, menos importante mas, como montar isso no fortes report? Usando um relatorio simples mesmo???
Galera, estou precisando mto, se alguem puder ajudar eu vou agradecer mto...
Abraços
Preciso montar um relatório mais ou menos no seguinte layout
----------------------------------------------------------------------- Professor - Dia - Horário - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Aluno------|UltChq----| UltPgto--|Presenças Bla bla bla|----------|06/01/2006|XXXXXXXXXX Ble ble ble|03/02/2006|----------|X X X X X X X Bli bli bli|----------|20/12/2005|X X X Blo blo blo|20/03/2006|----------|XXXXXXXXXXX -----------------------------------------------------------------------
[color=blue:d5106017e1]
Tabelas
Alunos --> Codigo, Nome, ...
Professores --> Codigo, Nome, ...
Turmas --> Codigo, Dia, Horario, ...
TurmasAlunos --> CodTurma, CodAluno
Pagamentos --> Codigo, CodAluno, DtPagamento, ...
Cheques --> Codigo, CodAluno, DtaCredito, ...[/color:d5106017e1]
A ideia do relátorio é a seguinte, a principio uma chamada normal de escola(academia) mesmo, com os itens básicos ali listados. Uma parte do esrosco é que o cliente quer que na coluna ULTCHQ esteja a data do ultimo cheque que aquele aluno deu (DtaCredito(Maior Data)), e na coluna ULTPAGTO esteja a data do ultimo pagamento(DtPagamento(Maior Data)) efetuado pelo aluno(se o aluno trabalha com cheque aparece na coluna do cheque, se o aluno trabalha com pagamento, aparece em pagto ou, se for o caso, nos dois, sempre mostrando o ultimo, ou melhor, com maior data).
Entao as duvidas são, como montar esse SQL, e, menos importante mas, como montar isso no fortes report? Usando um relatorio simples mesmo???
Galera, estou precisando mto, se alguem puder ajudar eu vou agradecer mto...
Abraços
Lucianobarreto
Curtidas 0
Respostas
Motta
24/01/2006
Qual BD ? Suportar Functions ?
Com Funcions ficaria mais simples criar o rel (não sei se seria rápido)
Outra solução (para db´s sem functions) seria uma tabela temporária e uma rotina para monta-la.
Espero ter ajudo, qualquer coisa fale.
Com Funcions ficaria mais simples criar o rel (não sei se seria rápido)
Outra solução (para db´s sem functions) seria uma tabela temporária e uma rotina para monta-la.
Espero ter ajudo, qualquer coisa fale.
GOSTEI 0
Lucianobarreto
24/01/2006
Qual BD ? Suportar Functions ?
Com Funcions ficaria mais simples criar o rel (não sei se seria rápido)
Outra solução (para db´s sem functions) seria uma tabela temporária e uma rotina para monta-la.
Espero ter ajudo, qualquer coisa fale.
Estou usando, FB 1.5 e Ibx...
Sobre criar uma tabela temporaria, eu estaria criando ela, inserindo os dados necessarios(primeiro aluno --> add nome, seleciona maior data - add data, ..., segundo aluno, ´mesmo procedimento´, ...)
seria mais ou menos isso?
Vlw
GOSTEI 0
Motta
24/01/2006
Sim , mas FB suporta Function e esta creio pode ser usada como uma coluna , seria algo assim (não sei a sintaxe exata)
create or replace function UltCheque (pcodcli number) returns date
begin
select data from cheques where .....;--busca ultimo cheque
Returns dtultcheque;
end;
mais ou menos isto, veja como criar Functions no FB.
Assim o select fica mais simples
select codcli,nome,UltCheque (codcli) ultcheque
from clientes ....
Este mesmo conceito poderia usar para a ultdata de pagamento e a string de presença (não ficou claro)
Uso muito isto para simplificar (e tornar possíveis) relatórios no Oracle.
create or replace function UltCheque (pcodcli number) returns date
begin
select data from cheques where .....;--busca ultimo cheque
Returns dtultcheque;
end;
mais ou menos isto, veja como criar Functions no FB.
Assim o select fica mais simples
select codcli,nome,UltCheque (codcli) ultcheque
from clientes ....
Este mesmo conceito poderia usar para a ultdata de pagamento e a string de presença (não ficou claro)
Uso muito isto para simplificar (e tornar possíveis) relatórios no Oracle.
GOSTEI 0
Lucianobarreto
24/01/2006
Sim , mas FB suporta Function e esta creio pode ser usada como uma coluna , seria algo assim (não sei a sintaxe exata)
create or replace function UltCheque (pcodcli number) returns date
begin
select data from cheques where .....;--busca ultimo cheque
Returns dtultcheque;
end;
mais ou menos isto, veja como criar Functions no FB.
Assim o select fica mais simples
select codcli,nome,UltCheque (codcli) ultcheque
from clientes ....
Este mesmo conceito poderia usar para a ultdata de pagamento e a string de presença (não ficou claro)
Uso muito isto para simplificar (e tornar possíveis) relatórios no Oracle.
Blz, entendi e vou testar aqui.. nao tenho experiencia com functions se eu entender e fizer funcionar legal, caso contrario gostei da ideia de uma tabela temporaria...
vlw
GOSTEI 0