Reiniciando…

27Ago09

Después del periodo estival, “reiniciamos”

Comparto a continuación una curiosidad y/o detalle a tener en cuenta para no meter la pata:

Estaba modificando la vbase, la tabla de entidades para personalizarle, añadirle unos booleanos que necesitaba, y … una confusión tuve …

Tengo dos versiones de vbase instaladas en mi server, ¿porqué? … eso me preguntaba yo…

Resulta que tenía la aplicación de Agenda que proporciona velneo y ésta tenía heredada la vbase versión 0.1

Así que ojo al modificar las cajas de datos, teniendo en cuenta esto :-) Lo he reportado como sugerencia, que se vean las versiones de las cajas al heredar.

Del proyecto de biblioteca, sigo con él. He decidido darle una vuelta, lo que me ha reportado bastantes errores (no importa! tenemos un magnífico inspector de errores que nos dice el objeto y el control donde está el error), pero en un par de horas estaban solucionados todos los inconvenientes.

He cambiado algo la estructura de tablas, ahora aprovecho el núcleo que proporciona vBase para las entidades (socios, editoriales, …) y también tengo lo de países y direcciones resuelto ahí (me ahorra muchísimo trabajo el heredar esta caja)

Al cambiar tanto la estructura, herencias nuevas y cambios variados, en el vadmin tenía varias instancias con errores… Lo he resuelto borrando las instancias antiguas y instanciando el proyecto de nuevo, al mismo directorio de datos. Así queda ahora (me refiero sólo a las instancias de Biblioteca)

vadmin

También voy a empezar a aplicar los estilos gráficos. Me decanto por “Velneo Mountain Style“, ya os contaré mi experiencia.

Anuncios

La versión 7.1 de Velneo liberada a principios de Junio incluía numerosas novedades, entre ellas los esquemas de tablas.

A continuación hacemos un repaso de sus propiedades:

  • “Añadir nodo tabla”. Permite incluir una tabla nueva de las que tengamos heredadas en la caja. En el nodo de la tabla se puede añadir un icono para dicha tabla. El inconveniente es que no se puede modificar el tamaño del icono sino que lo pone a tamaño completo original del mismo.
  • “Añadir texto”. Se pueden tener comentarios sueltos entre las tablas, comentando relaciones entre tablas, etc.
  • “Añadir dibujo”. Podemos insertar iconos en el esquema para hacerlo visualmente más atractivo y utilizarlo como documentación de proyecto por ejemplo. Un pequeño inconveniente es que el tamaño del icono no se puede manipular, lo pone del tamaño original que tenga.
  • “Añadir proceso”. Permite seleccionar un proceso de lista (no permite seleccionar procesos de ficha) de alguna de las tablas e insertarlo en el esquema, generando una flecha verde entre las tablas de origen y destino del proceso. La flecha es verde por defecto, pero se puede personalizar su color y grosor.
  • “Levantar al frente” y “Llevar al fondo”. Si superponemos varias tablas, podemos indicar aquí cuál queremos que vaya en primer plano o no.
  • Tipografías: Cada nodo y cada texto puede tener su tipo de letra y estilo (negrita, cursiva…). Se me ocurre que podemos resaltar las tablas principales del esquema para una mejor lectura del mismo.
  • “Color fuente”. Cada nodo puede tener su color de fuente.
  • “Color fondo”. Podemos escoger el color de fondo del esquema.
  • Zoom: podemos aplicarlo en el esquema de modo que lo podamos ver más grande o pequeño. Por ejemplo cuando hay un esquema con muchas tablas y necesitamos verlo en una pantalla todo.
  • “Aplicar efectos al imprimir”. No tengo claro lo que hace… He probado activando y desactivándola y, aparentemente, no hace nada.
  • “Imprimir”. Como su nombre indica, nos saca por impresora el esquema. Si el esquema es muy grande y no cabe en una página, hemos de aplicar zoom para que quepa en una hoja. Esto lo encuentro totalmente lógico porque un esquema en varias hojas, desde mi punto de vista, puede perder su sentido y claridad al leer.
  • “Imprimir a fichero”. Genera un fichero con el esquema, se me ocurre por ejemplo para añadirlo a un documento de la aplicación, memoria del proyecto (muy necesaria cuando se va a pedir una subvención por el mismo), etc. El fichero que genera es en formato pdf.

Lo que no encuentro es la propiedad de arrastrando entre tablas poder relacionarlas.
Me explico: en 6x cuando estamos en un esquema y pasamos el ratón por encima de una tabla, se activa el puntero en forma de mano y podemos arrastrar de una tabla a otra, generando un enlace maestro-histórico entre ambas tablas (siempre y cuando sea posible relacionarlas, puesto que no permite enlaces redundantes)

Actualización: El objeto esquema está disponible tanto en el proyecto de datos como en el proyecto de aplicación. Desde el proyecto de datos podremos crear nuevos enlaces entre tablas arrastrando el puntero correspondiente entre las tablas que necesitemos enlazar.

En la imagen se ve la barra de herramientas del esquema en el proyecto de datos:

  1. Asistente de creación de nueva tabla
  2. Puntero normal
  3. Puntero arrastrar esquema
  4. Puntero creación de enlace plural (histórico)
  5. Puntero creación de enlace singular (maestro)

toolbar_esquema_datos

En general, creo que es un objeto que nos trae muchas novedades, muchos detalles nuevos y nos facilita las cosas en el sentido de que podemos aplicar más propiedades visuales, lo que nos ayuda a que se lea mejor y más rápidamente, como es el propósito de todo esquema ;-)

esquema tablas velneo 7.1


En todas las aplicaciones de gestión, son una parte muy importante los informes a emitir de la misma. Si bien algunos preimpresos caen en desuso, pero no lo están del todo, estos informes que deben ser sacados en formularios con la información justo en su casilla correspondiente. ¡Y qué me decís de los que deben salir por matricial, que haberlos, haylos! ¡Más entretenidos que un sudoku!

V7 nos aporta la facilidad de partir objeto texto, aunque realmente en 6x ya lo hacíamos cada uno con nuestros recursos: que si dll, procesos, funciones, etc…

A continuación indico algunos trucos que utilizamos, son de la vieja escuela de 6x, pero yo creo que se podrán aplicar igualmente al desarrollar los informes con V7:

  • Proporción. En los informes que tienen cabecera de página, detalle y pie de página, que los tamaños de las secciones cabecera y pie sean proporcionales al tamaño del detalle. Por ejemplo: 300, 15 y 195 píxels (es sólo un ejemplo de tamaños de secciones). Con esto nos aseguramos que de nos va a salir cuadrado el informe y que aunque tenga muchas páginas, éstas saldrán en su sitio.
  • Controles con altura variable: Parece obvio, pero si tenemos que cuadrar un informe en su casilla, nunca pongamos un control con altura variable, pues éste puede mover los demás controles que tiene debajo.
  • Orden: en los informes que van a salir por matricial, ten los controles ordenados de forma lógica. En los informes no tenemos la ventana donde se ven todos los controles para poder ordenarlos, pero podemos hacerlo si vamos cortando y pegando cada control antes de dar por finalizado el informe, haciéndolo en el orden correspondiente. Había algún modelo concreto de matricial que daba problemas, no recuerdo exactamente cuál. También para las matriciales, tener los campos alineados lo máximo entre ellos en la misma altura hará que vaya más rápido al imprimir.
  • Tipo de letra: si queremos que siempre lleven el mismo número de caracteres cada casilla lo mejor es usar un tipo de letra de ancho fijo, como “Courier New” en la que ocupa el mismo ancho una letra “i” que una “m” lo que nos permite una precisión mayor al imprimir e incluso en el caso de aplicaciones completamente a medida, que la capacidad del campo sea exactamente la que se ajusta a la casilla del informe.
  • Y uno de perogrullo: para no olvidar en el futuro porqué hemos hecho determinada cosa en un informe, etc. yo lo que hago es poner un pequeño control con condición de visible 0 con texto explicando pequeñas cosillas del informe, que son susceptibles de que se me olviden ;-)

informe-preimpreso-matricial


Búsquedas

16Abr09

Las búsquedas son un objeto que ya conocemos de Velneo 6x. En V7 lo tenemos muy parecido pero con una “vuelta de tuerca”

busqueda

Propiedades de la búsqueda

  • Tabla asociada a la búsqueda (de qué tabla vamos a buscar)
  • Formulario de introducción de datos para buscar

No tenemos la rejilla para mostrar el resultado, simplemente porque no hace falta definir eso en la búsqueda, vemos más abajo cómo hacerlo.

Componentes de la búsqueda

Se trata de un sub-objeto del objeto búsqueda, donde le decimos qué queremos buscar y cómo. Indicamos qué indices se añaden y cómo:

  • Mezcla: Cruzar, Añadir o Quitar. Cuando usamos más de un índice en la búsqueda. Es el equivalente al “and”, “or”, “not”
  • Condición de activo. Podemos inhabilitar uno de esos índices en función de una condición, sea una variable como usuario, privilegios, etc.
  • Modo: Parte izquierda, Entre límites, Todo. Parte izquierda compara el contenido de lo que ha introducido el usuario con los registros del índice, entre límites busca los registros contenidos entre unas fechas, numéricos, etc y todo devuelve “todo” (valga la redundancia) el índice en el orden que tenga.

Exactamente igual que en 6x.

Variables búsqueda

Además, tenemos otro sub-objeto del objeto búsqueda en V7 que son las variables locales en búsquedas. Podremos definir una variable local a esa búsqueda para luego cruzarla con cualquiera de los índices.

¿Cómo llamar a la búsqueda?

A la hora de llamar a la búsqueda debe ser realizada desde una acción y en ella se define como “Objeto 1” la búsqueda en sí y como “Objeto” 2 la rejilla donde queremos mostrar el resultado, por ejemplo (aunque recordad que desde una acción podemos llamar a varios objetos)


Cuando estuve examinando los comandos del objeto acción, pensé que para tener las utilidades de una rejilla como en Velneo 6x (navegante, lista, etc.) tendría que programar acciones, meterlas en un menú y llamarlas donde desease usarlas. Pero no! Entre las acciones para llamar en un menú, tenemos también estas opciones “por defecto”.

Al definir un menú, además de las acciones y submenús programados en la caja, podemos seleccionar estos, que se incluyen sin que tengamos necesidad de programar nada:

acciones-genericas

Un detalle: el menú “Ver” ya incluye además los de “Personalizar”, “Estilo”, “Idioma” y “Barra de herramientas”, con lo cual esos podemos omitirlos si ponemos el “Ver”.

Aunque si conoces 6x ya sabes qué hacen estas opciones, dejo aquí un pequeño resumen de qué hacen estas utilidades:

  • Ficha: Alta, modificación y baja, mediante los formularios asignados en la rejilla mostrada.
  • Lista: invertir orden, filtrar la lista, partir en dos, multipartir (por un campo cualquiera, genera tantas listas como diferentes contenidos del campo), quitar elemento de la lista (solo deja de mostrarlo no borra), campos duplicados (del campo seleccionado), modificar campo, modificar campo con condición.
  • Navegante: mostrar en otra rejilla nueva todos los maestros (según campo seleccionado) o históricos (según histórico seleccionado).
  • Ventana: maneja aspectos como mostrar pestañas de las ventanas (viejo pestañeador), mosaico, etc. (son utilidades muy conocidas en cualquier programa).
  • Ver: pantalla completa + “Personalizar” + “Barra de herramientas”
  • Personalizar: Estilos de las ventanas e idiomas.
  • Barra de herramientas: Mostrar u ocultar las toolbar que tenemos cargadas.

Con V7 nos toca redescubrir cada producto, ahora le toca al cliente de ejecución de aplicaciones.

Las funcionalidades de rejilla aparecen al pulsar el botón derecho del ratón sobre una rejilla y de momento las que tenemos son estas:

menu-desplegable-rejilla

Nos llevamos una muy grata sorpresa al ver que las funcionalidades de “Filtrar”, “Modificar campo” y “Modificar campo si” incorporan un editor de fórmulas que nos ahorrará programación seguro, porque muchas veces, al menos yo, hemos tenido que programar un proceso para rellenar un campo con el contenido de otros dos o cosa así…

Este editor de fórmulas es similar al de fórmulas dinámicas de 6x, tenemos acceso a fórmulas, campos, etc.

formulas-filtrado

Se echa de menos la exportación ascii, cambiar rejilla, etc… pero me imagino que las próximas versiones nos depararán novedades.


Desde un formulario de una ficha cualquiera, resulta muy cómodo tener las opciones de “mantenimiento” de los maestros de esa ficha, para no tener que ir al menú de maestros cuando uno de ellos no está dado de alta.

En 6x estábamos acostumbrados a hacerlo con botones desde el propio formulario. Veremos a continuación otro modo de hacer lo mismo, pero con V7.

1. Definimos las acciones:

  • Comando -> Ficha: Alta de maestro
  • Comando -> Ficha: Localizar maestro
  • Comando -> Ficha: Edición de maestro

En todas estas acciones, tener en cuenta que la propiedad “Tabla asociada” debe ser la misma tabla del formulario de edición desde el que lanzaremos estas acciones.

2. Definimos un menú nuevo, con las tres acciones nuevas

3. En el formulario de la ficha, incluimos un botón, cuyo comando será “Menú” y llamamos a este último.

Y ya está!

form_libro

Lo mejor es que si tenemos varios formularios (para alta y para buscar) en ambos tendremos 1 solo botón, que llama a las 3 acciones.
Las 3 acciones podemos modificarlas en cualquier momento, y no tenemos que ir a revisar a los formularios donde se usan, porque realmente en el formulario sólo hay un botón.