Registro Fashion 2009 | Aplicacion AIR

Fashion 2009

Fashion 2009

Introducción

Pues esta ocacion les hablare de una aplicacion que apenas termine :D

Lo que se necesitaba para esta aplicacion es un simple registro de asistencia para un evento denominado Mercedes Benz Fashion 2009, al que pueden registrarse desde la pagina :P , sin embargo algo muy importante a implementar es importar y exportar datos a Excel.

Pues no se porque razon :D los organizadores tienen sus registros en un archivo de Excel y entonces esos hay que insertarlos la BD (MySQL) y posteriormente tambien hay que exportarlos a un archivo xls a modo de reporte de asistencia. Y para tomar la asistencia pues simplemente se cargan los registros de cada desfile en la interfaz de la aplicacion y se muestra el nombre y un CheckBox para tomar la asistencia y ahi mismo se pide el numero de boletos de la persona registrada, por si va con mas acompañantes.

Pues les medio explicare :D como es que se realizo esta aplicacion y que herramientas se utilizaron.

Herramientas Utilizadas

Al ser una aplicacion que se accede por varios equipos en una red es necesario configurar uno de ellos como servidor, para lo que se utilizo:

  • AIR
  • Servidor Web, PHP y de BD (AppServ que incluye Apache, PHP y MySQL)
  • WebORB para PHP
  • Microsoft Excel 2003 (obvio :D )

Y para los otros equipos solamente se necesita instalar AIR, ya que ahi solo se instala la aplicacion.

Metodologia

Pues para realizar la aplicacion se hizo lo siguiente:

Es una aplicacion Flex de Escritorio (AIR) que se conecta a una BD MySQL via PHP a traves de WebORB y que importa/exporta datos de Excel utilizando la libreria as3xls.

Comunicacion con la BD

Primeramente se configura el proyecto en Flex para que sea una aplicacion AIR y se implementan los RemoteObject que se comunican con las funciones PHP del WebORB entre los que se incluyen querys para seleccionar, insertar y modificar la informacion de la BD. Esto es una ves que ya existe la informacion en la BD.

Desfiles

Para los desfiles existe una ventana en la aplicacion con la que se pueden dar de alta cada uno de ellos y donde tambien se muestran los que ya estan en la BD.

Esta ventana se muestra al iniciar la aplicacion para que se seleccione un desfile y se carguen los registros de este.

Importacion

Para lo de la importacion de Excel se creo un archivo base para insertar en donde deberia, porque solamente se leen las columnas especificadas en el codigo, en este archivo es donde se cargan los registros a importar y desde la aplicacion se busca ese archivo, se lee el contenido y se crear un query insert para todos los registros en el archivo de la forma

INSERT INTO tabla VALUES
              ('reg1campo1','reg1campo2','reg1campo3'),
              ('reg2campo1','reg2campo2','reg2campo3'),
              ...

y este query se manda a la BD insertando de una sola vez todos los registros contenidos en el archivo xls.

Exportacion

Para exportar los datos existen tres tipos de reportes, el del evento seleccionado, el del dia que inclye los eventos que sean del mismo dia que el que se encuentra seleccionado, y el reporte de todos los registros que incluye todos los desfiles de todos los dias. Los datos de los reportes se obtienen de la BD y se guardan en un Array que es el que exportaremos.

Al entrar a la pantalla de reportes muestra los registros de la BD, los que se encuentran con asistencia y la cantidad de boletos que se dieron para los asistentes.

Para exportar simplemente se elige el tipo de reporte de un RadioButtonGroup y se pulsa sobre un boton que muestra la un explorador para indicar el nombre del archivo a guardar. Una vez que se indica el archivo se crean las variables necesarias para crear el xls y se comienza a escribir sobre el la informacion contenida en el Array, se escribe con la funcion de as3xls

sheet.setCell(row,col,data)

en donde

sheet

es una variable de tipo “Hoja de Excel” y se le pasa la fila, columna e info a escribir.

Problemas encontrados

Al desarrollar esta aplicacion se tuvieron muchos obstaculos que impedian el funcionamiento o el cumplimiento de requisitos.

  • Entre estos uno de los principales fue la importacion/exportacion de Excel. En este aspecto se probaron varias posibles soluciones hasta utilizar la libreria as3xls. Entre las cuales fue hacer un CSV (Comma Separated Values, legible por Excel) desde MySQL con SELECT … INTO OUTFILE y posteriormente escribirlo en un archivo xls con PHP haciendo uso de librerias como MS-Excel Stream Handler siendo esta opcion una que mas se apegaba :D , pero tambien encontre una forma muy simple y sencilla de pasar una consulta MySQL a Excel en este post de PHPsimple.net. Lo unico de estas soluciones es que es implementarlo desde un servidor web, que para aplicaciones Flex de web no tiene ningun inconveniente.
  • Finalmente me decidi por la libreria par as3 despues de algunas modificaciones de alfathenus, usuario de Cristalab y depues de varios cometarios en este post :D . el principal problema que se habia encontrado es que no respetaba los caracteres con acento y la letra ñ pero quedo solucionado :D.
  • Otro problema que encontre fue con WebORB y es que no se porque me mandaba un “Channel Disconnected” cuando hacia una consulta que me traia mas de 6800 registros, digo 6800 porque despues de varias pruebas comprobe que solo funciona hasta 6799 :D , y pues como este evento es toda una semana y hay como seis desfiles con unos 1000 registros :o , pero esto lo solucione con varias llamadas a la consulta poniendole un LIMIT dentro de esta y concatenando los resultados al arreglo que tendria todos.
  • Finalmente un problema que ya no pude resolver :D :D fue que para guardar (exportar) el archivo xls utilizo una referencia a un archivo con la clase File y el metodo browseForSave. Pero este metodo solo acepta un argumento: titulo de la ventana, por lo que, en primera muestra todo tipo de archivos y segundo es que es necesario indicar la extension que tendra el archivo, por lo anterior, por lo que si solamente se pone el nombre a guardar solo se crea el archivo pero sin extension.

Conclusiones

Pues con este sistema aprendi bastantes cosas que no sabia :D ….

Espero que haya sido de su interes y espero sus comentarios…

saludos ;)

Post to Twitter Post to Delicious Post to Digg Post to Facebook Post to MySpace Post to Ping.fm Post to StumbleUpon

3 comentarios para “Registro Fashion 2009 | Aplicacion AIR”

Deja un comentario

Buscar
Chatea con la comunidad
Recíbenos en tu correo

Ingresa tu direccion de e-mail:

Buscanos en…
Archivos
Categorías