× Linguagem de Programação ADVPL

Perguntas Atualizar campo do cabeçalho da NF de Entrada (MATA103)

Mais
11 anos 3 meses atrás #9304 por Rstrozi
Boa tarde pessoal,

Existe a possibilidade de atualizar um campo do cabeçalho da NF de Entrada?

Minha idéia é a seguinte: criar um campo na tabela SA2 para armazenar a espécie de documento utilizada com mais frequência pelo fornecedor (SPED, NFE, CTR, NFS, etc) e com base no código do fornecedor+loja informados no cabeçalho da NF de Entrada (variáveis CA100FOR + CLOJA) buscar esta informação automaticamente, evitando assim erros na entrada de documentos.

Encontrei o P.E. MT103ESP que retorna a especie do documento, porém ele age após o <Enter> no campo 'Formulário Próprio?'. Tentei incluir um gatilho no campo F1_LOJA chamando este P.E. (isto funcionaria? chamar um P.E. via gatilho?) porém não funcionou. Notei que a tabela SF1 não possui nenhum gatilho, acredito que por ser tratada toda por variáveis no cabeçalho.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 3 meses atrás #9305 por lalberto
Ao invez de gatilho vai no campo F1_DOC no campo validação de usuário e coloca uma função de usuario:

Exemplo

U_PEGAESP()

User Function PegaEsp()

If !Empty(SA2->A2_ESP)
cEspecie := SA2->A2_ESP
Endif
Return .t.

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 3 meses atrás #9321 por Rstrozi
Esse Luiz Alberto é o cara! :)

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 3 meses atrás #9325 por lalberto
Deu Certo Cara ?

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 3 meses atrás #9336 por Rstrozi
Boa noite Luiz, desculpe a demora, estava criando os campos e fazendo alguns testes.

O resultado final foi este:

USER FUNCTION PEGAESP

If cTipo $ '#N#C#I#' .and. cFormul == 'N'
If !Empty(SA2->A2_NWESPEC)
cEspecie := SA2->A2_NWESPEC
EndIf
ElseIf cTipo $ '#D#B#' .and. cFormul == 'N'
If !Empty(SA1->A1_NWESPEC)
cEspecie := SA1->A1_NWESPEC
EndIf
ElseIf cFormul == 'S'
cEspecie := 'SPED'
EndIf

Return .T.

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.120 segundos
Joomla templates by a4joomla