Fórum Relatórios usando Firebird e dbExpress #57654

10/01/2007

0

boa noite

já tentei fazer relatórios em quickreport com vários componentes, o problema também é que eu nunca fiz relatorios usando FireBirde DBExpress, a inclusão, exclusão, alteração de dados está funcionando beleza com firebird, só falta eu acerta a fazer os relatórios simples listagem e agrupando.

Preciso urgente mente solucionar isso.

abaixo as tentativas.
dá o mesmo erro em todas
erro: unknown ISC error 0.

se alguém tiver exemplos e possa me enviar aqui meu email altenircpd@yahoo.com.br msn: altenir30@hotmail.com

[b:879d62b03a]
//COM SQLDATASET [/b:879d62b03a]
{ SQLDataSet1.CommandType := ctQuery;
SQLDataSet1.CommandText:=´´;
SQLDataSet1.CommandText :=´select cod, nome, sum(valor) as soma from lancamento ´+
´where cdgrup =:VarCodGru and idorig =:VarOrig and data Between :VarDataI and :VarDataF group by cdgrup, cod, nome´;
SQLDataSet1.ParamByName(´VarCodGru´).AsString := EdCodGrup.Text;
SQLDataSet1.ParamByName(´VarOrig´).AsString := EdCodOrig.Text;
SQLDataSet1.ParamByName(´VarDataI´).AsDateTime := DateTimePicker1.Date;
SQLDataSet1.ParamByName(´VarDataF´).AsDateTime := DateTimePicker2.Date;
SQLDataSet1.ExecSQL;
// ClientDataSet1.Active:=False;
// ClientDataSet1.Active:=true;
QuickRep2.Preview;
finally
// ClientDataSet1.Active:=false;
end }


[b:879d62b03a]//COM SIMPLEDATASET [/b:879d62b03a]
{ SDSGrupo.Close;
SDSGrupo.DataSet.CommandText:=´´;
SDSGrupo.DataSet.CommandText :=´select cod, nome, sum(valor) as soma from lancamento ´+
´where cdgrup =:VarCodGru and idorig =:VarOrig and data Between :VarDataI and :VarDataF group by cdgrup, cod, nome´;
SDSGrupo.Params[0].AsString := EdCodGrup.Text;
SDSGrupo.Params[1].AsString := EdCodOrig.Text;
SDSGrupo.Params[2].AsDateTime:= DateTimePicker1.Date;
SDSGrupo.Params[3].AsDateTime := DateTimePicker2.Date;
SDSGrupo.Open;
QuickRep2.Preview;
SDSGrupo.Close;

[b:879d62b03a]//COM SQLQUERY [/b:879d62b03a]
SQLQuery1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add(´select cod, nome, sum(valor) as soma from lancamento ´+
´where cdgrup =:VarCodGru and idorig =:VarOrig and data Between :VarDataI and :VarDataF group by cdgrup, cod, nome´);
SQLQuery1.ParamByName(´VarCodGru´).AsString := EdCodGrup.Text;
SQLQuery1.ParamByName(´VarOrig´).AsString := EdCodOrig.Text;
SQLQuery1.ParamByName(´VarDataI´).AsDateTime:= DateTimePicker1.Date;
SQLQuery1.ParamByName(´VarDataf´).AsDateTime := DateTimePicker2.Date;
SQLQuery1.Open;
QuickRep2.Preview;
// SQLQuery1.Close;


Altenir

Altenir

Responder

Posts

11/01/2007

Emerson Nascimento

quando você utilizar clientdataset´s, faça a manipulação nele mesmo:

//COM CLIENTDATASET
with ClientDataset1, ClientDataset1.Params do
begin
   Close;
   CommandText :=
      ´select cod, nome, sum(valor) as soma ´+
      ´from lancamento ´+
      ´where cdgrup =:VarCodGru ´+
      ´and idorig =:VarOrig ´+
      ´and data Between :VarDataI and :VarDataF ´+
      ´group by cdgrup, cod, nome´; 
   ParamByName(´VarCodGru´).AsString := EdCodGrup.Text; 
   ParamByName(´VarOrig´).AsString := EdCodOrig.Text; 
   ParamByName(´VarDataI´).AsDateTime := DateTimePicker1.Date; 
   ParamByName(´VarDataF´).AsDateTime := DateTimePicker2.Date; 
   Open;

   QuickRep2.Preview; 
end;
isso funciona desde que o ClientDataset1 esteja ligado ao report


Responder

Gostei + 0

11/01/2007

Altenir

Agora mudou o erro para:
CommandText changes are not allowed.

estou usando: SqlDataset + DataSetProvider+ ClientDataSet


quando você utilizar clientdataset´s, faça a manipulação nele mesmo:
//COM CLIENTDATASET
with ClientDataset1, ClientDataset1.Params do
begin
   Close;
   CommandText :=
      ´select cod, nome, sum(valor) as soma ´+
      ´from lancamento ´+
      ´where cdgrup =:VarCodGru ´+
      ´and idorig =:VarOrig ´+
      ´and data Between :VarDataI and :VarDataF ´+
      ´group by cdgrup, cod, nome´; 
   ParamByName(´VarCodGru´).AsString := EdCodGrup.Text; 
   ParamByName(´VarOrig´).AsString := EdCodOrig.Text; 
   ParamByName(´VarDataI´).AsDateTime := DateTimePicker1.Date; 
   ParamByName(´VarDataF´).AsDateTime := DateTimePicker2.Date; 
   Open;

   QuickRep2.Preview; 
end;
isso funciona desde que o ClientDataset1 esteja ligado ao report



Responder

Gostei + 0

11/01/2007

Emerson Nascimento

adicione o item [poAllowCommandText] à propriedade Options do DatasetProvider


Responder

Gostei + 0

12/01/2007

Altenir

O erro mudou para unknown ISC error 0


adicione o item [poAllowCommandText] à propriedade Options do DatasetProvider



Responder

Gostei + 0

12/01/2007

Altenir

Nada...

continua dando erro: unknown ISC error 0.


Responder

Gostei + 0

12/01/2007

Altenir

me disseram que parece ser a api do firebird
Eu uso firebird 2.0


[b:cbaf325602]Rodei a query no IBExpert :[/b:cbaf325602]

select cod, nome, cdgrup, sum(valor) as soma
from lancamento where cdgrup =2
and idorig =1 and data Between ´01/01/07´ and ´05/01/07´
group by cdgrup, cod, nome

[b:cbaf325602]e funcionou.[/b:cbaf325602]

Então é a API do Firebird?
Como posso resolver isso? Instalando a outra versão 1.5, Classic ou Super server

Nada... continua dando erro: unknown ISC error 0.



Responder

Gostei + 0

15/01/2007

Altenir

Depois de muitas tentativas, ontem eu descobri o erro.

[b:60ac4a262a]Testei só com esses dois parametros e funcionou.[/b:60ac4a262a]SDSGrupo.Params.ParamByName(´VarCodGru´).AsString := EdCodGrup.Text;
SDSGrupo.Params.ParamByName(´VarOrig´).AsString := EdCodOrig.Text;

Depois acrescentei o resto:SDSGrupo.Params.ParamByName(´VarCodGru´).AsString := EdCodGrup.Text;
SDSGrupo.Params.ParamByName(´VarOrig´).AsString := EdCodOrig.Text;
SDSGrupo.Params.ParamByName(´VarDataI´).AsDateTime := DateTimePicker1.Date;
SDSGrupo.Params.ParamByName(´VarDataF´).AsDateTime := DateTimePicker2.Date;
[b:60ac4a262a]Ai deu erro [/b:60ac4a262a]


[b:60ac4a262a]na propriedade do SQLDataSet em paramers estava: [/b:60ac4a262a]

VarDataI

DataType = ftDate


[b:60ac4a262a]no código estava: [/b:60ac4a262a]

SDSGrupo.ParamByName(´VarDataI´).AsDateTime := DateTimePicker1.Date;


[b:60ac4a262a]Mudei para: [/b:60ac4a262a]
SDSGrupo.ParamByName(´VarDataI´).AsDate := DateTimePicker1.Date;
Funcionou.


[b:60ac4a262a]ai pronto, fiz o relatório no Rave [/b:60ac4a262a]

dmd.RvProject1.SetParam(´PDataI´, DateToStr(DateTimePicker1.Date));
dmd.RvProject1.SetParam(´PDataF´, DateToStr(DateTimePicker2.Date));
dmd.RvProject1.SetParam(´POrigem´, EdCodOrig.Text +´-´+ EdOrig.Text);

Obrigado pela atenção de todos


Responder

Gostei + 0

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

Aceitar