FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ayuda Orientaci贸n Sobre un Get "Pendiente"
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Ayuda Orientaci贸n Sobre un Get "Pendiente"
Posted: Fri Dec 06, 2019 10:51 PM

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

FWH 22.10 - HARBOUR - PELLES C
Posts: 111
Joined: Sun Oct 09, 2005 03:09 PM
Re: Ayuda Orientaci贸n Sobre un Get
Posted: Sat Dec 07, 2019 03:05 PM

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

Saludos

Atentamente

Jose F Dominguez Serafin

email admsoporte@gmail.com
Posts: 199
Joined: Wed Jan 02, 2019 08:36 AM
Re: Ayuda Orientaci贸n Sobre un Get
Posted: Wed Dec 11, 2019 08:40 PM
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.
Code (fw): Select all Collapse
聽
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)
Jes煤s Mar铆n
deumare@gmail.com
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Ayuda Orientaci贸n Sobre un Get
Posted: Thu Dec 12, 2019 06:35 AM


Code (fw): Select all Collapse
#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
Posts: 199
Joined: Wed Jan 02, 2019 08:36 AM
Re: Ayuda Orientaci贸n Sobre un Get
Posted: Thu Dec 12, 2019 06:57 AM
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.


Code (fw): Select all Collapse
VALID ( oGet:oGet:Picture := "@R ##.###.##-#", oGet:Refresh(), .t. )            // previus
VALID ( oGet:oGet:Picture := "@R ##.###.###-#", oGet:Refresh(), .t. )          // actual
Jes煤s Mar铆n
deumare@gmail.com
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Ayuda Orientaci贸n Sobre un Get
Posted: Thu Dec 12, 2019 02:39 PM

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.

FWH 22.10 - HARBOUR - PELLES C
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Ayuda Orientaci贸n Sobre un Get
Posted: Thu Dec 12, 2019 03:06 PM

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.

FWH 22.10 - HARBOUR - PELLES C
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Ayuda Orientaci贸n Sobre un Get "Pendiente"
Posted: Thu Dec 12, 2019 10:27 PM
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 (fw): Select all Collapse
VALID If( <calculation-valid>, ( oGet:oGet:Picture := "@R ##.###.###-#", oGet:Refresh(), .t. ), .f. )


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.


I do not understand.
Please explain clearly.
Regards



G. N. Rao.

Hyderabad, India
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Ayuda Orientaci贸n Sobre un Get &quot;Pendiente&quot;
Posted: Fri Dec 13, 2019 12:21 AM

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.

FWH 22.10 - HARBOUR - PELLES C
Posts: 199
Joined: Wed Jan 02, 2019 08:36 AM
Re: Ayuda Orientaci贸n Sobre un Get &quot;Pendiente&quot;
Posted: Fri Dec 13, 2019 11:26 AM

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 ?

Jes煤s Mar铆n
deumare@gmail.com
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Ayuda Orientaci贸n Sobre un Get &quot;Pendiente&quot;
Posted: Fri Dec 13, 2019 01:27 PM

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

FWH 22.10 - HARBOUR - PELLES C
Posts: 199
Joined: Wed Jan 02, 2019 08:36 AM
Re: Ayuda Orientaci贸n Sobre un Get &quot;Pendiente&quot;
Posted: Fri Dec 13, 2019 05:44 PM

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

Jes煤s Mar铆n
deumare@gmail.com
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: Ayuda Orientaci贸n Sobre un Get &quot;Pendiente&quot;
Posted: Fri Dec 13, 2019 10:22 PM

Buenas Tardes. seria mucho pedir que cuando uno escribe empiece a llenar de derecha a izquierda

saludos

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Ayuda Orientaci贸n Sobre un Get &quot;Pendiente&quot;
Posted: Sat Dec 14, 2019 02:23 AM
What JESUS MARIN said is the way to go.
Code (fw): Select all Collapse
   @  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.
         >



Buenas Tardes. seria mucho pedir que cuando uno escribe empiece a llenar de derecha a izquierda

Already implemented, but only for NUMERIC variables.
Use the clause RIGTTOLEFT
Regards



G. N. Rao.

Hyderabad, India

Continue the discussion