- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Atualizar campo do cabeçalho da NF de Entrada (MATA103)
×
Linguagem de Programação ADVPL
Perguntas Atualizar campo do cabeçalho da NF de Entrada (MATA103)
- Rstrozi
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 123
- Obrigados Recebidos: 0
11 anos 10 meses atrás #9304
por Rstrozi
Atualizar campo do cabeçalho da NF de Entrada (MATA103) foi criado 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.
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.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 10 meses atrás #9305
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Re: Atualizar campo do cabeçalho da NF de Entrada (MATA103)
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.
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.
- Rstrozi
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 123
- Obrigados Recebidos: 0
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 10 meses atrás #9325
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Re: Atualizar campo do cabeçalho da NF de Entrada (MATA103)
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.
- Rstrozi
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 123
- Obrigados Recebidos: 0
11 anos 10 meses atrás #9336
por Rstrozi
Respondido por Rstrozi no tópico Re: Atualizar campo do cabeçalho da NF de Entrada (MATA103)
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.
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.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Atualizar campo do cabeçalho da NF de Entrada (MATA103)
Tempo para a criação da página:0.140 segundos