Validar produto

Delphi

11/09/2010

Pessoal estou fazendo uam comunicaçao com microterminal e preciso fazer uma validação de produto
estou tenda dessa forma mas poremesta dando erro no terminal ele m retorma o valor errado

a função é essa

function TfmTerminais.Valida_Produto(ProdutoTerm: String): integer;
var
 Produto_rec : string;
begin
  result := 0;
  frmmodulo.qrproduto.close;
  frmmodulo.qrproduto.ParamByName('codigo').AsString:=CompletaZero(ProdutoTerm, 6);
  frmmodulo.qrproduto.open;
  if not frmmodulo.qrproduto.IsEmpty then
  begin
    produto_rec := frmmodulo.qrproduto.fieldbyname('codigo').asstring;
    if ProdutoTerm = Produto_rec then
    result := 1;
  end;
end;

no micro terminal ele m retona 0 sendo q deveria aparecer o nome do produto...

a linha que eu chamo a função é essa

produto[Terminal]:= IntToStr(Valida_Produto(Ind_Produto[Terminal]));
Laelson Fagundes

Laelson Fagundes

Curtidas 0

Respostas

Carlos Bernardo

Carlos Bernardo

11/09/2010

  Seu produto_Rec com certeza tem 0 a esquerda preenchido...   Seu ProdutoTerm, talvez nao... entao tenta essa comparacao    If CompletaZero(ProdutoTerm, 6) = Produto_rec then 
GOSTEI 0
Laelson Fagundes

Laelson Fagundes

11/09/2010

da forma q vc passou nao muda nada da minha   If CompletaZero(ProdutoTerm, 6) = Produto_rec then    é a mesma da minha forma eu ja completo os zeros em cima entao nao precisa passar os zeros de novo...
GOSTEI 0
Carlos Bernardo

Carlos Bernardo

11/09/2010

Pessoal estou fazendo uam comunicaçao com microterminal e preciso fazer uma validação de produto
estou tenda dessa forma mas poremesta dando erro no terminal ele m retorma o valor errado

a função é essa

function TfmTerminais.Valida_Produto(ProdutoTerm: String): integer;
var
 Produto_rec : string;
begin
  result := 0;
  frmmodulo.qrproduto.close;
  frmmodulo.qrproduto.ParamByName('codigo').AsString:=CompletaZero(ProdutoTerm, 6);
  frmmodulo.qrproduto.open;
  if not frmmodulo.qrproduto.IsEmpty then
  begin
    produto_rec := frmmodulo.qrproduto.fieldbyname('codigo').asstring;
    if ProdutoTerm = Produto_rec then
    result := 1;
  end;
end;

no micro terminal ele m retona 0 sendo q deveria aparecer o nome do produto...

a linha que eu chamo a função é essa

produto[Terminal]:= IntToStr(Valida_Produto(Ind_Produto[Terminal]));
  Entao amigo... Olhando sua funcao, se " not frmmodulo.qrproduto.IsEmpty ", se essa condicao for verdadeira o resultado deveria ser 1, pois  produto_rec sempre sera igual a  CompletaZero(ProdutoTerm, 6), faz o seguinte: usa o debug e vai olhando o resultado q vc obtem...   function TfmTerminais.Valida_Produto(ProdutoTerm: String): integer;
begin
  ProdutoTerm := CompletaZero(ProdutoTerm, 6);
  result := 0;
  frmmodulo.qrproduto.close;
  frmmodulo.qrproduto.ParamByName('codigo').AsString:=ProdutoTerm;
  frmmodulo.qrproduto.open;
  if not frmmodulo.qrproduto.IsEmpty then
    result := 1;
end;
 Passa qual o comando Sql q vc usa...
GOSTEI 0
Laelson Fagundes

Laelson Fagundes

11/09/2010

function TfmTerminais.Valida_Produto(ProdutoTerm: String): integer;
begin
  ProdutoTerm := CompletaZero(ProdutoTerm, 6);
  result := 0;
  frmmodulo.qrproduto.close;
  frmmodulo.qrproduto.ParamByName('codigo').AsString:=ProdutoTerm;
  frmmodulo.qrproduto.open;
  if not frmmodulo.qrproduto.IsEmpty then
    result := 1;
end;

Dessa forma não da certo nao ele nao pega parametro nem um dos codigo de produto...
GOSTEI 0
POSTAR