FoxPro/Visual FoxPro - Problema con substr e input mask

 
Vista:
Imágen de perfil de Yogui

Problema con substr e input mask

Publicado por Yogui (79 intervenciones) el 28/05/2014 18:41:19
Holaaa, soy yo otra vez, tengo otro problema, resulta que quiero ingresar en un textbox una fecha (le puse el input mask 99/99/9999)
Y luego quiero obtener valores más pequeños a partir de esa fecha, lo que tengo es lo siguiente

fecha=thisform.text1.value
=messagebox(fecha)

a1= substr(fecha, 1,2) &&muestra el dia
a2= substr(fecha, 4,5) &&muestra el mes
a3= substr(fecha, 7,10) &&muestra el año con 4 digitos

=messagebox(a1)
=messagebox(a2)
=messagebox(a3)

Resulta que el ejecutar ese código me muestra bien el a1 y el a3, pero el a2 no, me salen por el contrario más caracteres :s





Probé para ver qué sucedía con este otro:

a1= substr(fecha, 1,2)
a2= substr(fecha, 2,3)
a3= substr(fecha, 3,4)
a4= substr(fecha, 4,5)
a5= substr(fecha, 5,6)
a6= substr(fecha, 6,7)
a7= substr(fecha, 7,8)
a8= substr(fecha, 8,9)
a9= substr(fecha, 9,10)


=messagebox(a1)
=messagebox(a2)
=messagebox(a3)
=messagebox(a4)
=messagebox(a5)
=messagebox(a6)
=messagebox(a7)

Y resulta que cuando veo lo que muestra va asi (por ejemplo que la fecha sea 11/12/2014)

Para a1: 11
Para a2: 1/1
Para a3: 1/12/
Para a4: 12/20
Para a5: 2/2014
Para a6: /2014
Para a7: 2014
Para a8: 014
Para a9: 13


Si se dan cuenta la cantidad de caracteres va aumentando de 1 en 1 hasta tener 6 caracteres, y luego va disminuyendo de nuevo :S
La verdad es que no entiendo por qué sucede eso, en propiedades no detecto nada que pueda ser el motivo :S
Ayudaa :(
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Yogui

Problema con substr e input mask

Publicado por Yogui (79 intervenciones) el 28/05/2014 19:08:54
Ya me di cuenta :(
El tercer valor de parámetro es la cantidad de caracteres a mostrar, yo pensaba que el 2do y 3ero era el rango :)
Gracias :3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Problema con substr e input mask

Publicado por Fidel José (558 intervenciones) el 28/05/2014 21:47:24
Yogui:
Si pretendes poner una fecha en un textbox (o sea un tipo de dato "D" (date)), en el textbox va lo siguiente:
.Format="D"
.Value=Ctod("")
Nada más que eso. El value es necesario si el textbox no está atado por ControlSource a un campo Fecha o a una propiedad que tenga un valor tipo Date.
Así como lo pones, el textbox arrojará una cadena (string formateado) y te pierdes todas las funciones de fecha o tienes que transformar Ctod(thisform.text1.value).

with thisform.TxtFecha
.Format="D"
.Value=Date(2014,3,12)
endwith
Luego tienes:
lnAño= Year(thisform.TxtFecha)
lnMes=MOnth(thisform.TxtFecha)
lnDia=Day(Thisform.TxtFecha)

etc.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar