Perguntas Validar campo

Mais
8 anos 11 meses atrás #28043 por caiotec
Validar campo foi criado por caiotec
Prezados

Estou tentando validar um campo que criei na tabela SC6 usando uma userfuction:

#INCLUDE "PROTHEUS.CH"

User Function VALID

If VAL (nNum) < 10
MsgInfo("Valor incorreto")
Return(.F.)
Else
Return(.T.)
EndIf
Return

Porém ocorre erro typemismatch, a ideia era que se o usuário informasse um número menor que 10, o sistema informava a mensagem valor incorreto - enquanto o valor não fosse corrigido o usuário não poderia prosseguir com o cadastro. Tentei outras formas mas não consegui, como sou novo de ADVPL, venho através deste pedir ajuda.

Obrigado.

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 11 meses atrás #28044 por lalberto
Respondido por lalberto no tópico Validar campo
Caio boa tarde, pra começar, troque o nome da sua função VALID pois é um nome padrão dentro da linguagem advpl e pode ocasionar erros futuros, tente VldNum por exemplo.

Segundo vc deverá ou mandar um parâmetro pra sua função ou utilizar a leitura do campo que vc criou;

User Function VldNum(nNum) // Envio de Parametros, na validacao do campo na SC6 Você coloca U_VldNum(M->C6_NUM) por exemplo:

Ou

Capturando o conteudo do campo na SC6 na digitação do Pedido de Vendas:

No campo de Validação da SC6 Coloque apenas U_VldNum()

User Function VldNum()
Local nPosNum := AScan(aHeader,{|x| AllTrim(x[2]) == "C6_NUM" })

// Verifica se a Linha nao Esta Deletada
If !aCols[n,Len(aHeader)+1]
If Val(aCols[n,nPosNum]) < 10
MsgStop("Atenção Valor Menor que 10 !")
Return .f.
Endif
Endif
Return .f.

////

#INCLUDE "PROTHEUS.CH"

User Function VALID

If VAL (nNum) < 10
MsgInfo("Valor incorreto")
Return(.F.)
Else
Return(.T.)
EndIf
Return

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
8 anos 11 meses atrás #28045 por lalberto
Respondido por lalberto no tópico Validar campo
Perdão usei como exemplo o campo C6_NUM, vc deverá substituir pelo seu campo ok.

Abraços

:woohoo: :woohoo:

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
8 anos 11 meses atrás #28054 por caiotec
Respondido por caiotec no tópico Validar campo
Boa Noite

Obrigado Luiz, vou testar aqui.

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 11 meses atrás #28056 por caiotec
Respondido por caiotec no tópico Validar campo
Luiz

Vou ter que usar essa validação em uma outra tabela, porém a tela que "criei" usando AXCADASTRO, para este caso não vai funcionar essa função certo? Devido a leitura que faz no aHEADER e no aCOLS?

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 11 meses atrás #28063 por lalberto
Respondido por lalberto no tópico Validar campo
Segue o exemplo no caso da utilização de um axcadastro:

User Function VldNum()

// Verifica se a Linha nao Esta Deletada
If Val(M->Z1_NUMERO) < 10
MsgStop("Atenção Valor Menor que 10 !")
Return .f.
Endif

Return .t.

Neste caso basta colocar na validação do campo Z1_NUMERO U_VldNum()

Caso o usuário digite um valor menor que 10 será apresentada a mensagem e o mesmo não poderá sair do campo,
caso contrário passará normalmente.

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.

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