Fórum Erro: is not a valid Integer value ! #365725
01/11/2008
0
if (rgTipoRel.ItemIndex = 1) and checkbox2.Checked then begin DM.ibdVendCliente.Close; DM.ibdVendCliente.SelectSQL.Clear; DM.ibdVendCliente.SelectSQL.Add(´SELECT T1.nome,T3.idproduto,T4.descricao,T2.datavenda,T3.quantidade,T3.vlrunitario,T3.desconto, sum(T3.quantidade * T3.vlrunitario) as total´); DM.ibdVendCliente.SelectSQL.Add(´FROM tb_cliente T1 INNER JOIN tb_venda T2 ON (T1.idcliente = T2.idcliente)´); DM.ibdVendCliente.SelectSQL.Add(´INNER JOIN tb_itemvenda T3 ON (T2.numvenda = T3.idvenda)´); DM.ibdVendCliente.SelectSQL.Add(´INNER JOIN tb_produto T4 ON (T3.idproduto = T4.idproduto)´); DM.ibdVendCliente.selectSQL.Add(´WHERE T2.datavenda BETWEEN :pDataIni and :pDataFin´); DM.ibdVendCliente.SelectSQL.Add(´GROUP BY T1.nome,T3.idproduto,T4.descricao,T2.datavenda,T3.quantidade,T3.vlrunitario,T3.desconto´); DM.ibdVendCliente.Active:= False; DM.ibdVendCliente.ParamByName(´pDataIni´).AsDate:= strtodate(DataIni.Text); DM.ibdVendCliente.ParamByName(´pDatafin´).AsDate:= strtodate(DataFin.Text); DM.ibdVendCliente.Open; DM.rvVendCliente.SetParam(´pDataIni´,DataIni.Text); DM.rvVendCliente.SetParam(´pDataFin´,DataFin.Text); DM.rvVendCliente.ExecuteReport(´Report1´); end else begin DM.ibdVendCliente.Close; DM.ibdVendCliente.SelectSQL.Clear; DM.ibdVendCliente.SelectSQL.Add(´SELECT T1.nome,T3.idproduto,T4.descricao,T2.datavenda,T3.quantidade,T3.vlrunitario,T3.desconto, sum(T3.quantidade * T3.vlrunitario) as total´); DM.ibdVendCliente.SelectSQL.Add(´FROM tb_cliente T1 INNER JOIN tb_venda T2 ON (T1.idcliente = T2.idcliente)´); DM.ibdVendCliente.SelectSQL.Add(´INNER JOIN tb_itemvenda T3 ON (T2.numvenda = T3.idvenda)´); DM.ibdVendCliente.SelectSQL.Add(´INNER JOIN tb_produto T4 ON (T3.idproduto = T4.idproduto)´); DM.ibdVendCliente.selectSQL.Add(´WHERE T2.datavenda BETWEEN :pDataIni and :pDataFin´); DM.ibdVendCliente.SelectSQL.Add(´AND T2.idcliente = :pCodigo´); DM.ibdVendCliente.SelectSQL.Add(´GROUP BY T1.nome,T3.idproduto,T4.descricao,T2.datavenda,T3.quantidade,T3.vlrunitario,T3.desconto´); DM.ibdVendCliente.Active:= False; DM.ibdVendCliente.ParamByName(´pDataIni´).AsDate:= strtodate(DataIni.Text); DM.ibdVendCliente.ParamByName(´pDatafin´).AsDate:= strtodate(DataFin.Text); DM.ibdVendCliente.ParamByName(´pCodigo´).AsInteger:= strtoint(Edit2.Text); DM.ibdVendCliente.Open; DM.rvVendCliente.SetParam(´pDataIni´,DataIni.Text); DM.rvVendCliente.SetParam(´pDataFin´,DataFin.Text); DM.rvVendCliente.SetParam(´pCodigo´,Edit2.Text); DM.rvVendCliente.ExecuteReport(´Report1´); end; end;
Afterdev
Curtir tópico
+ 0Posts
01/11/2008
Afterdev
Qual saio do erro o delphi retorna nessa nessas linhas
procedure TmenuPrin.acRelVendasExecute(Sender: TObject); begin FiltroRelVendas.ShowModal; end;
aguardo ajuda ........
Gostei + 0
01/11/2008
Martins
Esse parametro pCodigo é Integer ou String?
DM.rvVendCliente.SetParam(´pCodigo´,Edit2.Text);
Pq se ele for Integer, vc terá q fazer a conversão.
Gostei + 0
01/11/2008
Afterdev
DM.rvVendCliente.SetParam(´pCodigo´,Edit2.Text);
Martins, obrigado pela resposta, fiz nesta linha anterior essa conversão ! ou é outra conversão, e o relatório é no Rave sim.
DM.ibdVendCliente.ParamByName(´pCodigo´).AsInteger:= strtoint(Edit2.Text);
valeu....
Gostei + 0
01/11/2008
Martins
Não trablho com Rave, mas acho q vc vai ter q depurar para ver se o erro está neste trecho de código.
DM.ibdVendCliente.Active:= False; DM.ibdVendCliente.ParamByName(´pDataIni´).AsDate:= strtodate(DataIni.Text); DM.ibdVendCliente.ParamByName(´pDatafin´).AsDate:= strtodate(DataFin.Text); DM.ibdVendCliente.ParamByName(´pCodigo´).AsInteger:= strtoint(Edit2.Text); DM.ibdVendCliente.Open; DM.rvVendCliente.SetParam(´pDataIni´,DataIni.Text); DM.rvVendCliente.SetParam(´pDataFin´,DataFin.Text); DM.rvVendCliente.SetParam(´pCodigo´,Edit2.Text); DM.rvVendCliente.ExecuteReport(´Report1´);
Tente mudar.
DM.ibdVendCliente.ParamByName(´pCodigo´).AsInteger:= strtoint(Edit2.Text);
Para
DM.ibdVendCliente.ParamByName(´pCodigo´).AsString:= Edit2.Text;
Sinto não poder ajudar mais.
Gostei + 0
01/11/2008
Martins
Boa sorte.
Gostei + 0
01/11/2008
Afterdev
procedure TFiltroRelVendas.btnImprimirClick(Sender: TObject); begin with DM.ibdVendProd do begin if (rgTipoRel.ItemIndex = 0) and checkbox1.Checked then begin DM.ibdVendProd.Close; DM.ibdVendProd.SelectSQL.Clear; DM.ibdVendProd.SelectSQL.Add(´SELECT T2.descricao, T1.datavenda, T2.unidade, SUM(T3.quantidade) as Quantidade, T3.vlrunitario, T3.desconto, sum(t3.quantidade * t3.vlrunitario) as total´); DM.ibdVendProd.SelectSQL.Add(´from tb_venda T1 inner join tb_itemvenda T3 on (T1.numvenda = T3.idvenda)´); DM.ibdVendProd.SelectSQL.Add(´inner join tb_produto T2 on (T2.idproduto = T3.idproduto)´); DM.ibdVendProd.SelectSQL.Add(´and t1.datavenda between :pDataIni and :pDataFin´); DM.ibdVendProd.SelectSQL.Add(´GROUP BY T2.descricao, T1.datavenda, T2.unidade, T3.quantidade, T3.vlrunitario, T3.desconto´); DM.ibdVendProd.ParamByName(´pDataIni´).AsDate:= strtodate(DataIni.Text); DM.ibdVendProd.ParamByName(´pDataFin´).AsDate:= strtodate(DataFin.Text); DM.ibdVendProd.Open; DM.rvVendProd.SetParam(´pDataIni´,DataIni.Text); DM.rvVendProd.SetParam(´pDataFin´,DataFin.Text); DM.rvVendProd.ExecuteReport(´Report2´); end else begin DM.ibdVendProd.Close; DM.ibdVendProd.SelectSQL.Clear; DM.ibdVendProd.SelectSQL.Add(´SELECT T2.descricao, T1.datavenda, T2.unidade, SUM(T3.quantidade) as Quantidade, T3.vlrunitario, T3.desconto, sum(t3.quantidade * t3.vlrunitario) as total´); DM.ibdVendProd.SelectSQL.Add(´from tb_venda T1 inner join tb_itemvenda T3 on (T1.numvenda = T3.idvenda)´); DM.ibdVendProd.SelectSQL.Add(´inner join tb_produto T2 on (T2.idproduto = T3.idproduto)´); DM.ibdVendProd.SelectSQL.Add(´and t1.datavenda between :pDataIni and :pDataFin´); DM.ibdVendProd.SelectSQL.Add(´and t3.idproduto = :pCodigo´); DM.ibdVendProd.SelectSQL.Add(´GROUP BY T2.descricao, T1.datavenda, T2.unidade, T3.quantidade, T3.vlrunitario, T3.desconto´); DM.ibdVendProd.ParamByName(´pDataIni´).AsDate:= strtodate(DataIni.Text); DM.ibdVendProd.ParamByName(´pDataFin´).AsDate:= strtodate(DataFin.Text); DM.ibdVendProd.ParamByName(´pCodigo´).AsInteger:= strtoint(Edit1.Text); DM.ibdVendProd.Open; DM.rvVendProd.SetParam(´pDataIni´,DataIni.Text); DM.rvVendProd.SetParam(´pDataFin´,DataFin.Text); DM.rvVendProd.SetParam(´pCodigo´,Edit1.Text); DM.rvVendProd.ExecuteReport(´Report2´); end; end;
Gostei + 0
01/11/2008
Martins
Verifique se o valor informado em Edit1 é um valor numérico.
Boa Sorte.
Gostei + 0
01/11/2008
Emerson Nascimento
procedure TFiltroRelVendas.btnImprimirClick(Sender: TObject); begin with DM.ibdVendProd do begin if (rgTipoRel.ItemIndex = 0) then with DM.ibdVendProd do begin Close; SelectSQL.Clear; SelectSQL.Add(´SELECT T2.descricao, T1.datavenda, T2.unidade,´); SelectSQL.Add(´ SUM(T3.quantidade) as Quantidade, T3.vlrunitario,´); SelectSQL.Add(´ T3.desconto, sum(t3.quantidade * t3.vlrunitario) as total´); SelectSQL.Add(´from tb_venda T1´); SelectSQL.Add(´inner join tb_itemvenda T3 on (T1.numvenda = T3.idvenda)´); SelectSQL.Add(´inner join tb_produto T2 on (T2.idproduto = T3.idproduto)´); SelectSQL.Add(´WHERE t1.datavenda between :pDataIni and :pDataFin´); if not checkbox1.Checked then SelectSQL.Add(´and t3.idproduto = :pCodigo´); SelectSQL.Add(´GROUP BY T2.descricao, T1.datavenda, T2.unidade, T3.quantidade,´); SelectSQL.Add(´ T3.vlrunitario, T3.desconto´); ParamByName(´pDataIni´).AsDate := strtodate(DataIni.Text); ParamByName(´pDataFin´).AsDate := strtodate(DataFin.Text); //** antes de passar o valor, verifico se é um inteiro **// if not checkbox1.Checked then begin try strtoint(trim(Edit1.Text)); except ShowMessage(´O valor informado no Edit1 não é um inteiro válido!´); end; ParamByName(´pCodigo´).AsInteger:= strtoint(trim(Edit1.Text)); end; Open; DM.rvVendProd.SetParam(´pDataIni´,DataIni.Text); DM.rvVendProd.SetParam(´pDataFin´,DataFin.Text); if not checkbox1.Checked then DM.rvVendProd.SetParam(´pCodigo´, Edit1.Text); DM.rvVendProd.ExecuteReport(´Report2´); end else if (rgTipoRel.ItemIndex = 1) with DM.ibdVendCliente do begin Close; SelectSQL.Clear; SelectSQL.Add(´SELECT T1.nome, T3.idproduto, T4.descricao, T2.datavenda,´); SelectSQL.Add(´ T3.quantidade, T3.vlrunitario, T3.desconto,´); SelectSQL.Add(´ sum(T3.quantidade * T3.vlrunitario) as total´); SelectSQL.Add(´FROM tb_cliente T1´); SelectSQL.Add(´INNER JOIN tb_venda T2 ON (T1.idcliente = T2.idcliente)´); SelectSQL.Add(´INNER JOIN tb_itemvenda T3 ON (T2.numvenda = T3.idvenda)´); SelectSQL.Add(´INNER JOIN tb_produto T4 ON (T3.idproduto = T4.idproduto)´); selectSQL.Add(´WHERE T2.datavenda BETWEEN :pDataIni and :pDataFin´); if not checkbox2.Checked then SelectSQL.Add(´AND T2.idcliente = :pCodigo´); SelectSQL.Add(´GROUP BY T1.nome, T3.idproduto, T4.descricao, T2.datavenda,´); SelectSQL.Add(´ T3.quantidade,T3.vlrunitario,T3.desconto´); ParamByName(´pDataIni´).AsDate:= strtodate(DataIni.Text); ParamByName(´pDatafin´).AsDate:= strtodate(DataFin.Text); if not checkbox2.Checked then begin //** antes de passar o valor, verifico se é um inteiro **// try strtoint(trim(Edit2.Text)); except ShowMessage(´O valor informado no Edit2 não é um inteiro válido!´); end; ParamByName(´pCodigo´).AsInteger:= strtoint(trim(Edit2.Text)); end; Open; DM.rvVendCliente.SetParam(´pDataIni´,DataIni.Text); DM.rvVendCliente.SetParam(´pDataFin´,DataFin.Text); if not checkbox2.Checked then DM.rvVendCliente.SetParam(´pCodigo´,Edit2.Text); DM.rvVendCliente.ExecuteReport(´Report1´); end; end;
Gostei + 0
02/11/2008
Afterdev
Martins valeu pela atenção ao meu problema, ajudou muito....
Gostei + 0
02/11/2008
Emerson Nascimento
De repente estava digitado ´ 2´ (espaço dois), ou uma letra, ou ainda estava vazio...
Gostei + 0
22/07/2009
Fausto.malheiros
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)