Códigos Fuente de FoxPro/Visual FoxPro

Mostrando del 1 al 10 de 126 registros
<<>>
Imágen de perfil
Val: 213
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mostrar zonas en un plano ("usted está aquí")


FoxPro/Visual FoxPro

Publicado el 9 de Octubre del 2023 por Baldo (17 códigos)
533 visualizaciones desde el 9 de Octubre del 2023
Quizá esto os pueda ayudar.

Tuve necesidad por un cliente de mostrar pasillos en su (inmenso) almacén para que al menos el interesado se aproximara a la zona (y planta, porque el edificio tenía dos alturas).

zonaplano01

El comienzo fue "hard-codeo" puro pero, al hacer cambios de distribución constante me planteé el que el esquema fuera configurable.

Así que... aqui está: Un sistema basado en Una tabla (TMPLANO0.DBF) que contiene definición de las zonas (rectángulos) y sus datos de posición (X/Y), anchura y altura. Al final puede ser útil en una empresa como en un evento (imaginad el plano de mesas de una fiesta, una boda...)

zonaplano02

El sistema es simple (lanzad el Form "MUESTRA_PLANO": la tabla comentada contiene la i nformación de las áreas, que se muestran como objetos (definidos en "PLANO_OBJ.VCX"). Estos objetos son objetos del formulario, con lo que al haber dos planos (planta baja y primera planta, por ejemplo) se coloca "por debajo de los objetos" un pageframe que contiene pestañas con los diferentes mapas (en el ejemplo 2, pero podeis aumentarlo hasta vuestra necesidad). Lo único que hay que hacer es ir mostrando/ocultando objetos en función de la página del frame que en ese momento hay en pantalla.

zonaplano03

Hay dos objetos definidos:

- Zona (el rectángulo)
- Punto (algo así como el "Pin" de Google, para una definición pás exacta ("Vd. está aquí")

Si quereis dar este servicio cerrado a cliente, solo debeis aportar la tabla con las def iniciones propias de cliente, el form de muestra (MUESTRA_PLANO) y otro que simplemente es para mostrar un grid con los diponobles ("consulta_planos")

Para vuestra comodidad (o aportarlo a cliente en su caso), teneis un Form configurador de las zonas y guardado en tabla (MTO_PLANOS).

zonaplano04

Por favor, tomad esto como 'lo que es'. Una herramienta creada ante la necesidad.

Puede que el código no sea óptimo, lo sé, pero ser conscientes de mi simple ánimo de dejar aquí la 'semillita'. Por supuesto, el código es mejorable, pero os aseguro que tal y como está, ya funciona.


Un saludo a toda la comunidad
Baldo Martorell
[email protected]
http://www.baldoweb.eu
Imágen de perfil

Formulario ABM - Lista con Detalle


FoxPro/Visual FoxPro

Actualizado el 16 de Agosto del 2023 por Gustavo (Publicado el 4 de Mayo del 2023)
2.328 visualizaciones desde el 4 de Mayo del 2023
Formulario de Catastro generador con Visual Fox Pro 9, que permite realizar las operaciones basicas de ALTAS, BAJAS, MODIFICACIONES, BLOQUEOS, Y REACTIVASCIONES DE REGISTROS ojala les sirva de algo este aporte.

Lo hice yo mismo, sin la ayuda de nadie.

Pantalla_01
Pantalla_02
Pantalla_03
Pantalla_04

Saludos
Imágen de perfil
Val: 213
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Ancho de columnas proporcional en Grid al redimensionar


FoxPro/Visual FoxPro

Publicado el 23 de Junio del 2023 por Baldo (17 códigos)
1.158 visualizaciones desde el 23 de Junio del 2023
Los Grid son tan potentes como 'animalitos salvajes' que a veces hay que 'domesticar'.

Mostrar las columnas de un modo visualmente agradable cuando el Grid cambia de ancho suele ser un 'caballo de batalla' muy consultado en la web.

Yo personalmente no uso la opción de 'autosizing' de las columnas habida cuenta de que no hay un control sobre la longitud máxima/mínima en función de los datos actuales (que pueden variar)

En su lugar lo que hago es ajustar tamaños a proporciones lógicas (es habitualmente más largo un nombre y apellidos que una ciudad.. por ejemplo ) y en caso de maximizado, minimizado,
redimensión del form... cambiar el tamaño de las columnas de un modo proporcional al original.

Queda visualmente muy agradable, porque puedes incluso redimensionar el formulario arrastrando y los anchos de columna parecen "flotar" para acomodarse.

Además, no implica esfuerzo en programación apenas (es básicamente un método que hay que Pegar en tu formulario, y dos llamadas)


Como usarlo:


Es realmente muy SIMPLE y requiere tres pasos básicos.

1. En el "Form", crear y pegar el contenido del método "redimension"


2. En el INIT del Form, por ejemplo, cuando ya has hecho carga y muestra del grid, llamar al método con:

THISFORM.REDIMENSION('Nombre del Grid',1)

Este proceso guarda la proporcion relativa al ancho de Grid de cada una de las columnas. Puedes hacer esto para tantos Grid como haya en el Form.

3. En el RESIZE del propio Grid, llamar al método que recalcula el nuevo ancho de cada columna ante cualquiercambio de tamaño, con:

THISFORM.REDIMENSION(THIS.NAME,2)

Obviamente este método se dispara sólo cuando el Grid se redimensiona, con lo que la propiedad 'anchor' del Grid debe ser tal que cambie su anchura cuando la del Form contenedor lo haga.

Y... ¡ nada más !

Nota: El ZIP es muy ligero. Te invito a bajarlo y ejecutar un pequeño vídeo con su funcionamiento.

Ejemplo_001
Imágen de perfil

Tiempo transcurrido entre dos fechas


FoxPro/Visual FoxPro

Actualizado el 9 de Mayo del 2023 por Eduardo Marquez (5 códigos) (Publicado el 3 de Marzo del 2023)
1.426 visualizaciones desde el 3 de Marzo del 2023
Dada dos fechas diferentes; en formato DateTime, esta función devuelve el tiempo transcurrido entre ambas en una sola cadena de texto. Indicando, años, meses, semanas, días, horas, minutos y segundos.
Observa que se toma en cuenta el singular del plural en las cantidades mayores a 1.

Saludos y comenten!
Imágen de perfil
Val: 213
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Bulk Grid Beautifier


FoxPro/Visual FoxPro

Publicado el 6 de Junio del 2022 por Baldo (17 códigos)
1.307 visualizaciones desde el 6 de Junio del 2022
Suelto lastre (cercano a mi deseado retiro en lo laboral ) y dejo caer una "herramientilla" que no por básica deja de tener su interés (creo).

Cuando trabajamos varias personas en un proyecto, o aprovechamos "código de aquí para allá" o simplemente nos planteamos un cierto cambio visual en los Grid (puede que el objeto más presente en nuestros formularios), se hacía interesante poder cambiar determinadas propiedades del aspecto visual en modo batch. En nuestro caso siempre era el aspecto en cuanto al color resaltado de la línea en curso, el color de las líneas...etc. Básicamente para conseguir una cierta... uniformidad en las pantallas de todo un proyecto.

Así que decidimos trabajar con los Grid con sus parámetros por defecto, sin andar preocupados de valores RGB y hacer una utilidad que abriera el SCX (como tabla) y los cambiase. Despues aparecieron otros parámetros interesantes para dar esa uniformidad a todos los Grid de las ventanas de un proyecto y aparecieros nuevas variables (de altura de filas...).

Al final, siempre alguien olvidaba insertar el icono de la aplicación en el screen y se decidió incluir tambien este cambio que afecta ya no a Grid, sino a Formulario. Haciendo este cambio, se detectó que en ocasiones en las propiedades del formulario se quedan "Propiedades nulas", esto es: propiedades del tipo "Propiedad=" sin valor alguno.Limpiarlas mejora la percepción en el diseñador de formularios (porque no se ven en negrita no teniendo valor) y en la totalidad de un proyecto, elimina algunos bytes...

El proceso intenta no romper nada. Por ejemplo, no altera los colores si está permitida la selección individual de celda en un Grid.

Los parámetros a cambiar son seleccionables.

Nunca hemos sufrido pérdida alguna, pero como comprenderéis es absolutamente aconsejable que hagais una copia de vuestros Proyecto previo a los cambios.

Espero que os pudiera ser útil.

bulk-grid-1
bulk-grid-2
Imágen de perfil
Val: 213
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Comprobacion de sintaxis en grupos de correo (RFC)


FoxPro/Visual FoxPro

Publicado el 22 de Abril del 2022 por Baldo (17 códigos)
770 visualizaciones desde el 22 de Abril del 2022
Esta rutina corresponde a una necesidad laboral. Si os sirve pues... ¡ya está hecha!

El asunto es que se puede necesitar un grupo de direcciones de correo electrónico válidas para un envío automatizado (en mi empresa se envian, por ejemplo, los pedidos a proveedor). Correos del tipo [direccion1] [direccion2]... [direccion(n)]...

El verdadero tema es que aunque se podría restringir la entrada a nivel de INPUT, hay que ser especialmente cuidadoso con la corrección en la sintaxis. Además puede que haya que tener presente que distintas rutinas pueden usar distintos separadores (Uso chilkat, por ejemplo, y el separador es "," y no ";"). Para más dificultad, uso direcciones importadas de ficheros externos...

Se hace precisa una rutina que analice el grupo de correos y conforme una cadena correcta, con el separador correcto, de direcciones correctas.

Una expresión REGEX estaría bien. Pero es un tema complicado en demasía. Lo ideal es que se pudieran discriminar direcciones correctas (del tipo [email protected]) sin que se le escape nada (una arroba y un punto al menos, y éste tras la arroba, un dominio de al menos 2 caracteres,ausencia de caracteres especiales...), que además distinga cualquier separador habitual (",",";",[TAB]) y que conforme una lista esperada por nuestra rutina. Es (muy) complicado y tema de petición de ayuda constante (https://stackoverflow.com/questions/4351349/regular-expression-for-delimited-email-address)

VFP es especialmente "plástico" a la hora de tratar cadenas... ¿Por qué no usarlo?)

Por ello he creado esta función:

mail_correcto([cadena],[separador_salida])

Tan simple como parece. Enviamos una cadena, analizamos corrección de los datos y retornamos SOLO LOS EMAIL VALIDOS separados por el [separador_salida].

Lo bueno es que ya nos podemos permitir seguir las estrictas normas (RFC2821 y RFC2822).
Teneis información en: en https://www.jochentopf.com/email/chars.html

La entrada puede tener separadores coma, punto y coma, espacios o [TAB] mezclados. Lo bueno es que al separar sólo correos, textos que me encuentro en ocasiones como "[email protected] (administración)" o similares son parseados correctamente.

Podeis echar un vistazo. Vereis una cadena de "caracteres restringidos" que podeis variar a voluntad si dado el caso (servidor UNIX, uso de caracteres especiales por alguna razón...) no necesitais filtrarlos (yo por defecto hago caso a las recomendaciones de "aunque es válido, mejor no lo uses")

Para el caso de querer simplemente COMPROBAR que los correos incluídos en la cadena son correctos (para avisar a usuario...etc) he incluído una variante que simplemente reporta un .T./.F. si algún correo no es correcto (realmente si alguna palabra no tiene pinta de correo)

mail_correcto_tf([cadena])

Adjunto un Form que simplemente lanza las rutinas para que experimenteis con ellas.

Un saludo.
Screenshot_002
Imágen de perfil
Val: 213
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Herramienta de consulta VisualFox a SQLServer


FoxPro/Visual FoxPro

estrellaestrellaestrellaestrellaestrella(10)
Actualizado el 24 de Marzo del 2022 por Baldo (17 códigos) (Publicado el 23 de Noviembre del 2014)
20.096 visualizaciones desde el 23 de Noviembre del 2014
Este Form VFP lo uso habitualmente en mis aplicaciones para ejecutarlo con una 'Hotkey' ante alguna necesidad o problema en casa del cliente (con una combinacion 'Ctrl'-Fn...) y poder acceder al servidor SQL, hacer consultas y cambios....etc...

Realmente ya estaba en esta Web, pero bajo la autoría de otro nombre de usuario que no utilizo realmente.

Esta versión, en cualquier caso, es la 2.0, con alguna mejora visual, algo más de información, adaptación al tamaño de pantalla de usuario ante Maximización..... etc...
sin imagen de perfil
Val: 309
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Cerberus


FoxPro/Visual FoxPro

Publicado el 23 de Febrero del 2022 por Santiago Juan
806 visualizaciones desde el 23 de Febrero del 2022
Provee los datos de las personas vacunadas en Perú, son más de 38 millones de personas vacunadas.
También controla el aforo de cualquier negocio.
Esta hecho todo sobre el _screen, sin usar ningún formulario.

Si tiene alguna duda o pregunta pude comunicarse [email protected]

Sr. Santiago Scheppmann

PD. el archivo comprimido es muy pesado y demora mucho en subir, envíenme sus email y se los envío por WETRANSFER.
Imágen de perfil
Val: 213
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Colores tipo Sublimetext en edición


FoxPro/Visual FoxPro

estrellaestrellaestrellaestrellaestrella(5)
Actualizado el 13 de Diciembre del 2021 por Baldo (17 códigos) (Publicado el 19 de Febrero del 2020)
5.568 visualizaciones desde el 19 de Febrero del 2020
Cuando uno es programador con "cincuenta y diez" años, lo de la vista.. (un "papel blanco" brillante) ya va quemando bastoncillos y conos .

VFP permite trabajar con colores definidos, pero de esa paleta reducida de "colores con nombre" que va arrastrando históricamente.

Sin embargo en el registro del sistema se almacenan como ternas RGB y nada impide poner cualquier valor válido.

En la Web se puede ver como alterarlos. Generalmente creando un .REG o escribiendo en el registro,pero esto obliga a experimentar combinaciones previamente, crearse el archivo...

Me hice esta rutina para poder disfrutar de esquemas tipo 'SublimeText' y cmbiarlos instantáneamente. No cambio el font (a mi me sirve el default) ni nada más allá de la edición. En esa clave del registro hay muchas "cositas" de índole funcional y estética. pero para mí lo primero es tener un tema cómodo y relajante.

El programilla permite:

1. Leer los valores actuales (de paso podeis ver como trabajar con "registry.vcx"
2. Modificarlos, y ver un ejemplo antes de aplicar.
3. Grabarlos como .REG para tener varias preferencias y de poder hacer doble click directamente en el sistema...
4. o... imputarlos directamente en el registro de Windows desde la utilidad.

Era una herramienta de uso propio... que espero que os guste


NOTAS

- Proveo VCX, pero ya sabeis que de todos modos es FOUNDATION CLASS

- Pido la versión VFP simplemente para ajustar la clave de registro correctamente

- Como siempre digo, puede no ser código óptimo,pero si funcional (por favor, entended que era simplemente "una herramienta")

- Si alguna vez os "asustais" podeis dar al botón "Reset all" en el propio VFP (Opciones->Editor). Tambien podeis capturar y guardar las opciones por defecto para volver a ellas cuando deseeis.



Baldo martorell
http://www.baldoweb.es


base
ejemplo-VFP
ejemplo_1
ejemplo_2
ejemplo_3
doble_click