× Linguagem de Programação ADVPL

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

Mais
11 anos 10 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 10 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 10 meses atrás #9321 por Rstrozi
Esse Luiz Alberto é o cara! :)

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 10 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 10 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.140 segundos
Joomla templates by a4joomla