- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- gatilho campo C6_ROYALT
×
Linguagem de Programação ADVPL
Perguntas gatilho campo C6_ROYALT
- fejuchem
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 14
- Obrigados Recebidos: 0
11 anos 2 semanas atrás #18219
por fejuchem
gatilho campo C6_ROYALT foi criado por fejuchem
Boa Tarde
Fiz um gatilho no campo c6_royalt que chama a funcao = u_valid_fam_roy()
Que após incluir um produto no cadastro de pedidos, e estiver posicionado no campo c6_royalt, ele verifique o campo b1_fam.
Se b1_fam = 02 o range vai ser de 0 a 10... senão o campo c6_royalt deve ficar zerado
user function valid_fam_roy()
Local lRet := .F.
if POSICIONE("SB1",1,xFilial("SB1") + M->C6_PRODUTO,"B1_FAM") == "02"
If (M->C6_ROYALT >= 0 .and. M->C6_ROYALT <= 10)
lRet := .T.
EndIf
else
M->C6_ROYALT := 0
lRet := .T.
endif
return lRet
mas esta retornando erro de variavel nao existe c6_produto
Fiz um gatilho no campo c6_royalt que chama a funcao = u_valid_fam_roy()
Que após incluir um produto no cadastro de pedidos, e estiver posicionado no campo c6_royalt, ele verifique o campo b1_fam.
Se b1_fam = 02 o range vai ser de 0 a 10... senão o campo c6_royalt deve ficar zerado
user function valid_fam_roy()
Local lRet := .F.
if POSICIONE("SB1",1,xFilial("SB1") + M->C6_PRODUTO,"B1_FAM") == "02"
If (M->C6_ROYALT >= 0 .and. M->C6_ROYALT <= 10)
lRet := .T.
EndIf
else
M->C6_ROYALT := 0
lRet := .T.
endif
return lRet
mas esta retornando erro de variavel nao existe c6_produto
Por favor Acessar ou Registrar para participar da conversa.
- THALESCOTR
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 124
- Obrigados Recebidos: 0
11 anos 2 semanas atrás #18238
por THALESCOTR
Respondido por THALESCOTR no tópico gatilho campo C6_ROYALT
Boa tarde Felipe,
primeiramente se é gatilho você não pode retornar .T. ou .F., você tem que retornar o valor que o conterá.
Utilize o acols para buscar o valor do campo na C6.
Tente assim:
user function valid_fam_roy()
Local _nPosCod := aScan(aHeader,{|x| Alltrim(x[2]) == "C6_PRODUTO" })
Local lRet := 0 //se não estiver entre 0 e 10 retorna 0
if POSICIONE("SB1",1,xFilial("SB1") + Acols[n][_nPosCod],"B1_FAM") == "02"
If (M->C6_ROYALT >= 0 .and. M->C6_ROYALT <= 10) //se estiver entre 0 e 10 retorna o valor
lRet := M->C6_ROYALT
EndIf
EndIf
return lRet
Att
Thales
primeiramente se é gatilho você não pode retornar .T. ou .F., você tem que retornar o valor que o conterá.
Utilize o acols para buscar o valor do campo na C6.
Tente assim:
user function valid_fam_roy()
Local _nPosCod := aScan(aHeader,{|x| Alltrim(x[2]) == "C6_PRODUTO" })
Local lRet := 0 //se não estiver entre 0 e 10 retorna 0
if POSICIONE("SB1",1,xFilial("SB1") + Acols[n][_nPosCod],"B1_FAM") == "02"
If (M->C6_ROYALT >= 0 .and. M->C6_ROYALT <= 10) //se estiver entre 0 e 10 retorna o valor
lRet := M->C6_ROYALT
EndIf
EndIf
return lRet
Att
Thales
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- gatilho campo C6_ROYALT
Tempo para a criação da página:0.123 segundos