Rave com Delphi
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
chamada do relatorio em um botão
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.
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
Curtidas 0
Respostas
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
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..
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
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')
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
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
24/11/2012
Acontece a mesma coisa no relatorio não mostra as informções.
GOSTEI 0
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
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
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
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
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+
T+
GOSTEI 0