- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Validação de Campo tipo Data
×
Linguagem de Programação ADVPL
Perguntas Validação de Campo tipo Data
- cintra_daniel
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 95
- Obrigados Recebidos: 0
11 anos 1 mês atrás #17510
por cintra_daniel
Validação de Campo tipo Data foi criado por cintra_daniel
Pessoal Bom dia!
Me deparei com uma dúvida, que na verdade é uma coisa bem simples...
Nos campos do tipo data, quando o usuário informa somente dia e mês o sistema completa com o 2000, que nada mais é decorrente do fato do quadrante do ano estar zerado. Como o sistema pega os 2 numeros digitados no quadrante do ano e soma com 2000 para exibir o ano, não preenchendo, ele naturalmente exibe 2000.
Porém fui questionado se existe a possibilidade do sistema completar o ano com o ano corrente (Ex: 2013) ao invés dessa validação que faz a soma com 2000....
Alguém sabe se existe parâmetro para isso? Ou alguma forma de alterar essa validação?
Me deparei com uma dúvida, que na verdade é uma coisa bem simples...
Nos campos do tipo data, quando o usuário informa somente dia e mês o sistema completa com o 2000, que nada mais é decorrente do fato do quadrante do ano estar zerado. Como o sistema pega os 2 numeros digitados no quadrante do ano e soma com 2000 para exibir o ano, não preenchendo, ele naturalmente exibe 2000.
Porém fui questionado se existe a possibilidade do sistema completar o ano com o ano corrente (Ex: 2013) ao invés dessa validação que faz a soma com 2000....
Alguém sabe se existe parâmetro para isso? Ou alguma forma de alterar essa validação?
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
11 anos 1 mês atrás #17514
por kanaamlrr
Respondido por kanaamlrr no tópico Validação de Campo tipo Data
Cara, que eu saiba não existe forma de mudar isso não, só se você colocar uma função no valid desse campo tratando o valor que tem lá em alterando.
Por exemplo:
Acho que deve funcionar, faz um teste ai!
Por exemplo:
User Function SuaFunc()
Local cData := DTOS(M->SEU_CAMPO)
If Substring(cData,1,4)=='2000'
cData := '2013'+Substring(cData,5,4)
EndIf
M->SEU_CAMPO := STOD(cData)
Return .T.
Acho que deve funcionar, faz um teste ai!
Por favor Acessar ou Registrar para participar da conversa.
- cintra_daniel
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 95
- Obrigados Recebidos: 0
11 anos 1 mês atrás #17517
por cintra_daniel
Respondido por cintra_daniel no tópico Validação de Campo tipo Data
Cara, funcionou a função que você deu de exemplo... eu cheguei a pensar em algo parecido pra fazer, porém quis checar primeiro se não tinha algo padrão do sistema pra tratar isso..
eu usei a sua função só alterei um coisa pra ficar ainda mais genérico...
User Function xValidaDt()
Local cData := DTOS(M->XLM_DATA)
If Substring(cData,1,4)=='2000'
cData := Str(Year(Date()))+Substring(cData,5,4)
EndIf
M->XLM_DATA := STOD(cData)
Return .T.
No trecho marcado de vermelho ai, você pode ver que eu setei pro sistema pegar o ano da data atual ao invés de chumbar 2013, porque ai serve para qualquer ano ^^
Muito obrigado!
eu usei a sua função só alterei um coisa pra ficar ainda mais genérico...
User Function xValidaDt()
Local cData := DTOS(M->XLM_DATA)
If Substring(cData,1,4)=='2000'
cData := Str(Year(Date()))+Substring(cData,5,4)
EndIf
M->XLM_DATA := STOD(cData)
Return .T.
No trecho marcado de vermelho ai, você pode ver que eu setei pro sistema pegar o ano da data atual ao invés de chumbar 2013, porque ai serve para qualquer ano ^^
Muito obrigado!
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Validação de Campo tipo Data
Tempo para a criação da página:0.083 segundos