PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 25 → Funcao Matos AutoNumeracao
Funcao Matos AutoNumeracao
Débuté par amarildo, 24 fév. 2015 13:11 - Aucune réponse
Membre enregistré
535 messages
Popularité : +14 (14 votes)
Posté le 24 février 2015 - 13:11
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
// Summary: <matos_f_auto_numeracao>
// Syntax:
//[ <Result> = ] matos_f_auto_numeracao (<_nome_arquivo> is string, <_nome_campo_numeracao> is string, <_codigo_empresa> is int)
//
// Parameters:
//_nome_arquivo (ANSI string): <Especifique o Nome do Arquivo>
//_nome_campo_numeracao (ANSI string): <Especifique o nome do campo a Somar>
//_codigo_empresa (int): <Se Quizer pegar Ultimo Registro Todas Empresas deixe 0,ou digite Codigo Empresa>
// Return Value:
// Unspecified Type: // Retorna_id is int
//
// For instance:
// Indicate an example.
// informando sem empresa Para Achar o id principal de todas empresas
// EDT_id = auto_numeracao("cliente","id_cliente",0)
// o Primeiro Retorno sera o ultimo Codigo do Cliente de Todas as Empresas
// informando com codigo empresa
// EDT_id_2,STC_sql_2) = auto_numeracao("cliente","id_empresa_cliente",EDT_id_Empresa)
// o Primeiro Retorno sera o ultimo Codigo do Cliente somente da Empresa selecionada
// o Segundo Retorno sera o comando Sql utilizado
//_codigo_empresa (int): <specify the role of n_codigo_empresa>
Procedure matos_f_auto_numeracao(_nome_arquivo is string,_nome_campo_numeracao is string,_codigo_empresa is int)
// exemplo 24 02 2015
// auto_numeracao("clientes","id_cliente")
_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


// informando sem empresa Para Achar o id principal de todas empresas
EDT_id_1 = matos_f_auto_numeracao("cliente","id_cliente",0)
// o Primeiro Retorno sera o ultimo Codigo do Cliente de Todas as Empresas

// informando com codigo empresa
EDT_id_2 = matos_f_auto_numeracao("cliente","id_empresa_cliente",EDT_id_Empresa)
// o Primeiro Retorno sera o ultimo Codigo do Cliente somente da Empresa selecionada


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)

//Gravar Orcamento