Propiedades Ingrid web. Referencias

Ejemplo online: carretera54

En una lista de una página de Ingrid pueden aparecer conceptos de tipo referencia a un tipo de archivo cualquiera (pdf, xls, doc, imágenes png, jpg, vídeos avi, swf, una dirección url, una página htm...). Al hacer clic en ella, se navega a ella de forma que si el navegador puede abrirlo, lo mostrará, como en el caso de una imagen, o un pdf, y sino lo descargará en la máquina cliente.

Si en la BD la referencia externa está definida a una carpeta, se mostrará la carpeta como concepto, y visualmente bajo ella, como si fuesen conceptos de BD, los archivos y directorios que contiene en el servidor. 

Además si se tiene permiso para editar conceptos de la tabla REF, estando en edición, aparecen unos botones al pie de la lista, que permiten: Crear directorios,  Renombrar archivos y directorios, Mover archivos entre subcarpetas de la carpeta raíz de la referencia externa, Eliminar carpetas y archivos, y subir archivos directamente desde el explorador de Windows del cliente, Esta operación también se puede hacer con una multi-seleccion de archivos sobre la lista.

Haciendo doble clic en una línea o en el icono de Vista P., se muestra en un panel inferior el archivo, si el navegador puede visualizarlo.

 

La utilidad de estas carpetas es organizar información junto a la BD pero sin relación con ella, como ocurriría si arrastramos uno a varios archivos de cualquier tipo sobre el panel de imágenes de un concepto.

Esto da acceso a los usuarios a sus directorios de datos del servidor, sin tener que abrirles un espacio ftp, por ejemplo.

 

Además, se puede programar un script que se ejecute cuando se realice alguna de las acciones comentadas (subir archivos, mover, renombrar...) para ello hay que poner en el campo Parámetros de la referencia un código de informe de tabla INF clase 0, al cual en cada acción le llegan los siguientes datos y ejecuta las siguientes acciones:

 

// iwebdocSesion=2; ide=<ide>; que=
// "lee/subdirectorios" NO LLAMA AL PROCEDIMIENTO
// "crea/subdirectorios" SI RETORNA ALGO CON WRITELINE INTERRUMPE y PRESENTA ESE ALGO
// "renombra/subdirectorios//nombre" "
// "mueve/subdirectorios//[nombre/]//destino" "
// "elimina/subdirectorios//[nombre/]" "
// "recibe/archivo" DESPUES DE RECIBIR SI RETORNA ALGO PRESENTA

prin("ide:"+ide+" que:"+que);
writeline ("Aquí se para la ejecución");

 

Es decir, con este código como informe: siempre tenemos el identificador del concepto tipo referencia actual, y cuando se imprime un writeline, se devuelve ese texto en un diálogo y se interrumpe la ejecución. Sino, tenemos en la variable que, la acción realizada, y la ejecución continúa.