Fórum Rave com Delphi #429641

24/11/2012

0

faço todos minha conexões com os componentes da aba interbase, porem quando vou gera meu relatorio se minha query não possui parametros meu relatorio gera certinho agora se coloco parametros eles não mostra os itens, sabem me dizer o que pode ser?

query.sql


SELECT *
FROM CIDADE
WHERE CD_CIDADE BETWEEN :CODINICIO AND :CODFINAL


chamada do relatorio em um botão

procedure TFrmRelCid.Button1Click(Sender: TObject);
begin
  inherited;
  QueCid.close;//fechar a query
  QueCid.params[0].ASinteger:= StrToInt(EdtInicio.Text);
  QueCid.params[1].ASinteger:= StrToInt(EdtFim.Text);
  QueCid.open;
  DM.RvProj.ExecuteReport('Rel_cid');
end;


retorno a dizer essa mesma chamada se eu retiro os parametros funciona perfeitamente, e o comando sql funciona certinho tambem pos filtra os dados num datagridview certinho.
Lucas Monteiro

Lucas Monteiro

Responder

Posts

24/11/2012

Lucas Monteiro

esqueci de dizer que se eu vou nos parametros da query manualmente e altero os valores, tambem tras tudo certo, porem não consigo fazer isso em momento de execulção
Responder

Gostei + 0

24/11/2012

Lucas Monteiro

alterei a parte:

QueCid.params[0].ASinteger:= StrToInt(EdtInicio.Text);
QueCid.params[1].ASinteger:= StrToInt(EdtFim.Text);

para:

QueCid.ParamByName('CODINICIO').ASinteger:= StrToInt(EdtInicio.Text);
QueCid.ParamByName('CODFINAL').ASinteger:= StrToInt(EdtFim.Text);

também não funcionou..
Responder

Gostei + 0

24/11/2012

Claudia Nogueira

Tenta assim:

O SQL:

SELECT *
FROM CIDADE
WHERE (CD_CIDADE >=:CODINICIO)
AND (CD_CIDADE <=:CODFINAL)

No código:

QueCid.Close;
QueCid.ParamByName('CODINICIO').AsInteger:= StrToInt(EdtInicio.Text);
QueCid.ParamByName('CODFINAL').AsInteger:= StrToInt(EdtFim.Text);
QueCid.Open;
if not QueCid.IsEmpty then
DM.RvProj.ExecuteReport('Rel_cid')
else
ShowMessage('Sem informações para imprimir');

Se mesmo assim cair no "else", aí tem que ver se você está passando valores validos <> 0 nos EditInicio.Text e EdtFim.Text.

Mais uma coisa, tanto faz usar assim:

QueCid.params[0]

Ou assim:

QueCid.ParamByName('CODINICIO')
Responder

Gostei + 0

24/11/2012

Lucas Monteiro

na verdade no else ele não vai cair, porque a query traz resultados como eu disse, a datagridview preenche os dados o problema ta na hora que chama o relatorio
Responder

Gostei + 0

24/11/2012

Lucas Monteiro

Acontece a mesma coisa no relatorio não mostra as informções.
Responder

Gostei + 0

25/11/2012

Claudia Nogueira

Oie.
Eu tinha entendido seu problema mais ou menos, só queria saber se estava mesmo retornando registros na Query.

Eu nunca tinha usado o Fast, pois desde quando comecei, já comecei com o ReportBuilder, então baixei ele aqui e achei ele simplesmente fantástico, me deu até vontade de trocar. Hehehe.

Mas voltando ao assunto eu fiz aqui, e aqui funcionou, acho que pode ser alguma coisa então na sua função: DM.RvProj.ExecuteReport('Rel_cid').

Coloquei o link do exemplo que fiz pra testar aqui: [url]www.cdnweb.com.br/FastExemplo.rar[/url]

Criei uma função no DataModule com o mesmo nome da sua, somente pra eu testar.

Crie uma tabela CIDADE com os campos CD_CIDADE e NM_CIDADE, e o exemplo foi feito em Delphi7 com Firebird 2.0.

Dentro do arquivo compactado tem o relatório e o banco de dados também
Responder

Gostei + 0

25/11/2012

Lucas Monteiro

muito obrigado pela ajuda, mas ja havia resolvido meu problema, não sei porque mas simplesmente num passe de magica funciono oO, coisas que não se explica HSIAUHSUAIHSUIASHUAISH, muito obrigado pela ajuda
Responder

Gostei + 0

25/11/2012

Claudia Nogueira

Que bom então. :)

muito obrigado pela ajuda, mas ja havia resolvido meu problema, não sei porque mas simplesmente num passe de magica funciono oO, coisas que não se explica HSIAUHSUAIHSUIASHUAISH, muito obrigado pela ajuda
Responder

Gostei + 0

25/11/2012

Rodolpho Silva

Só uma dica: O Rave foi descontinuado no XE3. [url]http://www.andreanolanusse.com/pt/rave-reports-nao-mais-no-delphi-xe3-e-cbuilder-xe3/#respond[/url]

T+
Responder

Gostei + 0

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

Aceitar