Jump to content
Fórum Script Brasil
  • 0

Informações precisa no relatório.


robinhocne

Question

Bom dia,

Como eu faço para aparecer um relatório tipo detalhado da pessoa, digo, tenho todas as parcelas ou cheques do cliente lançado ai quero que apareça todas elas no relatório tipo assim:

Histótrico > nesse histórico está dizendo qual parcela é se é a primeiro segunda etc, então queria que ficasse assim:

Histórico          Vencimento        Valor        Dt de Pagamento

1ªparcela         10/01/2008       100,00       09/01/2008
2ªparcela         10/02/2008       100,00       12/02/2008
3ªparcela         10/03/2008       100,00       
4ªparcela         10/04/2008       100,00

Como faço em questão de visual e codigos......?

Bom eu fiz assim:

Coloquei uma banda rbDetai, onde tem os dados do cliente e uma subDetail para mostrar tipo em baixo desses dados os dados das parcelas quer dizer a quantidade, mas ai não aparece nada será qiue estou montando certo?

Edited by robinhocne
Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0
Coloquei uma banda rbDetai, onde tem os dados do cliente e uma subDetail para mostrar tipo em baixo desses dados os dados das parcelas quer dizer a quantidade, mas ai não aparece nada será qiue estou montando certo?

Tudo depende de como esta organizado os dados... por exemplo: os dados do cliente estão em uma tabela e as parcelas em outro ? os dados estão na mesma tabela ou são selecionados atraves de SQL ?

o correto seria usar uma banda QRGroup para os dados do cliente e uma banda rbDetail para as parcelas.

abraço

Link to comment
Share on other sites

  • 0
o correto seria usar uma banda QRGroup para os dados do cliente e uma banda rbDetail para as parcelas.
ou, uma banda Detail para os dados do cliente e uma Sub-detail para as parcelas...

Bom deixei dessa maneira que você citou mesmo, a instrução para mostrar os dados de lancamento onde os campos estão na banda subdetail:

With DtmIza.QryAluLan do
       Begin
          Close;
          Sql.Clear;
          Sql.Add ('Select Codigo, Aluno, Vencimento, Valor, Emissao, Pagamento, Historico, Historico1, Agencia,'
                   +'Conta, Cheque, Tipo From Lancamento');
          Open;
       end;
e os dados que mostra os dados buscados por alunos:
With DtmIza.QryIza do
      Begin
         Close;
         Sql.Clear;
         Sql.Add ('Select Codigo, Nome, DtCadastro, Categoria, Servicos From Alunos');
         Sql.Add ('where (DtCadastro >= :d1) and (DtCadastro <= :d2)');
         ParambyName('d1').value  := FormatDateTime ('dd/mm/yyyy' , StrToDate (TxtDataInicial.Text));
         ParambyName('d2').value  := FormatDateTime ('dd/mm/yyyy' , StrToDate (TxtDataFinal.Text));
         Open;
      end;

e não está mostrando nada.

Link to comment
Share on other sites

  • 0

Robinhocne, parece-me que quando você fala "dados dos clientes" está se referindo a "dados dos alunos", certo?!

Primeiramente, você tem que lembrar que as informações tem que ter uma certa relação, não é mesmo?!

Voce tem um consulta que retorna todos os alunos cadastrados em um período e uma outra que retorna todos os lançamentos gravados em seu banco de dados - sem qualquer restrição/relação com os alunos. :blink:

Voce quer um relatório que mostre os dados dos alunos filtrados no período e que, para cada aluno, liste suas respectivas parcelas. Não é mesmo?!

Se é (e acredito que deva ser), para cada aluno que tiver sua informação impressa, deverá ser feita a consulta nos lançamentos e localizadas suas parcelas. Como fazemos isto? Justamente utilizando o campo de relacionamento como filtro na cláusula WHERE da consulta nos lancamentos, é claro.

Seguindo esta abordagem, o dataset origem dos dados de seu relatório deverá ser o que lista os alunos. Acredito que não apareceu nada em seu relatório, justamente porque você pode não ter inicializado a propriedade DataSet do QuickReport (acho que é este que você está utilizando).

Este dataset, será origem dos dados apresentados na sua banda detalhe, enquanto que o dataset de lancamentos será a origem dos dados para a banda sub-detail (utilize a propriedade DataSet desta banda para "dizer" isto).

Dicas:

1) na consulta por período de datas, dê preferência a utilizar between ao invés de ">=" e "<=";

2) na passagem de parâmetros, force o tipo de dados do parâmetro fazendo uso de As<tipo>;

...
Sql.Add ('where DtCadastro between :d1 and :d2');
ParambyName('d1').AsDate  := StrToDate (TxtDataInicial.Text);
ParambyName('d2').AsDate  := StrToDate (TxtDataFinal.Text);
...

Veja se você avança um pouco mais.

Link to comment
Share on other sites

  • 0
Robinhocne, parece-me que quando você fala "dados dos clientes" está se referindo a "dados dos alunos", certo?!

Primeiramente, você tem que lembrar que as informações tem que ter uma certa relação, não é mesmo?!

Voce tem um consulta que retorna todos os alunos cadastrados em um período e uma outra que retorna todos os lançamentos gravados em seu banco de dados - sem qualquer restrição/relação com os alunos. :blink:

Voce quer um relatório que mostre os dados dos alunos filtrados no período e que, para cada aluno, liste suas respectivas parcelas. Não é mesmo?!

Se é (e acredito que deva ser), para cada aluno que tiver sua informação impressa, deverá ser feita a consulta nos lançamentos e localizadas suas parcelas. Como fazemos isto? Justamente utilizando o campo de relacionamento como filtro na cláusula WHERE da consulta nos lancamentos, é claro.

Seguindo esta abordagem, o dataset origem dos dados de seu relatório deverá ser o que lista os alunos. Acredito que não apareceu nada em seu relatório, justamente porque você pode não ter inicializado a propriedade DataSet do QuickReport (acho que é este que você está utilizando).

Este dataset, será origem dos dados apresentados na sua banda detalhe, enquanto que o dataset de lancamentos será a origem dos dados para a banda sub-detail (utilize a propriedade DataSet desta banda para "dizer" isto).

Dicas:

1) na consulta por período de datas, dê preferência a utilizar between ao invés de ">=" e "<=";

2) na passagem de parâmetros, force o tipo de dados do parâmetro fazendo uso de As<tipo>;

...
Sql.Add ('where DtCadastro between :d1 and :d2');
ParambyName('d1').AsDate  := StrToDate (TxtDataInicial.Text);
ParambyName('d2').AsDate  := StrToDate (TxtDataFinal.Text);
...

Veja se você avança um pouco mais.

Não deu certo, não!

Link to comment
Share on other sites

  • 0
Robinhocne, parece-me que quando você fala "dados dos clientes" está se referindo a "dados dos alunos", certo?!

Primeiramente, você tem que lembrar que as informações tem que ter uma certa relação, não é mesmo?!

Voce tem um consulta que retorna todos os alunos cadastrados em um período e uma outra que retorna todos os lançamentos gravados em seu banco de dados - sem qualquer restrição/relação com os alunos. :blink:

Voce quer um relatório que mostre os dados dos alunos filtrados no período e que, para cada aluno, liste suas respectivas parcelas. Não é mesmo?!

Se é (e acredito que deva ser), para cada aluno que tiver sua informação impressa, deverá ser feita a consulta nos lançamentos e localizadas suas parcelas. Como fazemos isto? Justamente utilizando o campo de relacionamento como filtro na cláusula WHERE da consulta nos lancamentos, é claro.

Seguindo esta abordagem, o dataset origem dos dados de seu relatório deverá ser o que lista os alunos. Acredito que não apareceu nada em seu relatório, justamente porque você pode não ter inicializado a propriedade DataSet do QuickReport (acho que é este que você está utilizando).

Este dataset, será origem dos dados apresentados na sua banda detalhe, enquanto que o dataset de lancamentos será a origem dos dados para a banda sub-detail (utilize a propriedade DataSet desta banda para "dizer" isto).

Dicas:

1) na consulta por período de datas, dê preferência a utilizar between ao invés de ">=" e "<=";

2) na passagem de parâmetros, force o tipo de dados do parâmetro fazendo uso de As<tipo>;

...
Sql.Add ('where DtCadastro between :d1 and :d2');
ParambyName('d1').AsDate  := StrToDate (TxtDataInicial.Text);
ParambyName('d2').AsDate  := StrToDate (TxtDataFinal.Text);
...

Veja se você avança um pouco mais.

Não deu certo, não!

Bom fiz assim, coloquei a primeira banda as das informações como columheader, e a segunda como detail e ai me mostrou mas aparece so de alguns e so um valor, será que tem que fazer ums filtro das tabelas alunos para as lancamentos informando o aluno, mas a busca é só de datas, como faço isso?

Link to comment
Share on other sites

  • 0
(...), será que tem que fazer ums filtro das tabelas alunos para as lancamentos informando o aluno, mas a busca é só de datas, como faço isso?

Parece que eu já havia falado algo sobre isto antes:

"Voce tem um consulta que retorna todos os alunos cadastrados em um período e uma outra que retorna todos os lançamentos gravados em seu banco de dados - sem qualquer restrição/relação com os alunos. blink.gif

Voce quer um relatório que mostre os dados dos alunos filtrados no período e que, para cada aluno, liste suas respectivas parcelas. Não é mesmo?!

Se é (e acredito que deva ser), para cada aluno que tiver sua informação impressa, deverá ser feita a consulta nos lançamentos e localizadas suas parcelas. Como fazemos isto? Justamente utilizando o campo de relacionamento como filtro na cláusula WHERE da consulta nos lancamentos, é claro."

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...