Ayuda Orientación Sobre un Get "Pendiente"
Ayuda Orientación Sobre un Get "Pendiente"
Amigos muy buenas tardes.
Tengo la siguiente necesidad.
Para Actualizar dato de un Get:
1. Mostrar Dato del Get antes de Actualizar en Formato: "11.111.111-1"
2. Al momento de Tonar el Focus el Get, Digitar en Formato : "11111111-1"
3. Despues de Validar dato del Get en una funcion, Mostrar dato Digitado en Formato: "22.222.222-2"
Como podría dar solución a este requerimiento.
Muchos Saludos
Antonio
Tengo la siguiente necesidad.
Para Actualizar dato de un Get:
1. Mostrar Dato del Get antes de Actualizar en Formato: "11.111.111-1"
2. Al momento de Tonar el Focus el Get, Digitar en Formato : "11111111-1"
3. Despues de Validar dato del Get en una funcion, Mostrar dato Digitado en Formato: "22.222.222-2"
Como podría dar solución a este requerimiento.
Muchos Saludos
Antonio
Last edited by remtec on Thu Dec 12, 2019 3:07 pm, edited 1 time in total.
-
- Posts: 79
- Joined: Sun Oct 09, 2005 3:09 pm
- Location: Mexico
Re: Ayuda Orientación Sobre un Get
Podrás poner un ejemplo con valores inicial, modificado y como se mostraría antes y después de modificado
Enviado desde mi FIG-LX3 mediante Tapatalk
Enviado desde mi FIG-LX3 mediante Tapatalk
-
- Posts: 91
- Joined: Wed Jan 02, 2019 8:36 am
Re: Ayuda Orientación Sobre un Get
Buenas noches. Prueba esto.
Tal vez sea hacer un poco de magia, pero si el sueldo del mes dependiera de que me lo piden, (por muy poco ortodoxo que sea), pues lo haría.
Tal vez sea hacer un poco de magia, pero si el sueldo del mes dependiera de que me lo piden, (por muy poco ortodoxo que sea), pues lo haría.
Code: Select all
STATIC FUNCTION GETGET() // DOBLE GET QUE SIMULA DOS PICTURES DISTINTOS. UNO PARA MOSTRAR Y OTRO PARA EDITAR
LOCAL oDlg, oFont, oBtn
LOCAL oGet1, oGet2
LOCAL cVar1:="11.222.333-4"
LOCAL cVar2:="11222333-4"
DEFINE FONT oFont NAME "Segoe UI Light" SIZE 0,-14
DEFINE DIALOG oDlg SIZE 300,300 PIXEL TITLE "Get formateado"
@45,50 GET oGet1 VAR cVar1 OF oDlg SIZE 50,16 PICTURE "99.999.999-9" FONT oFont PIXEL
oGet1:bGotFocus:={ || oGet1:Hide(), oGet2:Show(), oGet2:GotFocus() }
@45,50 GET oGet2 VAR cVar2 OF oDlg SIZE 50,16 PICTURE "########-#" FONT oFont PIXEL
oGet2:bLostFocus:={ || oGet1:Show(), oGet2:Hide(), oGet1:cText( Cambia_get(cVar2) ) }
@120,70 BUTTON oBtn PROMPT "&Cerrar" OF oDlg SIZE 70,20 PIXEL FONT oFont ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTER
oFont:End()
RETURN(NIL)
STATIC FUNCTION Cambia_get(cValue)
LOCAL cReturn:=""
cReturn=LEFT(cValue,2)+"."
cReturn=cReturn+RIGHT( LEFT(cValue,5) , 3)+"."
cReturn=cReturn+RIGHT( LEFT(cValue,8) , 3)+"-"
cReturn=cReturn+RIGHT(ALLTRIM(cValue),1)
** poner tu código de comprobaciones, etc....
return(cReturn)
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: Ayuda Orientación Sobre un Get
Code: Select all
#include "fivewin.ch"
function Main()
local c1 := "Previous "
local c2 := "111111111"
local c3 := "Next Get "
local oDlg, oFont, oGet
SetGetColorFocus()
DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-24
DEFINE DIALOG oDlg SIZE 300,300 PIXEL TRUEPIXEL FONT oFont
@ 40,40 GET c1 SIZE 200,36 PIXEL OF oDlg
@ 90,40 GET oGet VAR c2 SIZE 200,36 PICTURE "@R ##.###.##-#" PIXEL OF oDlg ;
WHEN ( oGet:oGet:Picture := "@R ########-#", .t. ) ;
VALID ( oGet:oGet:Picture := "@R ##.###.##-#", oGet:Refresh(), .t. )
@ 140,40 GET c3 SIZE 200,36 PIXEL OF oDlg
@ 220,40 BTNBMP PROMPT "OK" SIZE 220,40 PIXEL OF oDlg FLAT ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTERED
RELEASE FONT oFont
? c2
return nil
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
-
- Posts: 91
- Joined: Wed Jan 02, 2019 8:36 am
Re: Ayuda Orientación Sobre un Get
Simple, limpio, perfecto.
Yo no había conseguido cambiar el Picture.
Solo un pequeño detalle de tu código. Falta un # en el picture del Valid.
Simple, clean, perfect.
I had not managed to change the Picture.
Just a little detail of your code. A # is missing in the Valid picture.
Yo no había conseguido cambiar el Picture.
Solo un pequeño detalle de tu código. Falta un # en el picture del Valid.
Simple, clean, perfect.
I had not managed to change the Picture.
Just a little detail of your code. A # is missing in the Valid picture.
Code: Select all
VALID ( oGet:oGet:Picture := "@R ##.###.##-#", oGet:Refresh(), .t. ) // previus
VALID ( oGet:oGet:Picture := "@R ##.###.###-#", oGet:Refresh(), .t. ) // actual
Re: Ayuda Orientación Sobre un Get
Hola G. N. Rao. y Jesus.
Muchas gracias a ambos por su ayuda y tiempo dedicado. Se ha hecho la magia
Es lo que necesito y lo aplicare a mi codigo.
Muchos Saludos
Antonio.
Muchas gracias a ambos por su ayuda y tiempo dedicado. Se ha hecho la magia
Es lo que necesito y lo aplicare a mi codigo.
Muchos Saludos
Antonio.
Re: Ayuda Orientación Sobre un Get
Hola Roa
Disculpa que te moleste.
Tengo 2 dudas sobre tu codigo.
1. En el Valid, necesito mandar a validar el Get, donde se debe aplicar un calculo matematico, si es correcto permite seguir, si es incorrecto, se debe seguir pidiendo el dato del Get.
2. El formato de Get es "##.###.###-#", donde se puede ingresar un dato como "22.222.222-2" y tambien puede ingresar una dato como "2.222.222-2", en el ultimo caso, es "-" queda corrido.
En espera de su comentario, Muchos Saludos.
Antonio.
Disculpa que te moleste.
Tengo 2 dudas sobre tu codigo.
1. En el Valid, necesito mandar a validar el Get, donde se debe aplicar un calculo matematico, si es correcto permite seguir, si es incorrecto, se debe seguir pidiendo el dato del Get.
2. El formato de Get es "##.###.###-#", donde se puede ingresar un dato como "22.222.222-2" y tambien puede ingresar una dato como "2.222.222-2", en el ultimo caso, es "-" queda corrido.
En espera de su comentario, Muchos Saludos.
Antonio.
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: Ayuda Orientación Sobre un Get "Pendiente"
1. En el Valid, necesito mandar a validar el Get, donde se debe aplicar un calculo matematico, si es correcto permite seguir, si es incorrecto, se debe seguir pidiendo el dato del Get.
Code: Select all
VALID If( <calculation-valid>, ( oGet:oGet:Picture := "@R ##.###.###-#", oGet:Refresh(), .t. ), .f. )
I do not understand.2. El formato de Get es "##.###.###-#", donde se puede ingresar un dato como "22.222.222-2" y tambien puede ingresar una dato como "2.222.222-2", en el ultimo caso, es "-" queda corrido.
Please explain clearly.
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: Ayuda Orientación Sobre un Get "Pendiente"
Hola Roa.
Muchas gracias por tu ayuda y atención.
Disculpa todas las molestias que causo.
En relación a tu pregunta:
Los datos que recibirá el Get, tendra valores como los siguientes.
" 11.111.111-1" Formato maximo que recibe el Get.
" 2.22.222-1"
" 7.777.777-7"
Este valor representa el Rut, que es el numero unico de identificación de cada persona.
11.111.111 Nro de Persona y Digito despues del "-", representa el digito verificador del Rut.
Quizas no se pueda realizar como pienso.
Reitero mis infinitas gracias y que estes muy bien.
Muchos Saludos.
Antonio.
Muchas gracias por tu ayuda y atención.
Disculpa todas las molestias que causo.
En relación a tu pregunta:
Los datos que recibirá el Get, tendra valores como los siguientes.
" 11.111.111-1" Formato maximo que recibe el Get.
" 2.22.222-1"
" 7.777.777-7"
Este valor representa el Rut, que es el numero unico de identificación de cada persona.
11.111.111 Nro de Persona y Digito despues del "-", representa el digito verificador del Rut.
Quizas no se pueda realizar como pienso.
Reitero mis infinitas gracias y que estes muy bien.
Muchos Saludos.
Antonio.
-
- Posts: 91
- Joined: Wed Jan 02, 2019 8:36 am
Re: Ayuda Orientación Sobre un Get "Pendiente"
Hola
Lo que quieres decir es que si el usuario no introduce el primer numero (porque es cero o no existe), la cadena no se formatea correctamente ?
Lo que quieres decir es que si el usuario no introduce el primer numero (porque es cero o no existe), la cadena no se formatea correctamente ?
Re: Ayuda Orientación Sobre un Get "Pendiente"
Hola Jesus
Muchisimas gracias por tu ayuda y preocupacion.
El usuario que recepcione un paciente, pedira su rut y este podra mayormente su rut con cifra Mayor o igual a 10 millones, por lo que digitara Ej. 10033785-9 y se muestra como 10.033.785-9, pero si el Rut es menor a 10 Millones, entonces digitara: 8826054-5 y se muestra como 8.826.054-5.
Los rut no llevan 0 a la izquierda, por lo que no se antepone este digito, se digita tal como se asigno a su cedula.
Muchos Saludos.
Antonio
Muchisimas gracias por tu ayuda y preocupacion.
El usuario que recepcione un paciente, pedira su rut y este podra mayormente su rut con cifra Mayor o igual a 10 millones, por lo que digitara Ej. 10033785-9 y se muestra como 10.033.785-9, pero si el Rut es menor a 10 Millones, entonces digitara: 8826054-5 y se muestra como 8.826.054-5.
Los rut no llevan 0 a la izquierda, por lo que no se antepone este digito, se digita tal como se asigno a su cedula.
Muchos Saludos.
Antonio
-
- Posts: 91
- Joined: Wed Jan 02, 2019 8:36 am
Re: Ayuda Orientación Sobre un Get "Pendiente"
Buenas tardes Antonio
Entonces creo que lo tienes muy fácil.
Usando el ejemplo del Sr. G. N. Rao., simplemente en el VALID añades tu función que valida el número.
Para la edición del get, tienes dos opciones :
1) que digiten todos los números (sean 8 o 9) en formato "123456789"
2) que digiten todos los números (sean 8 o 9) en formato "12345678-9", para lo cual el usuario deberá pulsar la tecla "-" si el número es inferior a 10 millones
y luego tu función, (la que valida el número de documento), dependiendo de la longitud introducida, debe formatear el resultado a mostrar.
a) si se han introducido 9 digitos, se queda tal cual la clausula PICTURE "12.345.678-9"
B) si se han introducido 8 dígitos, añade 1 espacio en blanco " " delante, y con el mismo PICTURE resultará " 1.234.567-8"
tu función debe devolver verdadero o falso, según si el número de documento es válido o no.
Saludos
Entonces creo que lo tienes muy fácil.
Usando el ejemplo del Sr. G. N. Rao., simplemente en el VALID añades tu función que valida el número.
Para la edición del get, tienes dos opciones :
1) que digiten todos los números (sean 8 o 9) en formato "123456789"
2) que digiten todos los números (sean 8 o 9) en formato "12345678-9", para lo cual el usuario deberá pulsar la tecla "-" si el número es inferior a 10 millones
y luego tu función, (la que valida el número de documento), dependiendo de la longitud introducida, debe formatear el resultado a mostrar.
a) si se han introducido 9 digitos, se queda tal cual la clausula PICTURE "12.345.678-9"
B) si se han introducido 8 dígitos, añade 1 espacio en blanco " " delante, y con el mismo PICTURE resultará " 1.234.567-8"
tu función debe devolver verdadero o falso, según si el número de documento es válido o no.
Saludos
Re: Ayuda Orientación Sobre un Get "Pendiente"
Buenas Tardes. seria mucho pedir que cuando uno escribe empiece a llenar de derecha a izquierda
saludos
saludos
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: Ayuda Orientación Sobre un Get "Pendiente"
What JESUS MARIN said is the way to go.
Use the clause RIGTTOLEFT
Code: Select all
@ 90,40 GET oGet VAR c2 SIZE 200,36 PICTURE "@R ##.###.###-#" PIXEL OF oDlg ;
WHEN ( oGet:oGet:Picture := "@KR ########-#", .t. )
oGet:bValid := <|g|
if Len( AllTrim( c2 ) ) < 8
return .f.
endif
c2 := PadL( AllTrim( c2 ), 9 )
g:oGet:Picture := "@R ##.###.###-#"
g:Refresh()
return .t.
>
Already implemented, but only for NUMERIC variables.Buenas Tardes. seria mucho pedir que cuando uno escribe empiece a llenar de derecha a izquierda
Use the clause RIGTTOLEFT
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India