Página 1 de 1

Informe planning con casilleros

Publicado: 13 Nov 2007, 20:34
por Yossua
Buenas,

estoy haciendo un planning de ocupación de habitaciones de un hotel, mi idea es hacerlo con casilleros para poder visualizar el estado de la habitación en una fecha determinada (Reservada, Ocupada, Libre).

El planteamiento es el siguiente:
Un menu
Un casillero vertical de habitaciones
Un casillero horizontal de fechas

Varios casilleros horizontales correspondientes a Habitación-Fecha, tantos como habitaciones y con tantos registros como fechas se necesiten consultar.

Hasta aquí creo que el enfoque bien, supongo.

-------FECHA1-FECHA2-FECHA3
HAB1--CAS-----CAS------CAS---
HAB2--CAS-----CAS------CAS---
HAB3--CAS-----CAS------CAS---
----------------------------------------
----------------------------------------

Para ello tengo dos tablas, una de habitaciones y otra de reservas
y a partir de estas dos creo una en memoria llamada planing que contiene los campos: habitacion, fecha y estado.

los valores "CAS" del casillero y las fechas provienen de esta tabla en memoria, y los valores HAB de habitaciones.

después de esta introducción va la pregunta,
¿cómo relleno los valores de todos los casilleros?
ya que para el primer casillero serían los valores de la habitación número 1, para el segundo casillero los de la habitación número 2, etc. Pero no sé como ir recorriendo las habitaciones si no las conozco previamente.

Publicado: 14 Nov 2007, 08:42
por Alejandro Rojas
Es bastante sencillo aunque un poco largo de explicar. Yo lo tengo hecho de 2 formas, una con 3 casilleros (en tu caso, fechas, habitaciones y estado) y otra con 2 casilleros (fechas y estado) y 30 variables en memoria(habitaciones). En el proceso oninit del formulario calculas el estado de las habitaciones. Luego en el menu formulario en los procesos de los "casillero con subproceso" determinas los registros a mostrar en cada casillero. En la imagen que te adjunto lo ves en ejecución. Está compuesto de 2 menus tipo formulario para que el usuario pueda abrir or cerrar según quiera ver la descripción de las tareas (a la izquierda). En tu caso bastaría con uno. Y en este menú tengo 30 variables en memoria (con condiciones de visibilidad). En la derecha, tengo 1 casillero con el nº de tareas (en tu caso, fechas) y 30 veces el casillero de estado (con condiciones de visibilidad). La variable PAGINA está sincronizada con todo de forma que se pueden ir mostrando múltiples páginas.

También se puede hacer con 3 casilleros y 1 solo menú, que es más rápido a la hora de cambiar de página, pero da un poco más de lata a la hora de crear la tabla con el estado de las habitaciones.

No te puedo enviar el mapa de ejemplo porque forma parte de una aplicación mucho más compleja y tiene una estructura de tablas muy complicada.

Un saludo

Publicado: 14 Nov 2007, 09:40
por Yossua
Muchas gracias por contestar,
El planteamiento sería ese, es decir en el menú de la izquierda tuyo yo pondría las habitaciones, y en el de la derecha (1,2,3,4...) yo pondría las fechas.
Ahora bien, yo no sé cuantas habitaciones va a haber, es decir, no puedo establecer 30 variables ya que asi estaría limitando el programa a 30 habitaciones, y esa no es la idea.
El problema que tengo es que en el proceso de alimentar los casilleros, tengo que ir alimentando los casilleros de HAB-ESTADO con el valor de cada habitación, pero no sé cómo pasarle según sea el casillero, el valor de la habitación.
¿Puedo usar el mismo proceso de alimentar casillero para todos los casilleros?
¿Cómo intercambio de habitación según el casillero que sea?

En pantalla podría tener esas 30 habitaciones pero tendría que poder cargar más paginando.
Yo tengo que mostrar cada casillero de pantalla (casillero1=habitación1, casillero2=Habitación2......) para cada habitación en cada fecha, pero no sé como pasarle el parámetro de la habitación para alimentar el casillero. Lo que se me ocurre es tener un valor de la habitación fijo, de la forma:

Para los Valores HAB-FEC del planning

Cargar lista->planning, habitacion, "101",,,
---if->~$PAGINA-PLANNING$ > (n-20)
--------Modificar variable global->PAGINA-PLANNING, n-19,
---Cortar lista->20, $PAGINA-PLANNING$
---Añadir retorno->PLANNING,

Pero no sé como alternar el valor de la habitación ("101") para cada casillero, ya que debería haber un casillero por habitación.

Publicado: 14 Nov 2007, 13:31
por Agustin
Buenos días: he chapuceado algo que te puede orientar
Un saludo

Publicado: 14 Nov 2007, 13:57
por Yossua
Muchas gracias Agustin,
lo he ojeado por encima pero creo que me da una idea, voy estudiarlo y os comentaré.

Publicado: 14 Nov 2007, 14:24
por Alejandro Rojas
El límite de 30 lo pongo POR PAGINA y está en funcion de la resolucion a la que trabaja el usuario, tú podrías poner más o menos. El número de páginas es ilimitado. En mi aplicación un proyecto puede tener infinitas tareas.

Cada uno de los casilleros tiene su propio proceso. Lógicamente todos son muy parecidos. Adjunto te mando el proceso-4, que corresponde al casillero nº 4, en el dibujo tienes señalado en rojo lo único que hay que cambiar, la variable global T04, y el 3 que sale de (Casillero a mostrar-> 4) - 1. Las variables COL y FIL son fijas y valen 150 y 31 respectivamente y la variable PAGINA sirve para calcular la página a mostrar. Como puedes ver obtengo el valor de las variables de la tabla a la vez que genero el casillero.,

El único truco es el proceso de creación de la tabla donde tengas los ESTADOS de las habitaciones, que tienen que tener tantos registros por habitación con filas en el casillero (en mi caso 150). Yo uso una tabla auxiliar en memoria ZZ0006 que se carga en el proceso oninit del menú.

Publicado: 14 Nov 2007, 17:04
por agonzalez
Si no le vas a dar ninguna funcionalidad a los casilleros, yo lo haría con una salida html, y me olvidaría de coordinar casilleros e historias. Otra cosa es que tengas que poder cambiar el estado de una habitación desde la visualización, etc.

En el vCRM, existen un par de ejemplos para visualizar la agenda diaria y mensual, con este tipo de visualización.

Un saludo.

Publicado: 14 Nov 2007, 20:13
por DomK
Ufff! Esta vez no lo he dicho yo... :wink: :lol: :lol: :lol:

Un saludo,