miércoles, 26 de enero de 2011

MyIsValid: GeneXus User Control

Hace un tiempo atrás hice un user control para darle un poco mas de potencia a las aplicaciones generadas. La idea del control es poder validar un valor y hacer determinadas acciones luego de validado, pero mi principal objetivo era el siguiente: validar un campo, por ejemplo validar algo tan simple como que el valor ingresado tenga una determinada cantidad de caracteres, y si dicha validación no satisfactoria mostrar un mensaje de error.

La idea para esto es tener un control que pueda asociarlo a la att/var que quiero validar y luego programar el evento myisvalid asociado, donde pueda escribir la validación que yo desee.

Por lo tanto podríamos tener algo como:

Event Start
   MyIsValidCtrl.AttachedControl =  &myvariable.InternalName
EndEvent

de esta forma asociamos la var/att que queremos validar con el user control. Si se quieren validar muchos campos se debe tener un myisvalid control por cada var/att a validar.

Luego programamos el evento myisvalid asociado a dicho control:

Event MyIsValidCtrl.MyIsValid
  if &myvariable.lenght() < 8
MyIsValidCtrl.PopUpUrl = Error.Link("your variable lenght must to be higher than 8")
MyIsValidCtrl.ShowPopUp = "true"
  else
MyIsValidCtrl.ShowPopUp = "false"
  endif
EndEvent

de esta forma estamos chequeando que la longuitud de la variable &myvariable sea mayor a 8, y en caso que sea menor a 8 vamos a mostrar un error (popup). Para mostrar dicho mensaje de error estamos seteando las propiedades ShowPopUp en true y la propiedad PopUpUrl con la url del webpanel que usaremos para mostrar el mensaje de error, en el ejemplo se llamara al webpanel Error en caso que la longuitud no sea la que esperamos.

Fácil no?

Pero lo mejor del control es que controla donde va a parar el foco luego de cerrar la popup de error, por lo tanto es ideal para los casos donde queremos validar un campo y en caso de error seguir parados en ese campo hasta que se corrija el valor ingresado.

Consideraciones:

- El user control fue pensado para que siempre que se ingrese un valor erróneo en el campo asociado al control el foco vuelva a ese campo luego de mostrar un mensaje de error.

Por tal motivo se utilizó el evento onblur de javascript para asociar al control y no el onchange. Esto ocasiona que el evento MyIsValid se dispare siempre que se pierda el foco del control independientemente de haber ingresado o no un valor en el campo.

- Para que funcione correctamente en Free Style Grids se debe tener el U1 de GXEv1 o superior.

Lo pueden bajar desde el marketplace.

Cualquier cosa me encuentran en mi mail o en @cimasan.

Enjoy!

lunes, 24 de enero de 2011

View Source Part: GeneXus Extension

Luego de resolver algunas referencias incorrectas y levantar algunos warnings quedo disponible una nueva versión de la extension View Source en el GeneXus Marketplace compatible con GXEV1 U3 o superior.

Para los que nunca la usaron, es una extension muy simple que nos permite colocar un nuevo tab en los objetos de forma de poder ver el código fuente generado (java, c#) para dicho objeto.

sábado, 22 de enero de 2011

Primeras impresiones

Otra vez en tierras niponas.

A pocas horas de haber llegado me cope para escribir las "primeras" impresiones.

Basta tomarse un avión e irse a miles de km de distancia para que me vengan las ganas de escribir las impresiones que ya no deberían asombrarme pero que felizmente o infelizmente lo siguen haciendo.

Lo primero y principal es volver a tener la posibilidad de comer comida japonesa, sin dudas una de las mejores cosas de estar tan lejos de Uruguay y estar en un país asiático; la diversidad, la calidad, lo balanceado y lo saludable hacen que sea un placer comer...afuera obvio. No solo japonesa, india (el curry con nan de lo mejor que he probado) , koreana (tan buena como la japonesa), thailandesa, vietnamita, etc.).

Bueno y para los que ya me conocen me sigue asombrando lo vivo que nos creemos los latinos:
  • Seguimos creyendo que cuanto menos laburemos y estudiemos mas vivos somos, esta gente de Asia labura mínimo 9 horas y no menos, y antes cuando estudiaban tenían solo 2 meses de vacaciones al ano mientras nosotros los vivos laburamos la menor cantidad de horas que podamos o el sindicato consiga, y cuando vamos a la escuela deseamos que vengan los 3 meses de vacaciones, el feriado, el finde largo, el paro de maestros, la enfermedad de la maestra y la asamblea técnico docente para no ir. Ahora me entero que dado que no les fue bien reduciendo la jornada de estudios de niños,  adolescentes y jóvenes (países como China, Singapur o Coreo del Sur los están pasando por arriba  a nivel de avances, calidad de vida, y todo lo de mas) volverán a tener clases los sábados y jornadas mas largas. Los muy vivos se creen que mejoraran con mas y mejor educación.
  • Cuanto mas ruido hace el caño de nuestra moto o el escape del auto mas interesantes somos como personas. 
  • Cruzar la calle antes que el semáforo lo permita nos hace terriblemente cool, y eso que supuestamente el nivel de vida nuestro es mas lento que el de los asiáticos, increíblemente los giles de los ponjas esperan a que la verde habilite y nunca pero nunca cruzan antes, que ingenuos! pudiéndose ahorrar tantos minutos al día, de ultima en que jode que se hagan mierda algunos cada tanto no?
  • Los muy giles se guardan el papel en el bolsillo y lo tiran cuando ven un tacho en lugar de tirarlo en la calle y junto a 25 millones de japoneses hacer de la ciudad el basurero mas grande que imaginemos. En esto nosotros si que somos los mas vivos, porque siendo 3 millones tiramos mas basura en la calle que 25 millones.  
  • Parece joda, pero aun no se enteraron de la viveza criolla, yo pensaba que hoy en día todo era mas globalizado y todo llegaba a todos lados, pero los muy estúpidos aun no se avivaron de los beneficios que pueden sacar con ese invento latino, te siguen devolviendo lo que dejaste olvidado o lo que se te cayo en la calle, y siguen siendo extremadamente honestos en todo. 
  • Cuando hacen pis tiran de la "cadena" que gasta menos agua, y cuando hacen lo segundo la "cadena" que tira mas agua, que estúpidos! pudiendo tirar siempre la cadena que tira mas agua y olvidarse de si se hizo lo primero o lo segundo y del agua que se tira.
  • El inodoro en invierno es calentito, el macho latino se sienta en el inodoro helado sea invierno o verano.
  • Miles de sanitarios quedaron sin trabajo porque inventaron un sistema para separar los sólidos de lo liquido en las cañerías por lo cual todo el mundo tira el papel en el inodoro y nunca se tapa, los líos con el sindicato de sanitarios que abran tenido! por no quedarse quietos y seguir como estaban poniendo un papelito que diga: "no arrojar el papel en el inodoro" y llamando al sanitario cuando se tapaba.
  • Siguen insistiendo con no tener guardas en los ómnibus!! lo que se pierden por se fríos y calculadores, perfectamente podrían contratar a un guarda para hablar con los pasajeros, tomarse un mate mientras les explica de forma totalmente amable que linea puedo tomarme para llegar al estadio.
  • Cuando ellos fueron nosotros fuimos, vinimos y volvimos a ir. Son humildes, y siempre miran que pueden aprender del otro para mejorar. Boludos! quieren seguir mejorando en vez de hacer la plancha.
  • De las peores cosas que vi, si hacen mal las cosas los rajan! nunca pensé fueran tan papanatas.
  • Miran mal al que llega tarde a una reunión!! no podes! pudiendo llegar una hora tarde, y hacer perder tiempo a quien llego en hora, mira que son!
  • Dicen gracias! piden permiso! y se disculpan! saladoooooo pensar que es tan fácil ser un mal educado y cagarse en el de al lado. 
  • Los muy bobos tratan de buscarte una mesa y atenderte con amabilidad cuando vas a comer afuera, pudiendo dejar al cliente que busque su mesa, y espere una horita mientras alguien viene a preguntarle que desea. 


Please let me know If you are japanese and you are reading this using a automatic translator (like google translator), may you won't understand it.