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

(resolvido) Relatório Mestre/detalhe Com Adoquery


Vivendo&Aprendendo

Pergunta

Olá pessoal...

Seguinte, tenho na minha aplicação alguns relatórios em QuickReport onde utilizo a forma Mestre Detalhe para faze-los, mas o problema é o seguinte, preciso fazer esses relatórios utilizando componentes AdoQuery e não AdoTable ou Tables, preciso da propriedade SQL para efetuar as consultas.

Alguém ai poderia me ajudar a criar eles com AdoQuery ou me informar uma outra possibilidade de fazer essews relatórios?

Agradeço...

Alexandre

Editado por Vivendo&Aprendendo
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0
(...) mas o problema é o seguinte, preciso fazer esses relatórios utilizando componentes AdoQuery e não AdoTable ou Tables, preciso da propriedade SQL para efetuar as consultas.

Alguém ai poderia me ajudar a criar eles com AdoQuery ou me informar uma outra possibilidade de fazer essews relatórios?

Vivendo&Aprendendo, já que ADOTable, Table ou ADOQuery são todos datasets, acho então, que o seu problema é com a construção das instruções SQL, não seria isto?

Em termos de relatório nada muda. O quickreport sempre vai mostrar os dados de acordo com o dataset vinculado a ele.

Link para o comentário
Compartilhar em outros sites

  • 0

Ok Micheus...

Mas eu preciso vincular as duas tabela (no meu caso Saidas e ItensSaidas - Access), uma com a outra pelas propriedades: MasterSource, MasterField. E no AdoQuery não possui essas propriedades.

Essa é a minha dúvida, como utilizar o AdoQuery para fazer esse vinculo.

A minha SQL para a consulta é a seguinte:

DmDados.Saidas.Close;
      DmDados.Saidas.SQL.Clear;
      DmDados.Saidas.SQL.Add('Select * From Saidas');
      DmDados.Saidas.SQL.Add('Where Cliente Like :pCli');
      DmDados.Saidas.SQL.Add('Order By Codigo');
      DmDados.Saidas.Parameters[0].Value := EdtBusca.Text + '%';
      DmDados.Saidas.Open;

Onde DmDados é o Data Module, Saidas é a tabela.

Alexandre

Link para o comentário
Compartilhar em outros sites

  • 0
Mas eu preciso vincular as duas tabela (no meu caso Saidas e ItensSaidas - Access), uma com a outra pelas propriedades: MasterSource, MasterField. E no AdoQuery não possui essas propriedades.
Vivendo&Aprendendo, voce pode utilizar o mesmo conceito da sua consulta - parametrização.

Na tabela ItensSaida (Detail), você parametriza (filtra na where) o campo de ligação com Saidas. Algo assim:

select *
from ItensSaida
where CodSaida = :CodSaida

depois você vincula ela via propriedade DataSource ao seu ADOQuery Saidas (Master). Importante você utilizar o nome do parâmetro igual ao nome do campo na tabela Master. Do contrário não funciona.

Mas como você perceberá, o conceito é exatamente o mesmo de "MasterSource, MasterField".

Vai uma dica: NUNCA utilize o * na cláusula SELECT, a menos que você realmente queira retornar todos os campos da sua tabela. Imagine você precisar de uns 5 campos de uma tabela com uns 30, sendo muitos deles varchar, e tendo a tabela centenas de registros. :blink:

Voce vai fazer trafegar na rede mais informação do que seria necessário, então para piorar (nem tanto), coloque ai umas 20 maquinas fazendo este tipo de consulta.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Micheus...

Me desculpa o encomodo ai de novo cara, mas não consegui fazer, tentei de várias formas, mas não da certo.

Agora abusando da sua boa vontade, teria como você cria um modelo de mestre detalhe com AdoQuery pra e me enviar cara?

É um relatório de saídas onde tenho que separar as comprar por cliente.

Sem mais....

Abraços

Alexandre

Link para o comentário
Compartilhar em outros sites

  • 0

Vivendo&Aprendendo, veja se com este exemplo (bem simples) você (e quem mais se interessar) entende o que eu quis explicar lá no post #4.

O exemplo não é um relatório, é em form com 3 DBGrid's cascateados (Cliente -> Saídas -> Itens de Saída).

Voce vai ver que praticamente não há código, tem comentários na tela e basta que você clique em qualquer linha dos DBGrid's para que os DBGrid's dependentes sejam atualizados - isto é resultado da ligação via DataSource e uso de parametrização!

Para montar o relatório, você não deverá ter qualquer dificuldade, já que o procedimento é similar, exceto que ao invés de DBGrid's, você terá bandas.

Supondo uma consulta onde você traga as Saídas, esta ficaria "vinculada" a banda Detail, e os itens da Saída a uma banda SubDetail; (seria como visualizar o que ocorre na tela como a 2ª e 3ª consulta nos DBGrids).

p.s. Evite criar post's "nulos" como os dois últimos que você postou - podem ser considerados UP's e isto é proibido no forum (ver regras) ;)

ADO_Mestre_Detalhe.zip

Link para o comentário
Compartilhar em outros sites

  • 0

Ae pessoal

Consegui fazer o relatório metre/detalhe, da seguinte forma:

Uma bando como RbDetail, contendo os dados das Saídas;

Um QrSubDetail, contendo os dados dos Itens de Saídas;

Um QrSubDetail, contendo o valor total da Saída;

Um AdoQuery para a tabela de Saídas;

Um AdoTable para a tabela de Itens Saídas;

Conectei os dois pelas propriedades MasterSource e MasterField do AdoTable;

O QrSubDetail dos itens na propriedade DataSet linquei ele com o AdoTable

E o QrSubDetail do valor das saídas linquei com o AdoQuey;

Funciona certinho, mas a primeira consulta que faço ele joga todas as vendas como se fosse somente uma e depois vai agrupando por cliente certinho, e as próximas consultas que faço ele já faz tudo certo.

O que pode ser?

Alexandre

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...