× Linguagem de Programação ADVPL

Perguntas Gatilho para preenchimento do campo C5_MENNOTA a partir do preenchimento de C6_VALOR

Mais
11 anos 4 meses atrás - 11 anos 4 meses atrás #8973 por mleandro
Olá,

estou precisando configurar um gatilho para preenchimento do campo C5_MENNOTA. Este campo, no meu caso, precisa ser preenchido com um texto padrão acrescido do resultado de uma operação aritmética simples. Mais especificamente o conteúdo será: "Valor do frete incluso no valor final da nota: R$40,00". Ou seja o cálculo será de 40% em cima do valor total da nota, que neste exemplo seria 100,00 * 0.4

Como estou começando agora a trabalhar com Protheus, não sei o que devo colocar na regra do gatilho para aparecer um texto. Outro detalhe é que o campo que aciona o gatilho faz parte de outra tabela: é o campo C6_VALOR que origina este gatilho. Seria o caso de usar "Tipo" Estrangeiro?

Posto a tela de cadastro que corresponde aos requisitos para fazer o gatilho. Convém dizer que o campo destacado em vermelho é na verdade o que seria o mais correto para usar como Domínio (Campo). Entretanto, aí está outra dúvida... Não sei como descobrir o nome desse campo.

Outro detalhe é que este gatilho será disparado somente se (condição) o campo C5_TPFRETE for igual a FOB ('F')

Posto também o que tentei realizar no gatilho como brincadeira, mas que não resultou em nada... A ideia era ter conseguido escrever algo no campo C5_MENNOTA, só para ter certeza que o gatilho estava sendo acionado.

Obrigado!


Anexos:
Ultima edição: 11 anos 4 meses atrás por mleandro.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 4 meses atrás #8975 por lalberto
Brother te aconselho ao contrário de criar um gatilho criar um ponto de entrada, segue um exemplo assim que for faturar o pedido de venda:

USER FUNCTION M460FIM()
Local aArea := GetArea()

If SC5->C5_TPFRETE == 'F'
nTotal := 0.00
If SC6->(dbSetOrder(1), dbSeek(xFilial("SC6")+SC5->C5_NUM))
While SC6->(!Eof()) .And. SC6->C6_FILIAL == xFilial("SC6") .And. SC6->C6_NUM == SC5->C5_NUM
nTotal += Round(SC6->C6_VALOR + SC6->C6_ICMSRET,2)

SC6->(dbSkip(1))
Enddo
Endif
If RecLock("SC5",.f.)
SC5->C5_MENNOTA := AllTrim(SC5->C5_MENNOTA)+" - Valor do frete incluso no valor final da nota: R$" + TransForm(Round(nTotal*0.4,2),"@E 9,999.99")
SC5->(MsUnlock())
Endif
Endif
RestArea(aArea)
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 4 meses atrás #8976 por mleandro
;)
Obrigado Luiz Alberto,

estou realmente satisfeito com tua resposta... Eu como iniciante ainda não sei quando usar uma coisa ou outra... Quando usar um gatilho ou quando usar um ponto de entrada.

Aliás, isto talvez seja um assunto para outro tópico, mas quanto aos pontos de entrada eu estou tendo dificuldades de encontrá-los. Pois o Quark já não se usa tem algum tempo, e o TDN não acho muito amigável. Onde posso encontrar os pontos de entrada para cada parte do sistema? Ou todos reunidos num só lugar? Seria interessante abrir um tópico só pra isso?

Vou testar esta sugestão e posto o resultado.

Abraço

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 4 meses atrás #8977 por lalberto
Marcos na área de downloads tem uns docs com alguns pontos de entrada, mas também são meio antigos, mas ajuda bastante, qualquer duvida posta ai pra gente ir te ajudando a se familiarizar com o sistema ok.

vai em downloads, pesquisar ok.

Abraços, e põe uma foto sua ai pra gente te conhecer melhor.

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 4 meses atrás #8984 por mleandro
Com certeza Luiz, já vou providenciar uma foto! Valeu pelo lembrete... Irei seguir as dicas, deveras valiosas!

Por favor Acessar ou Registrar para participar da conversa.

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