Velneo: panta rei. Desde mi perspectiva

Enero 31, 2008

vDeveloper: vayamos por partes (iii)

Archivado en: General, Tablas — Etiquetas:, — Agustin @ 8:50 am

Ya tenemos nuestra primera tabla creada, sólo con los campos e índices que vienen por defecto al crear una Maestra.

 En el vDeveloper tendríamos la tabla con cada uno de sus componentes, en nuestro caso los dos campos y los cuatro indices que se han creado por defecto.

Si nos fijamos, a la derecha de la Descripción de la tabla, a parece la letra D. Esto significa que la tabla tiene permanencia en el Disco.

Si nos posicionamos sobre la tabla y usamos la combinación de teclas Alt+ Intro llegaremos a un cuadro de diálogo en el que tendremos más información sobre la tabla

En este cuadro de propiedades de la tabla, podremos cambiar tanto el plurarl como el singular, el tipo de tabla, en qué lugar reside la tabla, es decir si está en Disco Compartida y en ese caso en qué directorio, el de la aplicación o un directorio aparte en el que compartan tablas de datos distintas aplicaciones, en Memoria, el número de Bytes que ocupa cada ficha así como el número de campos e índices que tiene. Estos tres datos numéricos son calculados por Velneo y no es posible cambiar su valor

El check de Privada afectará más adelante al acceso o no desde el Editor de Personalizaciones de Velneo. Si estuviera marcada como Privada, no es posible el acceso para personalizar ciertos objetos visuales.

Se puede añadir un comentario que no se verá en ejecución y que sólo será visible con el vDeveloper. Puede ser interesante usar este comentario sobre todo a la hora de documentar, cuando la aplicación ya tiene muchas tablas.

Poscionémonos sobre el campo Nombre y hagámos doble click con el botón izquierdo del ratón.

Entraremos en el cuadro de propiedades generales de un campo.

Nombre: es el nombre o descripción que tendrá el campo. Será el que aparezca cuando incluyamos el campo en un objeto visual. Para el nombre del campo no podremos usar los caracteres reservados % ni $

Enlace: en un artículo posterior trataremos los distintos tipos de enlaces que existen en Velneo. Por ahora, nos quedaremos con que los campos que no dependen de otras tablas NO están enlazados.

Tipo: En el podremos escoger entre distintos tipos de campo Alfabético, Alfa128, numérico, formula, objeto… los veremos con más detenimiento más adelante.

Formato: dependiendo del tipo de campo tendremos que decir su longitud ( común ) el número de decimales (sólo numéricos) signo ( sólo numéricos), su rango o valores mínimo y máximo que le permitimos tener.

Contenido inicial: es una expresión fórmula que será el contenido inicial del campo.

Asistente de fórmulas

Con el asistente para la edición de fórmulas nos vamos a encontrar muchas veces en el vDeveloper. Es una herramienta muy potente para crear fórmulas de todo tipo, pues podemos acceder a una serie de elementos ya incluidos en el vDeveloper y que nos facilitarán la labor en muchos aspectos del diseño de nuestro proyecto. Podremos  acceder a funciones ya programadas, a campos, a variables globales, locales y de sistema. En una entrada futura veremos esta magnífica herramienta con más detenimiento.

Tipos de campos

Velneo nos ofrece la posibilidad de usar varios tipos de campos, entre ellos los de tipo alfa, los numéricos, fechas, horas, tiempo, objetos y fórmulas.

Alfabéticos :tipo alfabético estándar que incluye todos los caracteres de la tabla ANSI. Se recomienda usar los tipos Alfa  para ahorrar espacio en disco. El rango máximo del campo es 512 bytes. De hecho, dado que Alfa128 cubre casi todos los caracteres escepto los especiales como \ ó @ , es recomendable el uso de campos alfabéticos sólo en el caso de necesitar este tipo de caracteres, p. ej en un campo en el que tengamos que guardar una dirección de correo electrónico o una URL.

Alfa 128: es un tipo alfanumérico,incluye letras mayúsculas, minúsculas, acentos, signos de puntuación y números. Este tipo de campo es empaquetado y cada 8 caracteres que el usuario introduzca se comprimen en 7 para grabarlos al disco. El rango máximo del campo es 512 bytes.

Alfa 64: es un tipo alfanumérico, incluye letras mayúsculas, signos de puntuación y números. Este tipo de campo es empaquetado y cada 4 caracteres que el usuario introduzca se comprimen en 3 que serán grabados al disco. El rango máximo del campo es 512 bytes.

Alfa 40: Es un tipo alfanumérico: incluye letras mayúsculas, números, guión y espacio. Este tipo de campo es empaquetado y cada 3 caracteres que el usuario introduzca se comprimen en 2 que serán grabados al disco. El rango máximo del campo es 512 bytes.

Numérico: Usado para datos numéricos. El rango máximo es de 6 bytes y puede tener decimales y signo.

Fecha: Permite introducir fechas con diversos formatos. Los formatos permitidos son: ddmmaa,dd-mm-aaaa, dd-mmm-aaaa. El carácter de separación puede ser el guión o la barra.

Hora: Permite introducir horas en formato HH:MM:SS.

Tiempo: Permite introducir tiempos con el formato DD:MM:AA HH:MM:SS. Es aconsejable tratar las fechas y las horas por separador, es decir, crear un campo de tipo Hora y un campo de tipo Fecha en lugar de uno de este tipo.

Booleano: Es un campo lógico que permite fijar el contenido del mismo como SÍ / NO (1 ó 0). Veremos cómo a la hora de crear índices, la existencia de un booleano en la tabla nos va a permitir condicionar según el valor de ese booleano ( 0 ó 1 ) la indexación o no de una ficha.

Texto: Su contenido es texto de longitud variable, ocupando solamente el tamaño del contenido. Normalmente es usado para anotaciones en la ficha de un cliente, artículo, etc. En formularios de edición de ficha existe un control específico para editar este tipo de campo. En dicho control de edición sólo hay que tener en cuenta que en ejecución, un salto de linea se introduce con la combinación de teclas Ctrl+Intro, combiene recordárselo al usuario con un pequeño texto estático encima del control de edición.

Objeto Dibujo: Su contenido es un gráfico con cualquier resolución y número de colores que será importado en tiempo de ejecución. Normalmente son usados para ver la imagen del artículo en su ficha, la foto del logotipo del cliente, etc. En formularios de edición de ficha existe un control específico para editar este tipo de campo.

Objeto Texto enriquecido: Su contenido es un documento de texto RTF. Se diferencia del Objeto Texto en que admite cambiar fuentes, estilos, alineación, etc. en tiempo de ejecución. En formularios de edición de ficha existe un control específico para editar este tipo de campo.

Objeto OLE genérico: Su contenido será cualquier objeto OLE. Para cargarlo en tiempo de ejecución se utilizará el cuadro de diálogo Insertar Objeto estándar de Windows. Una vez incorporado el objeto OLE a Velneo podrá ser lanzado directamente en el programa correspondiente haciendo doble clic sobre él. En formularios de edición de ficha existe un control específico para editar este tipo de campo.

Objeto E-mail: Su contenido será un mensaje de correo electrónico (un e-mail). En formularios de edición de ficha existe un control específico para visualizar el contenido de un campo de este tipo.

Objeto Binario: Su contenido será cualquier tipo de archivo; éste será guardado en el contenedor en formato binario. Existen funciones de proceso específicas tanto para importar como para exportar archivos en este tipo de campos. La única forma de trabajar con este tipo de campo es vía proceso, pues no existe un control específico para su edición.

Cuando en una tabla del proyecto se introducen campos de tipo Objeto, al ejecutar la aplicación se crearán además del .dat y del .idx dos nuevos ficheros llamados tabla.cnd que es el contenedor de objetos de la tabla y el tabla.cni que es el índice del contenedor. Este tipo de campos no se guardan por tanto en el .dat como el resto de los campos y tampoco pueden ser utilizados como componentes de índices.

Veremos en el siguiente artículo los campos de tipo fórmula.

Enero 21, 2008

Análisis: primera fase

Archivado en: Análisis, General, Tablas, Tipos de enlaces — Etiquetas: — Agustin @ 9:58 pm

El modelo real de Velneo me encanta. No he encotrado una forma más sencilla, intuitiva y directa para diseñar las relaciones entre las tablas que las  que Velneo establece. Su modelo no obliga a que la información se adapte a la informática sino que la informática se adapta a la información, de una manera que yo suelo llamar natural.

Cuando asistí al primer curso , Juan nos enseñó una forma de analizar que me parece fácil e infalible, se trata del método de las frases. Escojamos dos tablas cualesquiera e intentemos crer las frases de singular y plural y ambos plurales. Veamos.

Cordilleras y Montañas. Construyamos las frases

  1. La Cordillera de una Montaña
  2. Las Cordilleras de una Montaña
  3. Las Cordilleras de unas Montañas
  4. La Montaña de una Cordillera 
  5. Las Montañas de una Cordillera.

¿De las cincon frases cuál de ellas tiene más sentido? La número 5 es la más lógica. Por tanto Cordillera es el singular y Montañas es el plural: el singular es siempre la tabla que actúa como maestra y el plural la que actúa como histórica. La tabla Cordilleras es la maestra de Montañas.

Clientes y Cabeceras de Facturas o Facturas.

  1. Los Clientes de una Factura
  2. El cliente de una Factura
  3. Las Facturas de un Cliente
  4. La Factura de los Clientes
  5. Las Facturas de los Clientes

La más lógica es la número 3, un cliente tiene muchas facturas, y una factura sólo se le puede imputar a un cliente. El singular es Cliente y el plural Facturas, luego Clientes es maestra de Facturas.

Veamos un caso en el que la frase correcta es la plural-plural.

Tenemos Artículos y Almacenes en una aplicación  multialmacén.

  1. El Articulo de los almacenes
  2. Los Artículos de los almacenes
  3. El Artículo de un almacén.
  4. Los almacenes de un artículo
  5. Los almacenes  de los artículos

Todas las frases tienen sentido, por tanto no podemos decir que una tabla es maestra de la otra. Para poder solucionar esta situación necesitaremos una tabla intermedia que nos permita relacionarlas. Creemos por ejemplo una tabla llamada Existencias. Haremos que tanto Artículos como Almacenes sean maestras de Existencias, con lo que tendremos conectados a través de ella los datos de las dos tablas, así  de un Artículo veré las Existencias en los distintos Almacenes, y en un Almacén las Existencias de los distintos Artículos.

Siguiendo este método de las frases, aunque la aplicación vaya teniendo cada vez más tablas, no tendremos fallos en el análisis y por tanto en la estructuración de las tablas que es la piedra angular sobre la que se deben basar nuestras aplicaciones.

Enero 20, 2008

vDeveloper: vayamos por partes (ii)

Archivado en: General, Tablas — Etiquetas:, — Agustin @ 2:20 am

La espina dorsal sobre la que descansa Velneo son sus tablas y la forma que tienen de relacionarse entre sí. El tipo de tabla más usado y sobre el cual descansan todas las demás es la Maestra Normal de Clave Numérica. De hecho es completamente posible construir una aplicación entera sólo usando este tipo de tabla. Escojamos en la Galería de Objetos una tabla Maestra para seguirla como ejemplo y ver sobre ella las características principales.Tabla maestra En el siguiente cuadro de diálogo podemos empezar a observar las características de una Maestra. Es una tabla que tiene un campo de tipo numérico llamado Código que identifica de manera inequívoca a cada uno de sus registros, logrando esto con una indexación de dicho campo, creándose un índice llamado asi mismo código que se ” alimenta” con los valores de dicho campo y haciendo que dicho índice sea de clave única , es decir, impidiendo que  haya dos o más registros de la tabla en el que dicho campo tenga el mismo valor. Esta exclusividad de valor del Código de cada registro de la tabla es importantísimo y construye la integridad de los datos de la tabla.Veamos detenidamente el cuadro de diálogo de esta tabla. En la parte superior del mismo y bajo la leyenda NOMBRE nos aparecen dos cuadros de edición para rellenar, el Plural y el Singular. El Plural sería el nombre en plural que le queremos dar a la tabla, por ejemplo Personas, y el singular el nombre para referirnos a un único registro. Aunque parezca no tener importancia, estas dos características de las tablas las usaremos más adelante en los nombres que dará a los distintos objetos visuales asociados a dicha tabla, dándoles como nombre inicial por defecto a los formularios el nombre Singular ( pues sirven para representar un único registro ) y a las rejillas el nombre plural pues sirven para representar más de un registro de una tabla.DATOS DE LA CLAVE: nombre del campo Código. Velneo mismo recomienda no cambiar el nombre ni del campo ni del índice.Por defecto viene marcado el flag Numeración automática con lo que según vayamos dando de alta fichas en la tabla, el campo código se irá rellenando automáticamente con valor del último registro grabado+1. Algo más adelante veremos cómo podemos cambiar esto y optar por dos alternativas más, contador en variable o ninguno. La longitud variará desde 1 byte hasta 4 bytes, lo que nos dá una capacidad máxima de 4.000.000.000 (cuatro mil millones ) de registros en una única tabla. La forma más habitual es la de Siguiente al último o Numeración automática. Pasemos ahora a los DATOS DE DESCRIPCION. Velneo, al crear una tabla Maestra,  genera automáticamente dos campos, el Código que ya hemos visto y el campo Nombre. Se usa como campo de descripción del registro, principalmente, y por defecto lo crea de tipo Alfa 128 con 35 caracteres de longitud. También en este campo, Velneo nos hace una serie de recomendaciones a tener en cuenta aunque no son tan restrictivas como las del Código. Observemos que aparecen marcados por defecto los flags Indice alfabético, Indice por palabras, Indice por trozos de palabra. Los índices es la segunda piedra angular de las tablas. Si los campos defienen los componentes de cada registro de la tabla, los índices nos ayudan a encontrar a encontrar los datos que buscamos por un determinado criterio. Todos conocemos los índices de capítulos de un libro, pero puede haber también un índice honomástico para encontrar los nombres de los personajes, un índice cronológico de fechas… ordenación de los datos por un criterio u otro, en definitiva.

Velneo, cada vez que se graba un registro en una tabla, indexa dicho registro por todos los criterios o índices que tenga la tabla, para poder luego encontrarlos y acceder a ellos más rápidamente.

  • Indice alfabético: ordenará o indexará los registro de forma  alfabético.
  • Indice por palabras: inedexará los registros por todas y cada una de las palabras de las que conste el campo. Si usamos el campo para introducir un nombre de un cliente, p.ej Angel Dominguez Esteba, usando el índice por palabras nos encontrará dicho registro tanto por la palabra Angel, como por Dominguez como por Esteba.
  • Indice por trozos de palabra: también conocido com aproximación alfabética ternaria.Al usar este índice, el dato es indexado por todos y cada uno de los trozos de al menos tres caracteres seguidos en los que dicho dato se pueda partir. Por ejemplo, un dato como “velneo” se indexará por vel, veln, velne, velneo, eln, elne, elneo, lne,lneo, neo, pudiendo por tanto buscarse ese dato por cada una de estas combinaciones de caracteres. Como podemos observar, no es necesario que la terna de caracteres sean los iniciales, basta con que estén dentro de la cadena de texto a buscar y en su orden.

Si pulsamos la tecla Aceptar  volvemos de nuevo a la pantalla principal del editor .

Podemos ver tanto el nombre de la tabla como las cuatro carpetas de componentes que tiene la tabla. Aquí vale la pena que observemos que no es lo mismo el identificador de la tabla que el nombre de la tabla. El segundo es la palabra que aparece bajo la columna de Descripción. El primero, el identificador, es lo que aparece bajo la columna de Tablas de datos, justo al lado del icono de la tabla. El identificador le servirá al sistema operativo para formar los archivos que genera cada tabla y nombrarlos antes de la extensión, por lo tanto hemos de tener en cuenta que aunque el identificador de la tabla conste de más de 8 caracteres, el S.O. sólo guardará los 8 primeros para dar nombre a dichos archivos, con lo cual debemos de tener cuidado a la hora de nombrar las tablas para que no haya varias en las que sus 8 primeros caracteres coincidan . Cuando ejecutemos por primera vez nuestra aplicación, Velneo genera entre otros más , al menos dos fichero por tabla: el fichero  tabla.dat  en donde se guardan los datos de los registros ( valores de campos ) y el ficheo tabla.idx donde se guardan los índices.

Podemos cambiar el identificador de la tabla haciendo que esta gane el foco y pulsando la tecla F2, e igualmente con ella en el foco y utilizando la combinación de teclas Alt+Intro, podemos cambiar el nombre singular y plural de la tabla.

Entradas más antiguas »

Blog de WordPress.com.