- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Gatilho para preenchimento do campo C5_MENNOTA a partir do preenchimento de C6_VALOR
×
Linguagem de Programação ADVPL
Perguntas Gatilho para preenchimento do campo C5_MENNOTA a partir do preenchimento de C6_VALOR
- mleandro
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 31
- Obrigados Recebidos: 0
11 anos 10 meses atrás - 11 anos 10 meses atrás #8973
por mleandro
Gatilho para preenchimento do campo C5_MENNOTA a partir do preenchimento de C6_VALOR foi criado 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!
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!
Ultima edição: 11 anos 10 meses atrás por mleandro.
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 #8975
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: Gatilho para preenchimento do campo C5_MENNOTA a partir do preenchimento de C6_VALOR
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.
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.
- mleandro
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 31
- Obrigados Recebidos: 0
11 anos 10 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
Respondido por mleandro no tópico Re: Gatilho para preenchimento do campo C5_MENNOTA a partir do preenchimento de C6_VALOR
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.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 10 meses atrás #8977
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: Gatilho para preenchimento do campo C5_MENNOTA a partir do preenchimento de C6_VALOR
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.
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.
- mleandro
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 31
- Obrigados Recebidos: 0
11 anos 10 meses atrás #8984
por mleandro
Respondido por mleandro no tópico Re: Gatilho para preenchimento do campo C5_MENNOTA a partir do preenchimento de C6_VALOR
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.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Gatilho para preenchimento do campo C5_MENNOTA a partir do preenchimento de C6_VALOR
Tempo para a criação da página:0.171 segundos