Perguntas Validar campo
- caiotec
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 219
- Obrigados Recebidos: 0
9 anos 6 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.
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.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
9 anos 6 meses atrás #28044
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 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
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.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
9 anos 6 meses atrás #28045
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 Validar campo
Perdão usei como exemplo o campo C6_NUM, vc deverá substituir pelo seu campo ok.
Abraços
Abraços
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.
- caiotec
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 219
- Obrigados Recebidos: 0
- caiotec
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 219
- Obrigados Recebidos: 0
9 anos 6 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?
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.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
9 anos 6 meses atrás #28063
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 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.
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.131 segundos