Rave com Delphi

Delphi

24/11/2012

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

Curtidas 0

Respostas

Lucas Monteiro

Lucas Monteiro

24/11/2012

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
GOSTEI 0
Lucas Monteiro

Lucas Monteiro

24/11/2012

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..
GOSTEI 0
Claudia Nogueira

Claudia Nogueira

24/11/2012

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')
GOSTEI 0
Lucas Monteiro

Lucas Monteiro

24/11/2012

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
GOSTEI 0
Lucas Monteiro

Lucas Monteiro

24/11/2012

Acontece a mesma coisa no relatorio não mostra as informções.
GOSTEI 0
Claudia Nogueira

Claudia Nogueira

24/11/2012

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
GOSTEI 0
Lucas Monteiro

Lucas Monteiro

24/11/2012

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
GOSTEI 0
Claudia Nogueira

Claudia Nogueira

24/11/2012

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
GOSTEI 0
Rodolpho Silva

Rodolpho Silva

24/11/2012

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+
GOSTEI 0
POSTAR