Preciso de uma ajuda de voces em relação à geração de código....
num cadastro de produtos, faço a geração de código dessa forma
if not dm.tblCadPro.FieldByName('PROCOD').IsNull then
Exit;
dm.QueryMaxPro.DatabaseName := dm.tblCadPro.DatabaseName;
dm.QueryMaxPro.SQL.Clear;
dm.QueryMaxPro.SQL.Add('SELECT MAX (PROCOD) FROM ESTAPRO.dbf');
dm.QueryMaxPro.Open;
try
dm.tblCadPro.FieldByName('PROCOD').AsString := FormatFloat('0000000000000', StrToFloat(dm.QueryMaxPro.Fields[0].AsString)+1);
finally
dm.QueryMaxPro.Close;
end;
Então, em uma tabela vazia, os registros terão os códigos nessa ordem: 0000000000001, 0000000000002, 0000000000003...
Mas esses códigos gerados servem apenas para produtos sem código de barras [hortifrutti, por exemplo].
Supondo que o próximo produto cadastrado seja um com código de barras [7896065880106, por exemplo]; o código gerado será 0000000000004, então o usuário fará a alteração para 7896065880106.
Mas o código gerado do próximo produto a ser cadastrado, que teria que ser 0000000000004, será 7896065880107!!!!!
O que se deve fazer para evitar este conflito???
alguém conseguiria me ajudar???
Uma idéia seria percorrer os registros em ordem decrescente, até encontrar o primeiro número que não comece por 789, para pegá-lo e somar +1
Mas não tenho ideia de como posso fazer isso..
alguém conseguiria me ajudar nisso??? Ou teria alguma outra forma de fazer isso???
Por favor, me ajudem se puderem.....seria um ótimo presente de Natal!!!
Pergunta
Gabriel Cabral
Bom dia, galera...
Preciso de uma ajuda de voces em relação à geração de código....
num cadastro de produtos, faço a geração de código dessa forma
Então, em uma tabela vazia, os registros terão os códigos nessa ordem: 0000000000001, 0000000000002, 0000000000003...
Mas esses códigos gerados servem apenas para produtos sem código de barras [hortifrutti, por exemplo].
Supondo que o próximo produto cadastrado seja um com código de barras [7896065880106, por exemplo]; o código gerado será 0000000000004, então o usuário fará a alteração para 7896065880106.
Mas o código gerado do próximo produto a ser cadastrado, que teria que ser 0000000000004, será 7896065880107!!!!!
O que se deve fazer para evitar este conflito???
alguém conseguiria me ajudar???
Uma idéia seria percorrer os registros em ordem decrescente, até encontrar o primeiro número que não comece por 789, para pegá-lo e somar +1
Mas não tenho ideia de como posso fazer isso..
alguém conseguiria me ajudar nisso??? Ou teria alguma outra forma de fazer isso???
Por favor, me ajudem se puderem.....seria um ótimo presente de Natal!!!
Obrigado
Bom Natal a todos!!!
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.