viernes, 31 de enero de 2014

Saber si un cursor temporal o tabla .dbf está vacio.

Hola. Reciban cordiales saludos todos. Un pequeño tip, pero muy útil, es saber la forma para determinar si un cursor temporal o una tabla física (.dbf) está vacia totalmente. Muchas veces, para tal fin, contamos el numero de registros de las tablas con RECCOUNT() o usando la función COUNT(). Éstas son buenas opciones pero a veces, las funciones tienen ciertas condiciones o excepciones que dificultan obtener una certeza amplia sobre el numero de registros de dicha tabla.


Una forma práctica y rápida para saber si no hay ningun registro en la tabla o cursor es usar la Variable '_Tally'. Con un código como éste, podremos comprobarlo:


**--
SELECT tabla/cursor

IF _TALLY = 0

          **--Aqui el proceso si está vacio
          Messagebox("El cursor está vacio")


ENDIF
**--//


Bien... cualquier duda, sugerencia o comentario es siempre bienvenido.

Saludos!

Desde Managua, Nicaragua!
Ravenn :D :D :D

Redimensionar formulario (principal) según resolucion de pantalla.

Hola. Reciban un cordial saludo. A veces, queremos que un formulario, especialmente cuando es el principal de nuestras aplicaciones, se 'maximice' o re-dimensione según el 'ancho' y 'alto' de la pantalla del pc. Una forma practica de lograr 'estirar' el formulario sin tener que estar adecuando código cada vez que instalamos la aplicación en diferentes computadoras, es la siguiente:


En el evento INIT() del formulario, colocá un código como éste:


*--Dimensiones
THIS.Height = SYSMETRIC(22)
THIS.Width = SYSMETRIC(1)
**--
THISFORM.AutoCenter = .T.
**--
THISFORM.Top = 0
**--//


Luego, guardá los cambios y ejecutá el formulario.

Cualquier duda, sugerencia o comentario para mejorar es bienvenido!!!

Saludos!
Desde Managua, Nicaragua!
Ravenn :D :D :D

Evitar salir del control Text al presionar BackSpace (borrar)

Saludos. He estado un poco ausente... pero aqui otra vez con algunas nuevas entradas... nunca nos olvidamos de las personas que encuentran alguna utilidad en el blog.

Hoy proponemos una solución a una inquietud simple pero que aqueja a muchos programadores de Visual FoxPro: como evitar que el cursor de escritura salga del control text y regrese al control anterior text cuando borramos el contenido total del primer objeto al presionar BackSpace o tecla de borrado.

Agradezco mucho el aporte del usuario yondaime del dia 12 de mayo de 2016. Gracias a èl pude corregir un error en el retazo de codigo... agregando la "colita" THIS.SelStart = 0". Gracias a esta forma, se puede trabajar indistintamente del tipo de dato (sea numerico o caracter) del control... y se puede retornar eficientemente a la posicion inicial, es decir, que el valor del control sea = "" en el caso de tipo de dato texto ò = 0 en el tipo de datos numerico. Excelente aporte yondaime.. eres un capo! xDxD

**--
IF nKeyCode = 127 AND (THIS.SelStar = 0)
  NODEFAULT
ENDIF
**--//


Con ésto, cuando presiones 'BACKSPACE' el cursor de escritura no regresará al control text anterio, sino que permanece en el control actual.

Cualquier duda, sugerencia o comentario para mejorar es bienvenido siempre que no sea con fines ofensivos! :) :)

Saludos!
Desde Managua, Nicaragua!
Ravenn :D :D :D