dic 23

Los proyectos de datos: tablas de datos III

Posted in v7, vDevelop

Asistente de tablas, paso 3

Justo a continuación, vamos a indicar si queremos crear los índices mas habituales de una tabla,

  • Índice alfabético
  • Índice por palabras
  • Índice por trozos de palabras

Estos 3 tipos de índices son muy utilizados, principalmente para la búsqueda de maestros, en los localizadores.

PDF Download    Enviar artculo en formato PDF   
comments: 1 »
dic 23

Los proyectos de datos: tablas de datos II

Posted in v7, vDevelop

Continuamos pulsando el botón SIGUIENTE, y nos aparece la próxima pantalla en la que configuraremos los datos referentes al código principal de la tabla.

Asistente de tablas, paso 2

En este momento debemos decidir si el código de nuestra tabla va a ser auto numérico, o no. El código autonumérico permite que con cada alta de registros que se produce en la tabla, el código se enumera automáticamente, incrementando en uno, el valor del código anterior o el mayor código introducido anteriormente.

Debemos aclarar que si introducimos un registro de forma manual indicando un número superior al último, la numeración continuará siempre a partir del número más alto, no teniendo en cuenta los códigos que pudieran quedar vacíos.

Si el código es numérico, ya sea automático o no, debemos indicar la longitud en bytes del mismo. Según esta longitud, los valores introducidos pueden oscilar entre:

  • 1 byte (valor máximo: 255)
  • 2 bytes (valor máximo: 65.535)
  • 3 bytes (valor máximo: 16.777.215)
  • 4 bytes (valor máximo: 4.294.967.295)

Esto quiere decir que no se podrán utilizar valores superiores a los indicados, dependiendo del número de bytes del campo numérico.

Create PDF    Enviar artculo en formato PDF   
comments: 1 »
dic 22

Los proyectos de datos: tablas de datos I

Posted in v7, vDevelop

¿Qué es una tabla?

Es una estructura formada por un conjunto de campos relacionados entre si, que permite almacenar datos. Así podemos tener tablas para almacenar Clientes, Artículos, Albaranes. Y debemos crear diferentes tablas, ya que la estructura de campos para cada uno de los ejemplos enumerados es diferente.

Para iniciar la creación de un proyecto, y más concretamente, para crear las tablas del mismo, lo mas sencillo es utilizar el asistente de creación de tablas.

Las tablas de datos, son los archivos donde se almacenarán los datos introducidos por los usuarios durante la ejecución de la aplicación.

En la pantalla inicial del asistente, debemos indicar el nombre de la tabla en plural y en singular, y elegir el tipo de tabla a crear. Los tipos de tablas disponibles, como podemos ver en la imagen son:

Asistente de tablas: tipos de tablas

Maestro normal con clave numérica. Este tipo de tabla, es aquel que tiene un código numérico y un indice clave única por ese código.

Submaestro. Es una tabla cuyo indice de clave única depende de dos campos, el propio código de la tabla más el código de la tabla maestra

Maestro con clave arbolada. Este tipo de tabla es el que conocemos y utilizamos comúnmente para tablas como el P.G.C. o la tabla de Familias de artículos y cuyo código es alfabético.

Histórico, es una tabla que no necesita indices de clave única y que habitualmente utilizamos para almacenar datos de históricos de otras tablas.

PDF Creator    Enviar artculo en formato PDF   
comments: 1 »
dic 22

Los proyectos de datos

Posted in v7, vDevelop

Barra de botones de acceso rapido a los objetosEn la versión 6.x disponíamos de una única caja de datos, que se correspondía con el panel izquierdo del editor, ahora ya podemos decir que las limitaciones han desaparecido.

Una vez creado nuestro proyecto de datos, debemos empezar a crear nuestros primeros objetos, según vemos en la barra de objetos de la parte superior de la pantalla

Los objetos disponibles, según su orden de aparición son:

Objetos correspondientes a los proyectos de datos

  • Objeto Tabla de datos

  • Objeto Variable

  • Objeto Tabla estática

  • Objeto Dibujo

  • Objeto Proceso

  • Objeto Función

  • Objeto Constante

  • Objeto Cola

  • Objeto Esquema

  • Objeto Fichero adjunto

Objetos de los proyectos de datos

continuará …

PDF Printer    Enviar artculo en formato PDF   
comments: 1 »
dic 21

¿Que es la abstracción?

Posted in analisis, optimización

Vamos a analizar una de las piezas fundamentales de cualquier aplicación de gestión, las Entidades, y lo vamos a hacer mostrando varios diseños y observando los detalles en cada uno de ellos.

En el siguiente ejemplo, vemos una estructura básica de entidades, que cualquiera hemos creado en los inicios,

Esque tablas básicas sin abstracción

En esta estructura, vemos como tenemos 3 tablas para las entidades: clientes, proveedores y agentes comerciales.

  • La tabla de Agentes es maestra de clientes, de esta forma, un agente puede tener varios clientes en su cartera, pero cada cliente solo puede pertenecer a un agente, y solo a uno.
  • La tabla de Clientes tambien es maestra y a su vez, historica de agentes.
  • Y la tabla de Proveedores es maestra

Las 3 tablas tienen enlaces a Formas juridicas, Formas de pago y Divisas, asi un proveedor puede tener una Forma de pago asignada por defecto, una forma juridica y un tipo de moneda. Y esto mismo es aplicable a Clientes y también a Agentes.

Y bién, si tanto se parecen las tres tablas, que tienen los mismos enlaces a tablas maestras, ¿porque no creamos una tabla común llamada Entidades?

Si hay una respuesta afirmativa a ésta pregunta, eso es la “abstracción”, en definitiva, es sacar la esencia del esquema sin perder funcionalidad en el trayecto.

Y si analizamos lo dicho anteriormente,

Un cliente, es una persona fisica o juridica

Tiene un domicilio fiscal,

tiene una Forma de pago,

trabaja con una moneda determinada

Un proveedor, tambien es una persona fisica o jurídica

y también tiene un domicilio fiscal,

y tiene una Forma de pago,

y trabaja con una moneda determinada

Y un agente, pues lo mismo.

Si todos son tan parecidos en tantos aspectos, porque no crear una única tabla Entidades donde reunirlos a todos. ¡Pues SI, es posible! Y fijate si es posible, que aquí te dejo el esquema,

Esquema de tablas básicas con abstracción

Pero, ¿hay diferencias?

¡Pues claro que hay diferencias!, en la ficha del cliente acumulamos normalmente las ventas realizadas, y en el proveedor las compras, y en el agente el total de ventas y las comisiones

Y ¿como podemos solucionar esto?

Pues muy facilmente, solo tendremos que crear los campos apropiados en la tabla entidades, Total-Ventas, Total-Compras, Total-Comisiones.

Pero si una entidad es cliente, ¿para que queremos los campos de Total-Compras, y Total-Comisiones en su ficha?

Pues en este caso, esos campos no se utilizarian, y su contenido sería “0”.

Y si estan todos juntos, ¿como puedo mostrar únicamente los clientes? y que los proveedores y los agentes no se vean.

Pues aquí tenemos otro inconveniente, pero también tiene solución. Usaremos campos booleanos para definir si una entidad es cliente, es proveedor o es agente o también puede ser varias cosas a la vez, y tendremos que duplicar indices por codigo, nombre, etc. y quizá tengamos que duplicar mas cosas, pero no tenemos otra opción. Si queremos abstraer las tres tablas en una sola, la tabla resultante va ser mas compleja de manejar que las 3 tablas anteriores por separado.

Y es en este punto dónde debemos reflexionar sobre el tema, y valorar las ventajas de tener una tabla única, o tener 3 tablas separadas. Porque a medida que abstraemos cualquier ocpión del programa, se hace mas dificil de mantener.

Además, ya hemos dicho que hay muchos campos que serán comunes a todas las entidades, como, Nombre, Dirección, C.Postal, Poblacion, Telefonos, etc. pero tendremos muchos mas campos que solo serán utiles cuando la entidad sea cliente, y otros solo para proveedores y otros solo para agentes.

El problema no es el espacio que este archivo va a ocupar en el disco, pues ahora no hay problemas de capacidad. El problema puede estar en el tratamiento de esos datos a la hora de realizar cambios en la estructura de la tabla (simplemente tendremos que tener mas precaución), ya que cualquier cambio en Clientes, puede afectar también a proveedores y a agentes si no tenemos cuidado.

A todo esto debemos añadir que si los datos estan en tablas separadas, no se mezclaran los datos, pero si una empresa es cliente y proveedor al mismo tiempo, tendras que duplicar sus fichas. Pero te aseguras que no se van a mezclar datos y las tablas son mas sencillas.

Si acabas de iniciarte en la herramienta, demasiada abstracción quizá no sea buena idea.

Después de leer esto, tú eres el único que debes tomar ésta decisión,

¡Abstracción! O ¡sencillez!

Create PDF    Enviar artculo en formato PDF   
comments: 5 »
dic 20

Analizando la primera solución VIII

Posted in analisis, v7, vDevelop

Esquema de proyectos de nuestra primera soluciónVeamos un esquema de cómo quedara nuestro proyecto cuando este finalizado, porque esta seria la imagen que el desarrollador debería tener en su mente antes de iniciar el análisis de la aplicación.

El esquema anterior muestra como será la estructura de proyectos dentro de la aplicación, y en este esquema podemos ver que el proyecto de Maestros es heredado por los proyectos de Compras y de Ventas, y por tanto desde ellas tendremos acceso a los datos de los Maestros directamente.

En la imagen, podemos ver como los proyectos de datos (los que contienen la estrucutra de tablas, variables globales, tablas estaticas, etc), se muestran en color azul, mientras que los de aplicaciones (dónde se definen formularios, rejillas, busquedas, etc) se muestran en color marrón.

Además puedes ver como hemos creado un proyecto de aplicación para cada uno de los proyectos de datos, y realmente no es una estructura obligada, podriamos haber creado un solo proyecto de datos y 3 proyectos de aplicación, pero he elegido esta, por simplicidad.

Ahora veamos como queda la estructura completa de tablas en un único esquema que muestre el diseño completo de nuestra aplicación.

Esquema completo de tablasPara un primer proyecto puede parecer algo complicado, quizá. Pero en realidad es muy sencillo. Queremos que nuestra aplicación sea capaz de generar Albaranes y Facturas de Venta a los Clientes, también queremos introducir los Albaranes y las Facturas de los Proveedores. Más adelante complicaremos un poco mas este proyecto, y como ya disponemos de mercancía comprada y de ventas a clientes, procuraremos que el proyecto también nos permita controlar las existencias de cada uno de nuestros almacenes.

Después de ver el análisis de la aplicación, un esquema tan sencillo, algunos preguntarán, ¿por qué se han creado 3 cajas?, ¿es posible haber el mismo análisis solo con una caja?.

Pues, indudablemente, la respuesta es, ¡SI!, el análisis se puede crear con un solo proyecto, pero entonces ¿para que hemos creado 3?. Hemos creado 3 proyectos, por varias razones:

  • La primera, porque se trata de un manual de aprendizaje y para aprender, la mejor forma es practicar.
  • La segunda, es mas simple aún, nuestra aplicacion, aún es pequeña, pero si desea seguir aprendiendo y practicando, esta crecerá, y a medida que ampliemos las funcionalidades de la misma, también aumentará la complejidad del desarrollo, llegando a un punto en el que sí hemos organizado bien nuestra estructura de proyectos, el esquema seguirá siendo tan sencillo como al principio, y si no es así, con el paso del tiempo (varios meses después de acabar la aplicación), será bastante complicado realizar modificaciones en la misma, ya que será difícil comprender el análisis.
  • Otra razón es, porque tal y como están planteados los proyectos, si en el futuro queremos agregar un nuevo proyecto para un centro de fabricación, p.e. bastaría con heredar el proyecto de Maestros, y tendríamos todas las tablas necesarias para el nuevo modulo. Ya que las tablas propias de fabricación y cálculo de costes, estarían en el nuevo modulo.

Puede que olvide alguna, pero son suficientes razones para el planteamiento del ejercicio que estamos realizando con este tutorial.

Una vez que hemos realizado la estructura de proyectos y sabemos que tablas incluiremos en cada una de ellas, debemos seguir tomando otras decisiones igual de importantes.

Teniendo esto en cuenta, he decidido utilizarlas todas, aclarando a su vez, las diferencias existentes entre ellas.

Para el primer proyecto, el de tablas Maestras vamos a utilizar los siguientes tipos de tabla:

  • Familias de productos, para lo que utilizaremos una tabla Maestra arbolada.
  • Formas de pago, será una tabla Maestra.
  • Artículos, Clientes, Proveedores y Almacenes, también serán tablas Maestras las que utilizaremos para todas estas.

Para el proyecto de Compras:

  • Cabecera de albaranes, que será Maestra con código autonumérico
  • Lineas de albaranes, será creada como Submaestra de la cabecera de albaranes.
  • Cabecera de facturas, también como Maestra con código autonumérico.
  • Lineas de facturas, la crearemos como Hítorica de la tabla de cabecera de facturas

Para el proyecto de ventas:

  • Cabecera de albaranes, que será Maestra con código autonumérico
  • Lineas de albaranes, será creada como submaestra de la cabecera de albaranes.
  • Cabecera de facturas, también como Maestra con código autonumérico.
  • Lineas de facturas, la crearemos como hístorica de cabecera de facturas.

Espero que con los artículos anteriores y con este amplio resumen, haya quedado suficientemente clara la estructura de esta aplicación.

Create PDF    Enviar artculo en formato PDF   
comments: 5 »
dic 19

Analizando la primera solución VII

Posted in analisis, v7, vDevelop

Estructura de tablas de ventasEn el gráfico podemos ver la estructura de campos de las tablas de ventas.

Para este esquema hemos elegido tablas maestras en las cabeceras de albaranes y facturas, para las lineas de albaranes se ha utilizado en este ejemplo una tabla submaestra de la cabecera, para las lineas de facturas se ha utilizado una tabla hístorica.

También puedes observar en las tablas de cabeceras como hay enlaces a las tablas maestras de Clientes y Formas de pago, y en las tablas de Lineas hay enlaces a las tablas de Artículos

Y también hay un enlace en la tabla de cabecera de albaranes a la tabla de cabecera de Facturas. Este enlace permitira saber a que factura corresponde un albarán, y desde la factura, poder ver todos sus albaranes.

PDF Download    Enviar artculo en formato PDF   
comments: 2 »
dic 19

Analizando la primera solución VI

Posted in analisis, v7, vDevelop

Y el tercer proyecto, el de Ventas, tendrá un esquema muy similar al proyecto de compras, que definiremos como sigue:

  • una tabla de CABECERA de ALBARANES
  • una tabla para las LINEAS de ALBARANES
  • una tabla de CABECERA de FACTURAS
  • una tabla para las LINEAS de las FACTURAS

Esquema del proyecto de VentasEn el esquema, puedes comprobar como la tabla de Albaranes tiene un enlace a la tabla maestra de Facturas, de esta forma podremos saberen que Factura se ha convertido un albarán y también, desde la factura, dabremos cuales son los albaranes de origen de la misma.

Seguramente, después de leer el enunciado del planteamiento de la gestión comercial que queremos desarrollar, se estará preguntando: ¿Cuándo podrá estar operativa una aplicación de estas características?

La verdad, es que es una pregunta difícil de responder, porque depende de muchas condiciones, pero el tiempo máximo para desarrollar estos ejemplos, en esta primera fase donde solo trabajaremos con los datos. La estructura de tablas podría estar desarrollada y lista para comenzar a trabajar en apenas unas horas (dependiendo de su dedicación a este proyecto).

Pero la cuestión, no debería ser ¿en cuanto tiempo voy a desarrollar el análisis?, que evidentemente, para un usuario avanzado va a ser muy poco tiempo. Creo que hay otras preguntas más importantes, ¿es éste el análisis perfecto para mi aplicación?, ¿cumple todas las necesidades de mi cliente?, ¿debería abstraer aún más éste análisis?.

Para este ejemplo, vamos a considerar que es mas que suficiente, sobre todo, porque queremos sencillez, la abstracción, ya llegará con la experiencia.

PDF    Enviar artculo en formato PDF   
comments: 1 »
dic 18

vBase V6 vs. V7

Posted in analisis, v7, velneo

Una de las primeras aportaciones de Velneo a la plataforma de desarrollo, fueron las plantillas que se pusieron a disposición de los subscriptores a los largo de los años 2006 y 2007 en su mayor parte.

Y pese a que no las he utilizado mucho, ya que después de muchos años con la herramienta tenía el E.R.P. desarrollado y personalizado con muchas opciones de las que carecía la plantilla de Velneo, debo reconocer que hicieron un gran trabajo y han servido muy bien como punto de partida a todos los que se iniciaban por entonces o tenian poco camino recorrido.

Y la principal plantilla y base para casi todas las demas, fué vBase de la que muestro un gráfico a continuación

Esquema de la plantilla vBase de Velneo V6

La verdad es que no me corresponde a mi, decir si es un buen esquema o no, pues como he dicho antes, apenas he utilizado las plantillas, pero como todos los diseños, cumple la misión para la que fué creada y con eso debería ser suficiente.

Y si tuvieramos que puntuarla, quizá le daria un Notable+

Ahora que ya tenemos V7 y las nuevas OpenApps, he mirado el proyecto de vBase y la verdad, es que me he quedado un poco sorprendido cuando he visto el esquema

Esquema de la Open Apps vBase de V7

y no por que este bién o mal, es diseño es bueno pero me parece demasiado “Básica”,  quizá porque esperaba que, tras la buena esperiencia de la plantilla vBase de V6, en esta nueva versión me parecía lo más correcto, haber mantenido una estructura similar a la versión precedente.

Más sorprendido aún me quedé, cuando a la salida de la OppenApps de vGestión que no voy a analizar ahora, traía su propia vBase y que además es diferente a la que se publicó inicialmente.

Esquema de vBase incluida en vGestión en V7.2

Así qué, visto lo visto, debo decir que esperaba que las nuevas OpenApps fueran al menos de una calidad similar a las de V6, pero esto es solo una opinión.

A pesar de esta critica, debemos agradecer a Velneo todos los ejemplos de código abierto, ya que son de mucha utilidad para el aprendizaje.

¿Cual creeis que sería el mejor diseño para esta OpenApp?

Estais invitados a enviar vuestros diseños de vBase y los iré publicando aqui, gracias.

Create PDF    Enviar artculo en formato PDF   
comments: 2 »
dic 17

Aprende gratis con LibrosWeb.es

Posted in AJAX, CSS, HTML, JavaScript

LibrosWeb

Descarga este y otros libros sobre los lenguajes mas utilizados en la red desde la web de sus autores, son gratuitos y bastante buenos.

Tienes todo lo que necesitas saber sobre AJAX, JavaScript, CSS, XHTML y más. Tienes más información en LibrosWeb.

PDF Creator    Enviar artculo en formato PDF   
comments: Comentarios desactivados en Aprende gratis con LibrosWeb.es