Un problema de usabilidad


([N4] eic) #1

Hola.

Quería lanzar una pregunta, para ver si alguien tiene alguna pista de si esto es posible.

Muchas veces tengo que incluir en las aplicaciones alguna funcionalidad para “subir archivos a la aplicación”, de manera que puedan estar disponibles desde la ficha de un cliente, o de un proveedor, o de un empleado, etc. Podríamos discutir si es mejor utilizar objetos binarios para almacenar esos ficheros, o si deben almacenarse externamente a la base de datos, pero este no es el problema que quería plantear.

El problema es la usabilidad. La única forma que conozco para hacer esto es lanzar un comando de selección de archivo, por lo que el usuario tiene que navegar hasta la localización del archivo, seleccionarlo (de uno en uno), y luego añadirlo a la aplicación. Y quería mejorar esto, aportar alguna otra manera de realizar esa operación tan simple.

Una cosa que se me ocurría que podría ser interesante es un drag and drop, similar al que tiene Gmail para añadir archivos adjuntos a un correo. Imaginad que puedo hacer más pequeña la ventana de mi aplicación Velneo, visualizar el escritorio, y arrastrar archivos a la ventana Velneo. Muy cómodo. El problema es hacerlo.

Y se me ocurre que quizá podría utilizarse un control HTML, con código ¿Javascript, HTML5?, que permitiese “recibir” esos ficheros “arrastrados”, y posteriormente hacer con ellos en Velneo lo que haya que hacer (subirlos a un objeto binario, almacenarlos externamente, lo que sea).

Pero no sé si esta aproximación es factible, es posible, tiene visos de realidad. Si alguien tiene alguna idea, sea bienvenido.

Gracias,

Fran Varona


([N1] filipeagg) #2

Lo puedes hacer con Javascript o Html5, pero tienes que implementar un metodo complejo para enviar la informacion de los ficheros a velneo, ya sea con vmodapache tcp/ip etc;

Sin complicar demasiado se me ocurre recorrer un directorio, y ir generando una tabla arbolada con los directorios y ficheros, así ya podrias selecionar varias filas de registros y leer esa información con el control de multiselecion.

Solo no sé si en terminos de rendimiento no tardaria algo de tiempo dar de alta las fichas, cada vez que pinchas en un directorio.

Un saludo,

Filipe Gomes
http://filipegomes.eu
filipeagg@gmail.com


([N1] filipeagg) #3

Otra solucion, al mejor seria hacerlo con qml, pero ahí aun no te puedo ayudar, al mejor Jorge Hontoria nos puede aportar alguna luz.


([N4] eic) #4

Gracias, Filipe.

Efectivamente, aunque en el control HTML se pueden recibir los ficheros, no hay una manera “sencilla” de que la aplicación se entere de los nombres de los ficheros arrastrados. No hay comunicación posible entre el control y la aplicación. Tendría que ser algo directo desde el código HTML, pero eso es complicado.

Con QML he estado mirando cosas, pero creo que sólo permite (directamente al menos) drag & drop de elementos del propio componente QML, no de ficheros externos. Por lo que parece, habría que tirar de C#.

Gracias!


([N1] filipeagg) #5

Yo tengo algo hecho para comunicar desde el html con el vclient, necesitaria de alguna depuración, pero funciona más o menos bien, si te interesa enviame un email y lo comentamos.


([N1] ViperNET) #6

Hola Fran

No lo he hecho, pero lo que se me ocurre es hacer un tipo “explorador de windows” en Velneo y desde ahí realizas un drag&drop fácilmente. Yo lo he hecho en otros lenguajes, pero en Velneo no tengo mucha experiencia, sin embargo creo que si se lo podría hacer.

Victor


([N4] innovadb) #7

Hola Fran

Si tienes un apache en el servidor no necesitas conocer los nombres de los archivos. Yo lo veo mas como un directorio configurado y dentro de este creamos un directorio para cada registro, y dentro de este metemos el archivo.

De esta forma recorres el directorio raiz, al entrar en cada subdirectorio ya conoces el id del documento, y al recorrer este directorio encuentras el archivo y ya tienes su nombre.

Con algo parecido a esto http://blueimp.github.com/jQuery-File-Upload/ lo subes, y con un proceso en 3P lo procesas.

Un saludo