http://windevdesenvolvimento.blogspot.com.br/2015/02/matos-funcao-auto-numeracao.html
Video de como eu criei uma funcao Autonumeracao para meu sistema
tambem vou colocar abaixo o fonte do programa para quem quizer usar em seu sistema
Procedure matos_f_auto_numeracao(_nome_arquivo is string,_nome_campo_numeracao is string,_codigo_empresa is int)
_data_source is Data Source
_sql is string
_sql = [
SELECT
Max(%1.%2) AS ultimo
FROM
%1
%3
]
_condicao is string = ""
IF _codigo_empresa<>0 THEN
_condicao="where id_empresa="+_codigo_empresa
END
_sql = StringBuild(_sql,_nome_arquivo,_nome_campo_numeracao,_condicao)
IF HExecuteSQLQuery(_data_source,hQueryDefault,_sql) THEN
HReadFirst(_data_source)
RESULT(_data_source.ultimo+1)
ELSE
RESULT(1)
END
EDT_id_1 = matos_f_auto_numeracao("cliente","id_cliente",0)
EDT_id_2 = matos_f_auto_numeracao("cliente","id_empresa_cliente",EDT_id_Empresa)
Rotina usada dentro de orcdamento
Procedure matos_grava_orcamento()
EDT_Id_orcamento=matos_f_auto_numeracao("orcamento","id_orcamento",0)
EDT_Id_empresa_orcamento=matos_f_auto_numeracao("orcamento","id_orcamento",gnEmpresaCodigo)