Posteado por: ascpepeto | 20 febrero 2010

Cambio de blog

Como ya se anunció hace unas semanas, hemos cambiado de dominio,

Si deseas continuar con la lectura de nuestro blog, puedes hacerlo en la siguiente dirección:

Nuevo blog: www.ascsl.com

Posteado por: ascpepeto | 10 febrero 2010

Cajas de aplicaciones: el interfaz

En un proyecto, todas las fases son importantes, en los capítulos anteriores, al crear la base de datos, hemos puesto especial interés en crear una estructura lógica de acuerdo a las funciones que se van a realizar, de manera que los datos estén relacionados de forma coherente. Con esto conseguimos que la base de la aplicación, sea sólida pero ágil.

Pero ahora llega el momento de crear el aspecto visual que tendrá nuestra aplicación, y esto también es muy importante, ya que por muy sólida y fiable que sea una aplicación, si no resulta agradable al usuario final, no habremos conseguido finalizar el proyecto con éxito.

Es a partir de ahora, cuando vamos a permitir que el usuario pueda acceder de forma visual a los datos de nuestra aplicación. Para esto, vDevelop nos provee con los siguientes objetos:

  • Formularios y menús formularios
  • Rejillas
  • Localizadores
  • Búsquedas
  • Acciones
  • Marcos y Docks
  • Dibujos
  • Impresoras lógicas
  • Funciones
  • Acciones
  • Menús popup y Toolbars
  • Lupas y filtros
  • Multivistas
  • Casilleros
  • Cestas de la compra
  • Tubos de ficha y de lista
  • Procesos y funciones
  • etc.

En los siguientes capítulos veremos como utilizar la mayor parte de ellos, aunque no todos, por tratarse en esta ocasión de un proyecto básico para principiantes

Posteado por: ascpepeto | 7 febrero 2010

El primer proyecto de datos III: Ventas

Y para finalizar, las tablas del proyecto de ventas, esta es la tabla de Albaranes de venta:

-dibujo-

Esta es la tabla de Lineas de Albaranes de venta

-dibujo-

Aquí tenemos la tabla de Facturas de venta:

-dibujo-

Y la tabla de Lineas de facturas de venta:

-dibujo-

Para las tablas de éste proyecto, hemos utilizado los mismos tipos que en el proyecto de Compras, tablas maestras con indice numérico en las tablas de cabeceras de Albarán y de Factura, hemos creado la tabla de Lineas de albarán como submaestra de Albaranes y la tabla de Lineas de factura ha sido creada como histórica.

Posteado por: ascpepeto | 7 febrero 2010

El primer proyecto de datos II: Compras

Definición de la estructura de la tabla de Albaranes de compra:

-dibujo-

La tabla de Lineas de albaranes de compra:

-dibujo-

Las facturas de compra

-dibujo-

Las lineas de facturas de compra

-dibujo-

Para las tablas de éste proyecto, hemos utilizado tablas maestras con indice numérico en las tablas de cabeceras de Albarán y de Factura, pero hemos creado la tabla de Lineas de albarán como submaestra de Albaranes y la tabla de Lineas de factura ha sido creada como histórica.

Posteado por: ascpepeto | 7 febrero 2010

El primer proyecto de datos I: Maestros

Ahora que ya debes tener algo mas claro todo lo referente a tablas, indices, campos, actualizaciones y otros conceptos genéricos que se utilizan en la estructura de la base de datos, te voy a mostrar como quedara nuestro análisis, con imágenes de cada una de las tablas y su estructura de campos e indices. Utiliza esta información para practicar el ejemplo por ti mismo.

Proyecto de datos: Maestros

Para éste primer proyecto, el de Maestros, habíamos indicado que necesitábamos las siguientes tablas:

Una tabla de Formas de pago, y a continuación vamos a ver como queda nuestra primera tabla ya creada

— DIBUJO —

Fijate en la imagen, y verás que según el tipo de campo definido en la estructura de la tabla, éste se representa con un icono diferente, lo que te permitirá diferenciar muy fácilmente los tipos de campo utilizados.

En éste proyecto datos Maestros, todas las tablas han sido creadas como tablas maestras con indice numérico, ya que las vamos a necesitar para crear los enlaces a las otras tablas de las cajas de Compras y de Ventas

La tabla de Proveedores,

— DIBUJO —

La tabla de Clientes,

— DIBUJO —

La tabla de Almacenes,

— DIBUJO —

La tabla de Familias,

— DIBUJO —

La tabla de Artículos,

— DIBUJO —


Posteado por: ascpepeto | 30 enero 2010

Casilleros sincronizados VI

Pues bien, creo que lo único que queda por hacer es crear el marco AUTOEXEC que ejecuta este formulario.

Tambien deberias haber previsto la forma de introducir los datos en las tablas, ya sea por medio de rejillas y formularios o como hice yo, con un proceso que generaba los datos automaticamente en las tablas. Este proceso, debe ser ejecutado al iniciar la aplicacion por primera vez.

Asi que, ahora guarda el proyecto, ejecuta vADMIN para instanciar la aplicacion y los datos, y asignar permisos de acceso.

Y por último vamos a probar el resultado, y deberia queda algo parecido a esto.

En ejecución, si ya has creado los registros, veras como al pulsar sobre una familia, se actualiza el casillero de Articulos, y al pulsar sobre un articulo, nos muestra un mensaje indicando el ID del articulo pulsado.

¿Te funciona todo correctamente?

¡SI!, pues enhorabuena por haberlo conseguido. Si te animas a profundizar un poco mas, puedes estudiar con mas detalle la plantilla vTPV que Velneo ha publicado en la sección de OpenApps.

¡NO!, pues si he de ser sincero, si con tanto detalle, no has sido capaz de hacerlo funcionar, quizá deberias empezar por ejercicios mas sencillos y no querer avanzar tan rapido. Prueba a seguir el curso básico que estoy publicando en este mismo blog y no desesperes.

Posteado por: ascpepeto | 30 enero 2010

Casilleros sincronizados V

Propieades de los controles objetoSeguimos con el formulario principal, y ahora que tenemos todos los objetos, solo hay que indicar las propiedades en los controles objeto que hemos incluido en el formulario. En la imagen tienes las propiedades de cada uno de los controles. A la izquierda el control objeto para el casillero de Familias y a la derecha el control objeto para el casillero de articulos.

Para que todo funcione como es debido, necesitamos 3 eventos en este formulario,

– Uno INIT_FORM, para inicilizar el formulario,

– otro SEL_FAMILIAS, para ejecutar cuando se pulsa sobre una celda del casillero de familias

– y el tercero SEL_ARTIC, para ejecutar cuando pulsamos sobre una celda del casillero de articulos.

Aqui los teneis:

Eventos del formulario principal

A estas alturas ya deberiais saber que es lo que hace cada proceso, solo con verlo.

También necesitamos 3 conexiones de eventos para indicar en que momento deben ejecutarse los eventos que acabamos de crear, asi que aqui los tienes,

Conexiones de eventos

– La primera de las conexiones ejecuta el evento al inicializarse el formulario,

– la segunda, ejecuta el evento SEL_FAMILIAS cuando pulsamos sobre una celda del casillero de familias

– y la tercera, es la encargada de ejecutar el evento SEL_ARTIC cuando pulsamos sobre la celda de un articulo.

Posteado por: ascpepeto | 28 enero 2010

Comic Reader 1.0 por dentro

Ya hemos visto lo que puede hacer Comic Reader 1.0, pero, como está desarrollado es otra historia.

En realidad es tan sencillo que lo vamos a ver en unas lineas, y el resto tendreis ocasión de verlo cuando se publiquen las Oppen Apps de los participantes el próximo día 1 de marzo.

Proyecto de datos de Comic Reader 1.0En primer lugar el proyecto de datos, solo tiene 2 tablas: COMICS (maestra) y PAGINAS (submaestra), una para almacenar los comics y la otra para almacenar cada una de las fotos de un comic. Tambien tenemos 3 variables globales, COMIC_ACT y PAGINA_ACT para conocer en todo momento el #ID del comic y de la página que estamos visualizando en cada momento, una variable DEBUG utilizada para depuración de errores y, por supuesto, el ESQUEMA de tablas exigido en las bases del concurso.

Por otro lado, tenemos el proyecto de aplicación, que tiene un poco mas de complejidad, pero no demasiada, veamoslo.

Proyecto de aplicación de Comic Reader 1.0En primer lugar, vemos el objeto AUTOEXEC, cuya única misión es indicar cual será el formulario principal utilizado para la ejecución de la aplicación, en este caso, COMIC_READER.

Seguimos, COMIC_READER es un formulario sin origen, que usa los otros dos formularios sin origen, UNA_PAGINA_PAR y UNA_PAGINA_IMPAR para mostrar las páginas del comic, y los procesos VER_PAGINA_PAR y VER_PAGINA_IMPAR, que son los encargados de buscar la pagina correspondiente al comic seleccionado en las tablas de datos.

La parte mas sencilla, son los objetos de la carpeta Mantenimiento de comics, que contiene los objetos correspondientes al proceso de Alta y Edicion de la ficha de un comic.

En último lugar, el proceso COMICS_IMPORTAR_DATOS, se encarga de realizar la importación de las fotos y guardarlas en el comic seleccionado.

Podreis verlo con más detalle cuando este disponible la descarga.

Posteado por: ascpepeto | 28 enero 2010

Casilleros sincronizados IV

Formulario principal con casillerosSeguimos con el ejercicio y ahora debemos crear el formulario que vamos a utilizar como interfaz para el usuario.

Como se puede apreciar en la imagen adjunta, en nuestro formulario necesitamos incrustar 2 controles objeto, uno para mostrar el casillero de Familias (a la izquierda de la imagen) y otro para mostrar el casillero de Articulos (en que aparece seleccionado a la derecha).

Los botones ACEPTAR y CANCELAR que vemos en la parte inferior no son necesarios, pero los he dejado, ya que no afectan al resultado final. Solo indicar que he incluido un botón INICIALIZAR DATOS que se encarga de crear los registros en las tablas para poder ver el ejemplo en ejecución, y dicho botón solo es necesario pulsarlo en la primera ejecución, pues luego los registros ya estan creados.

Antes de ver las propiedades de los Controles objeto, debemos crear los 2 procesos que vamos a necesitar para mostar los datos en cada uno de los casilleros.

El primero de ellos, el que carga la lista de familias en el casillero de la izquierda, no puede ser mas simple. Carga la lista de familias, y retorna la lista a la salida.

Pero si aún te quedan dudas, puedes ver el proceso y sus propiedades para que no cometas errores al definirlo.

Atrevete a realizar el 2º proceso, el que carga la lista de articulos.

Para ello, debes tener en cuenta que solo debes mostrar los articulos de la familia seleccionada en el primer casillero, y también, que habiamos creado una variable global para saber cual es la familia seleccionada en cada momento.

Si aún no lo has conseguido, aqui abajo tienes el proceso y las propiedades. Recuerda que posiblemente tencas que cambiar algun dato, dependiendo de los identificadores que hayas utilizado al crear las tablas y la variable.

Solo necesitas cargar la lista de familias, utilizando la variable global como primer componente para la busqueda por el indice ID, leemos la ficha seleccionada, y a continuación cargamos los artículos de esa familia por medio de los plurales, y finalmente retornamos la lista de articulos.

En ambos procesos debes tener encuenta cual es la entrada y la salida, y que vamos a utilizar estos procesos desde nuestro formulario “sin origen”.

Posteado por: ascpepeto | 26 enero 2010

COMIC Reader 1.0 a concurso

Desde este blog hemos decidido poner nuestro granito de arena y participar en el concurso de Open Apps de Velneo con una pequeña aplicacion llamada COMIC Reader 1.0

Esta aplicación, como podeis imaginar tiene la función principal de permitir la lectura de comics

Interfaz de COMIC reader 1.0El funcionamiento es muy sencillo, en la imagen podemos ver el interfaz de la aplicación, y vemos como tras acceder a la misma, solo tenemos que seguir unos sencillos pasos para ponerla en marcha:

  1. Seleccionamos el comic que vamos a visualizar en la rejilla de la parte superior izquierda, un simple click, bastara para comenzar a leer el comic.
  2. Para proceder a la lectura del comic, solo tenemos que pulsar los botones Avanzar o Retroceder que se muestran en el margen superior derecho de la imagen.

Aqui tenemos otra imagen de la aplicación en ejecución:

Otra imagen de COMIC reader 1.0

Crear un nuevo comicPara introducir los comics en la aplicación, necesitamos crear en primer lugar la ficha del nuevo comic, para ello pulsa sobre la opción Nuevo que hay en la parte superior del interfaz, y solo tenemos que introducir el nombre del comic que vamos a guardar en esta ficha.

Una vez echo esto, solo queda un paso mas: pulsar sobre el botón Importar fotos que hay junto al botón Nuevo, luego seleccionamos la ficha del Comic donde vamos a guardar las fotos, y por ultimo seleccionamos la carpeta del disco donde se encuentran las imagenes del comic.

Para esta operación, solo es necesario tener en cuenta, un par de detalles:

  1. Las fotos deben estar enumeradas en el mismo orden en que se va a leer el comic.
  2. Todas las fotos deben estar en la misma carpeta del disco, utilizando diferentes carpetas para cada comic.
  3. Si elegimos un comic que ya contiene imagenes, estas serán borradas antes de realizar la importación de las nuevas fotos.

Formulario de edición de un comicSi realizamos doble click, sobre uno de los comics de la rejilla, podemos ver el formulario de edición de un comic, mostrandose una rejilla con las fotos debidamente ordenadas.

Para evitar posibles reclamaciones de la S.G.A.E., debo añadir que en las imagenes, se muestra el StoryBoard de un Corto que fuí director y realizador en 2008 con un grupo de amigos que se prestarón voluntarios para participar en una campaña local contra las drogas, titulado “El botellón”. La aplicación la podreis encontrar con este “storyboard” incluido, y libre de royalties.

Nada mas que decir, espero que os guste y que os permita buenos momentos de ocio en la lectura de vustros comics.

Older Posts »

Categorías