Jump to content
Fivewin Brasil

Máscara no get


pasim

Recommended Posts

Bom dia!

Amigos...

Tenho um campo para digitação de n° de contrato, e este contrato tem um formato padrão assim T9999F quero fazer uma máscara que impeça do usuário digitar errado...

Ou seja, no lugar da letra não aceite n° e vice-versa...

Paulo

Clipper 5.3b/FW2.4/WS

pasimplicio@yahoo.com.br

MSN: pasimplicio@hotmail.com

Editado por - pasim on 04/05/2005 12:14:11

Link to comment
Share on other sites

  • 2 weeks later...

Amigos me ajudem nesta também.

Coloquei a seguinte máscara picture "99/99" quero forçar o usuário digitar os números, ou seja não deixar sair do get se ele não digitar alguma coisa, parece pergunta boba, deve ser mesmo... icon_smile_sad.gif para quem sabe! Já tentei de diversas formas e não consegui...

icon_smile_sad.gificon_smile_sad.gificon_smile_sad.gif

Paulo.

Link to comment
Share on other sites

OLA

Eu fiz assim para o campo (entre com a data);

@1,6 get ndata of odlgClien valid campovazio (ndata )

*

STATIC FUNCTION Campovazio( ccampo )

IF EMPTY( cCampo )

ALERT( "Este campo nao pode ser vazio" )

RETURN( .F. )

ENDIF

RETURN( .T. )

ICO

CORUMBA/MS

Editado por - ico on 18/05/2005 18:41:05

Editado por - ico on 18/05/2005 18:42:21

Link to comment
Share on other sites

Olá Paulo

@ 01,01 Get oGet var cGet Pict "99/99" Valid(cGet#" / ")

vc está definindo ele com a barra então não dá para comparar com o empty(), pois sempre terá a barra no meio e nunca será vazio icon_smile_big.gif

Vagner Wirts

Clipper 5.2 Lib 5.3 - Blinker 5.0 FW 2.0, Harbour 43.0 (Flex), xHarbour 99.1 99.2 99.3 (Simplex) FW 2.5 icon_smile_big.gif

Link to comment
Share on other sites

Paulo,

Além de:

@ 01,01 Get oGet var cGet Pict "99/99" Valid cGet#" / "

Acrescente:

@ 01,01 Get oGet var cGet Pict "99/99" Valid cGet#" / " .and. at(" ",cGet)=0

Porque, deixando somente cGet#" / ", o usuário pode digitar por exemplo "01/9 " e irá passar.

Se for mes/ano que voce estiver tratando, acrescente ainda:

.and. val(subs(cGet,1,2))>=1 .and. val(subs(cGet,1,2))<=12

Paulo/CONTATO SISTEMAS

Clipper53b /FW26 /Blinker70

Link to comment
Share on other sites

Amigos, Obrigado a todos, fiz assim:

STATIC FUNCTION Campomes( Mea )

IF Mea = ' / ' .or. (Empty(Substr(Mea,1,2))) .or. (Empty(Substr(Mea,4,2)))

MsgStop( "Digite o mês e ano corretos!","Atenção")

RETURN(.F.)

ENDIF

...e retornou o resultado que eu queria. "Xará" vc tem razão vou melhorar se preciso...

Valew a todos!

Editado por - pasim on 19/05/2005 09:09:54

Link to comment
Share on other sites

Paulo

Não é uma boa política usar campo dia/mês, mas, na premissa que o ano é o corrente ou identificado de outro modo, você deve fazer uma critica da data.

Aqui vai uma sugestão que pode ser melhorada

**************************************

diames="0000"

@10,10 get diames pict "@r 99/99" valid chdiames(diames)

read

func chdiames

para _dt1

local vrmes

vlmes=val(substr(_dt1,3,2))

vldia=val(substr(_dt1,1,2))

ano=year(date())

do case

case vlmes = 0 .or. vlmes > 12

return .f.

case vlmes=2

if int(ano/4)-(ano/4) = 0

if vldia < 30 .and. vldia> 0

return .t.

endif

else

if vldia < 29 .and. vldia> 0

return .t.

endif

endif

return .f.

case vlmes = 1 .or. vlmes = 3 .or. vlmes = 5 .or. vlmes = 7 .or. vlmes = 8 .or. vlmes = 10 .or. vlmes = 12

if vldia < 32 .and. vldia > 0

return .t.

endif

case vlmes = 4 .or. vlmes = 6 .or. vlmes = 9 .or. vlmes = 11

if vldia < 31 .and. vldia > 0

return .t.

endif

endcase

return .f.

**************************************

Mangueira

Link to comment
Share on other sites

Uma outra opção:

WPERIODO:=SPACE(4)

@ 0,0 SAY [PERÃODO:] GET WPeriodo PICT[@R 99/99] VALID (CHKDATA(WPERIODO))

FUNCTION CHKDATA(PAR)

*********************

IF EMPTY(PAR)

ELSE

IF LEFT(PAR,2) < [01] .OR. LEFT(PAR,2) > [12]

ERRO([Mês inválido. Tecle algo!])

RETURN(.F.)

ENDIF

IF RIGHT(PAR,4) < [0001] .OR. RIGHT(PAR,4) > [2999]

ERRO([Ano inválido. Tecle algo!])

RETURN(.F.)

ENDIF

ENDIF

RETURN(.T.)

* Desta forma vc economiza um caracter "/", colocando-o na máscara. E a função fica genérica. É só passar o parâmetro.

* A validade de ano vc estabelece.

Sds.

**

citação:

Amigos me ajudem nesta também.

Coloquei a seguinte máscara picture "99/99" quero forçar o usuário digitar os números, ou seja não deixar sair do get se ele não digitar alguma coisa, parece pergunta boba, deve ser mesmo... icon_smile_sad.gif para quem sabe! Já tentei de diversas formas e não consegui...

icon_smile_sad.gificon_smile_sad.gificon_smile_sad.gif

Paulo.


id=quote>id=quote>

-------------------------

qadoshy@hotmail.com (Recife-PE)

Clipper 5.3b/BLinker7/FW

"Sábio é aquele que ensina para saber mais. (Desconhecido)"

Link to comment
Share on other sites

perdão, tinha ído em Clipper.

Agora vai.

**

citação:

Uma outra opção:

WPERIODO:=SPACE(4)

@ 0,0 SAY [PERÃODO:] GET WPeriodo PICT[@R 99/99] VALID (CHKDATA(WPERIODO))

FUNCTION CHKDATA(PAR)

*********************

IF EMPTY(PAR)

MSGALERT([Entre com o período.])

RETURN(.F.)

ELSE

IF LEFT(PAR,2) < [01] .OR. LEFT(PAR,2) > [12]

MSGALERT([Mês inválido!])

RETURN(.F.)

ENDIF

IF RIGHT(PAR,4) < [0001] .OR. RIGHT(PAR,4) > [2999]

MSGALERT([Ano inválido!])

RETURN(.F.)

ENDIF

ENDIF

RETURN(.T.)

* Desta forma vc economiza um caracter "/", colocando-o na máscara. E a função fica genérica. É só passar o parâmetro.

* A validade de ano vc estabelece.

Sds.

**

citação:

Amigos me ajudem nesta também.

Coloquei a seguinte máscara picture "99/99" quero forçar o usuário digitar os números, ou seja não deixar sair do get se ele não digitar alguma coisa, parece pergunta boba, deve ser mesmo... icon_smile_sad.gif para quem sabe! Já tentei de diversas formas e não consegui...

icon_smile_sad.gificon_smile_sad.gificon_smile_sad.gif

Paulo.


id=quote>id=quote>

-------------------------

qadoshy@hotmail.com (Recife-PE)

Clipper 5.3b/BLinker7/FW

"Sábio é aquele que ensina para saber mais. (Desconhecido)"


id=quote>id=quote>

-------------------------

qadoshy@hotmail.com (Recife-PE)

Clipper 5.3b/BLinker7/FW

"Sábio é aquele que ensina para saber mais. (Desconhecido)"

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...