Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) rave- trabalhar com dois datasets na mesma banda


etspaz

Pergunta

bom dia pessoal, eu tenho um relatorio no rave que exibe o total de vendas por tipo de produto, num determinado periodo.

a propriedade dataview de um band esta apontando para um direct view que esta ligado ao dataset no delphi que traz estas informações.

mas, agora preciso exibir no mesmo band o total de itens devolvidos e valor total de devoluções para os mesmos tipos de produtos, tem um dataset que traz estas informações no delphi, mas no rave não consigo exibir todos os dados deste segundo, porque a banda aponta só para o primeiro dataset.

aí fica + ou - assim.

total vendas por familia: total de devoluções por familia:

acessório: R$ 12.000,00 R$ 56,00

consumo: R$ 21.000,00 R$ 56,00

odonto: R$ 5.580,25 R$ 56,00

observem q o primeiro beleza, mas no total de devoluções só exibe o primeiro registro e quantos forem os registros do total de vendas o total de devoluções se repete.

tentei fazer um select q me desse todos os dados q preciso, assim era só apontar no rave, mas como ainda to aprendendo sql (na verdade sou iniciante em tudo delphi, rave, sql... mas to caminhando), a consulta traz uns resultados estranhos.

se tiver alguma forma de fazer o rave trabalhar com os dois datasets adiantaria bem o meu lado, porque no mesmo relatorio tem outras bandas na mesma situação, é uma especie de mapa diario de todas as atividades.

pensei se tivesse como fazer um loockup entre os datasets no rave, resolveria.

caso alguém ache q é mais facil resolver na query, vou colocar as querys do total de venda e devolução:

--total de devolução nas vendas avista por familia

select

f.descricao,

sum(DI.qtde )qtd_total,

sum(devolucao_item_venda.qtde * itemvenda.vl_unitario) valor

from

DEVOLUCAO_ITEM_VENDA DI

join itemvenda on (devolucao_item_venda.cod_produto = itemvenda.codprod)

join PRODUTOS P on (P.codprod = DI.cod_produto)

join familia F on (familia.codgrupo = produtos.codgrupo)

join DEVOLUCAO_VENDA DV on (DI.cod_devolucao = DV.cod_devolucao)

join VENDAS V on (DV.codvenda = V.codvenda)

join CLIENTES C on (V.codcliente = C.codcliente)

where

DV.dt_devolucao between '20.02.2007' and '20.02.2008'

and V.tipovenda = 1

group by F.descricao

--total de vendas a vista por familia

select sum(itemvenda.qtde * itemvenda.vl_unitario) VL_TOT_VEN_VISTA_FAM,

familia.descricao

from familia

join produtos on (familia.codgrupo = produtos.codgrupo)

join itemvenda on (produtos.codprod = itemvenda.codprod)

join vendas on (itemvenda.codvenda = vendas.codvenda) where vendas.tipovenda = 1

and (vendas.dtvenda between '25.02.2007' and '25.02.2008')

group by familia.descricao'

vlw

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'etspaz'!

Você não precisa ter os dois datasets na mesma banda.

Na banda de detalhe, antes de ela ser impressa ON BEFORE PRINT, execute a segunda query para a busca conforme a cláusula where que você deseja. O resultado você passa para um label do report.

Fará esta chamada conforme o número de linha a serem executadas na primeira query (a que está ligada ao report).

Entendeu?

Link para o comentário
Compartilhar em outros sites

  • 0
Oi, 'etspaz'!

Você não precisa ter os dois datasets na mesma banda.

Na banda de detalhe, antes de ela ser impressa ON BEFORE PRINT, execute a segunda query para a busca conforme a cláusula where que você deseja. O resultado você passa para um label do report.

Fará esta chamada conforme o número de linha a serem executadas na primeira query (a que está ligada ao report).

Entendeu?

olá Denis Courcy, obrigado por responder e sobre a sua dica, sou iniciante como disse, spu iniciante, então tenho algumas duvidas:

1-o label q receberá o resultado eu posso colocar na mesma banda?pra exibir assim:

acessório: R$ 12.000,00 R$ 56,00

consumo: R$ 21.000,00 R$ 56,00

odonto: R$ 5.580,25 R$ 56,00

os valores da direita seriam o label.

2-no evento on before print posso colocar uma instrução sql normalmente pra executar?

3-

Fará esta chamada conforme o número de linha a serem executadas na primeira query (a que está ligada ao report).
como eu faria isto?

4-como faço o label receber o resultado da consulta?

mais uma vez, obrigado por me atender e me desculpe pela avalanche de perguntas, mas sou estagiario a pouco tempo na empresa, mas me passaram tarefas de programador ... como manutenção de sistema q está em produção a 4 anos.

por enquanto vou tentando aqui,

vlw.

Editado por etspaz
Link para o comentário
Compartilhar em outros sites

  • 0

consegui resolver no delphi mesmo.

no dataset do total de vendas adicionei um campo do tipo loockup, fazendo loockup com o dataset do total de devolução.

assim, no rave foi só atualizar o data view, desta forma no rave com um unico data view trago os valores q preciso dos dois datasets usados no delphi.

deu pra entender.

agradeço ao Denis pela disposição em me ajudar, mas se quiser responder às minhas duvidas sobre como trabalhar com codigo no rave, seria bom, pois seria mais um aprendizado, vlw.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...