× Linguagem de Programação ADVPL

Perguntas X3_VLDUSER / C5_CONDPAG X C5_DESC3

Mais
11 anos 4 meses atrás #15446 por eduardo.araujo
Boa tarde.

Estou precisando de uma ajuda. Não sou desenvolvedor mas preciso criar uma função a ser aplicada no X3_VLDUSER do campo C5_DESC3.

Temos o campo C5_DESC3 no pedido de vendas. Este campo é de Desconto. Porém este desconto só poderá ser preenchido caso o campo C5_CONDPAG esteja com os códigos 001 ou 002. Do contrário ele deverá trazer uma mensagem informando o bloqueio. A mensagem pode ser bem pequena pois o X3_VLDUSER tem limitações.

Estou tentando aplicar a função abaixo mas tá dando erro após aparecer o alerta.

IIf (M->C5_CONDPAG="001" .OR. M->C5_CONDPAG="002",Alert("DESCONTO PERMITIDO P/ COND PAGTO 001/002"),.F.)

Este é o erro que está acontecendo logo após confirmar o Alerta:
THREAD ERROR (Eduardo, LIVIOIT) 10/07/2013 12:49:17
type mismatch on .AND. on {|x,lResValid,o| o := Self:aEntryCtrls[27],(lResValid := If(o:lModified .or. (o:Cargo <> NIL .and. o:Cargo <> M->C5_DESC3),(IIf (M->C5_CONDPAG="001" .OR. M->C5_CONDPAG="002",Alert("DESCONTO PERMITIDO P/ COND PAGTO 001/002"),.F.)) .AND. ((Positivo() .or. vazio()) .and. a410Recalc()),.T.)),(If(Type('lRefresh') == 'L' .and. lRefresh,Self:EnchRefreshAll(),)),lResValid} line : 1497





Alguém pode me ajudar?

Desde já agradeço.

Abs.
Eduardo Araujo - Consultor / Analista Protheus
(21) 9524-9365

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 4 meses atrás #15447 por kanaamlrr
Respondido por kanaamlrr no tópico X3_VLDUSER / C5_CONDPAG X C5_DESC3
Para o seu caso, acho que o ideal seria criar uma user function
User Function SUAFUNCAO()

If M->C5_CONPAG $ "001/002"
   Return .T.
EndIf

MsgInfo("DESCONTO PERMITIDO P/ COND PAGTO 001/002")

Return .F.

Pois o campo X3_VLDUSER espera um retorno lógico (.T./.F.) e da forma que você fez, ele estava retornando a mensagem e não o valor lógico.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 4 meses atrás #15498 por emnovaes
Respondido por emnovaes no tópico X3_VLDUSER / C5_CONDPAG X C5_DESC3
Boa tarde,

Realmente deve-se retornar um valor lógico (.T. / .F.) em um campo X3_VLDUSER.

Mas se não desejar criar uma função, utilizando comandos em linha, pode-se usar da seguinte forma:

IIf((M->C5_CONDPAG="001" .OR. M->C5_CONDPAG="002"),(Alert("DESCONTO PERMITIDO P/ COND PAGTO 001/002"),.T.),.F.)

Por favor Acessar ou Registrar para participar da conversa.

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