Video Primeros Pasos y Dudas iniciales de un Ex-Delphi y Windev

Aquí os dejo un Vídeo ejercicio  de un ex-programador de delphi cuando se inició en Velneo.

Es de destacar su articulo inicial en el cual se debatía entre Windev y Velneo, después de probar Windev lo intento con Velneo.

Hoy en día sus nuevos artículos sobre el Css, Qt y Velneo nos revelan que ya es un maestro en esta plataforma

Esta realizado por http://www.lordzealon.com/

(Texto siguiente escrito tras sus inicios y previo a la publicación se sus artículos posteriores y a la actualización de este)
———————————————————————————–
En primer lugar muchas gracias, el ejercicio me parece más que correcto y no dudo que pronto te convertirás en un referente.

Imagino no te sabrá mal te haga algunas puntualizaciones a tus comentarios, aunque te indico que todo lo que haces es correcto y sobre todo teniendo en cuenta el tiempo que llevas con Velneo. Allá voy:

1º Respecto a tus dudas con el Tipo de Tablas

– Como tu dices en el 99% de los casos utilizar Tabla Maestra, que es una tabla que tiene un indice por el campo código y que las identifica unívocamente, es decir lo más normal.

– Utilizar Submaestra : Como recomendación inicial solo cuando sea una tabla que sea “Lineas de“, por ejemplo Facturas, Pedidos, etc.

Realmente es más profundo , Una submaestra es la que su indice principal código se compone de una maestra por ejemplo Cabeceras de Factura y el campo código que será normalmente autonumérico.

De esta manera cuando queremos localizar un registro necesitaremos ambos valores, el de la factura y el del campo código.

Esto en el caso de “Lineas de” no es ningún inconveniente y nos aporta una numeración automática de la cual no nos tenemos que preocupar, por contra el manejo de este tipo de registros se nos complica un poquito, pero en el caso de “Lineas de” siempre merece la pena.

Por ejemplo en el caso Contactos de una entidad, podríamos utilizar una submaestra, pero esa automatización no nos aporta nada y si en contactos ponemos un puntero a Entidades, conseguimos lo mismo y es todo más fácil.

Historicas : En principio y hasta que domines la herramienta mejor no usarla. Deberíamos definir una tabla como histórica, cuando no exista ninguna otra tabla que apunte a esta, es decir cuando sobre ella no haya ningún enlace a Maestro.

Por ello, no necesita un campo y un indice código, puesto que no lo va a necesitar y el asistente nos lo va a crear sin el. Es una optimización.

Pero en la practica, es difícil si no tienes experiencia saber que esto va a ser así, por lo tanto la creas Maestra , con código autonumerico y listo, no te va a molestar. Un ejemplo de tablas históricas es cualquier tabla de estadísticas, en las cuales es difícil que un registro de otra tabla apunte a ellas.

2º Haces un comentario, respecto al cambio de tipo de campo en Producción. No hay ningún problema al respecto pero con cuidando. Es decir si cambias de un numérico a un alfabético, no hay problema, si lo haces al revés solo te mantendrá los números y los caracteres alfabéticos los perderás, si pasas de un alfabético a una Alfa 256 o inferior perderás los caracteres no contemplados y si lo haces al revés no hay problema.

3º Utilizas un campo para el Nombre y otro para el Apellido. Esto en aplicaciones en V7 no es interesante y te explico por qué.  Debido a la potencia del indice por palabra y por trozos, le resultará mucho mas interesante al usuario final que todo este en el mismo campo a la hora de localizar un cliente.

Además creo que nos has acabado de ver (Es una intuición), la potencia de este indice y te pongo un ejemplo.

Si tienes un registro con mi nombre “Jose Miguel Perez Oliver” y utilizas un localizad   por el indice por trozos o una búsqueda”

Podras poner “Mig Per”, “Oliv Mig”, “Oliv jose”, “Oliver Pere” , “Perez Oliver” o “Jose Mig Olive” o incluso  “Liver Mig” o “Erez liver”

Da igual lo que pongas, el buscara los registros, restringiendo los datos devueltos a las especificaciones que tu des a cada terna de letras o superior, independientemente del orden. Es decir si pones Pere, restingirá a los perez, Peret,etc y si pones per tan solo a los Peral, Perez, perudillo , etc

Pero ademas en combinación con otras ternas que pongas y da igual que sean del principio que del final , imagina que esto lo tuvieran en cualquier hotel al buscar tu reserva.

Si lo tienes en dos campos pierdes esta virtud en parte, y tenerlo en dos no te aporta nada. Si eres muy purista, puedes controlar en la perdida de foco del campo edit correspondiente que te pongan siempre Nombre,”coma”, apellidos y después poner dos campos Formula, uno con el nombre (Hasta la Coma) y otro con el apellido.

O también si no te importa el espacio en disco eso es cierto poner un campo Nombre completo y cuyo valor inicial  sea la suma de ambos, pero esto ocupa espacio en disco, aunque V7 se ocupa de manejarlo y tu este campo “Nombre Completo” solo lo tienes que usar en búsquedas y localizaciones.

Puede ser que en alguna aplicación no te importe la ocupación en disco y si una localización fácil y directa. Por ejemplo en el caso de las reservas de hotel, podrías crear un Campo especial para búsquedas por ternas de letras que tuviera como Valor Inicial “Nombre del Cliente + Nombre de la Empresa + Nombre de la persona que hizo la reserva” y tienes un localizador fantástico.

Ten en cuenta que como valor inicial le puedes poner incluso campos de otras tablas relacionadas, ocupas disco si, pero todo se trata del objetivo final, si es para localizar es brutal.

Me viene a la memoria una aplicación de componentes electrónicos, en las cuales las búsquedas eran siempre un problema, y en la tabla artículos, la cual estaba enlazada a MArcas, Modelos, Proveedores, etc, metían en artículos un campo nombre larguísimo y gestionado por valor inicial, que era algo así como “Nombre del fabricante + Nombre del proveedor + Nombre del Articulo + Potencia del modelo + no se cuantas cosas mas”

Pero al usuario le daba igual , a medida que iba poniendo cosas y atributos le restringía las opciones mostradas.

4º Pero respecto a esto y enlazando con otra cuestión que me ha parecido ver. En lineas de factura tienes Precio, Cantidad e Importe.

EN el importe le dices que es campo numérico y su valor inicial es = Precio x Cantidad.

Esto puede no ser lo mas correcto, el campo Importe te esta ocupando espacio en disco. Yo lo que haría sería decir que el campo Importe es un campo Formula que no usas y es igual a Precio x Cantidad. La diferencia es que así no ocupas disco, la desventaja que no puedes indexar un campo formula directamente, pero no creo que vayas a localizar lineas de factura por importe, si Base imponible de Facturas pero ese es otro tema y aunque venga de un campo formula, el campo Base Imponible, tendrá contenido y lo podrás indexar.

5º Donde si es lógico utilizar ese Valor inicial, y ahí te quedas corto, es en el precio, que deberías poner no cero, sino el precio del articulo que tienes enlazado desde Lineas.

Aquí se ve la potencia de este valor Inicial, ya que si cambias en la linea de artículos el campo articulo volvería a tomar el precio del nuevo Articulo, pero ademas lo puedes modificar el precio y no pasa nada, si quieres claro. Es decir sin hacer nada funciona como tiene que funcionar. Si tuvieras una Tabla Articulo, Tarifa, funcionaría igual, te cambiaría al cambiar el Articulo o la Tarifa.

6º Para mi la definición de actualización y mas clara es la siguiente: En V7 existen trigers anteriores, posteriores a una baja, modificación, etcétera. Pero también actualizaciones, una actualización es un triger inteligente, en el cual tu defines lo que pasa en el Alta y el te resuelve lo que pasa en el caso de Baja y modificación y además para todos los formularios, procesos, etc que lo hagan sobre cualquier registro de esa tabla

Bueno espero que estos comentarios te sirvan a ti y a los que vienen detrás y seguro que alguien me los puede mejorar o corregir

Anuncios

Acerca de Miguel Pérez Oliver
Un abuelo en esto del negocio del software, habiendo recorrido en estos 30 años de todo : Programador, analista, consultor, implantador y ahora en el lado oscuro. Coordinador del departamento comercial en Velneo y viajero.

3 Responses to Video Primeros Pasos y Dudas iniciales de un Ex-Delphi y Windev

  1. Nacho says:

    Gracias Miguel, una buena explicación.
    Un saludo.

  2. Gracias por el enlace 😉 Pero de ahí, a ser un experto…queda mucho jejeje

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: