Amigos, he logrado el resultado que buscaba.
Aquí una muestra de como
queda.
Los componentes utilizador fueron además de lo visible a simple vista.
TDbplanner y DBPeriodSource. Conectado a un query que se actualiza desde el ComboBox (TplannerDBDatepicker) que esta abajo a la izquierda,
Dando parámetros mediante propiedades:
El
dbperiodSource lo vinculé a la query reservas mediante las propiedades:
Datasource -> a un query o tabla.
Keyfield y resourcefield -> al ID de la tabla reservas
StartimeField -> campo con fecha de llegada
EndtimeField -> campo (calculado) entrada + estadía = fecha de salida
SubjectField y NotesField -> campos de tipo texto, pueden variar el orden segun quieran. En uno puse un calculado del Nombre del cliente y en el otro Observaciones.
Formateando el TDBPlanner
Display -> modifica propiedades de visualización del encabezado que tiene las fechas.
Sidebar -> modifican propiedades del encabezado que tiene las fechas.
Sidebar -> RotateOnTop: da vuelta el nombre de los dias para cuando la SideBar es ubicada arriba como en este caso.
Header -> propiedades de titulos de la barra encabezados de la izquierda (Nº habit).
Eso es todo lo básico a nivel de Diseño.
En cuanto a código luego de cada cambio en la tabla/query hay que refescar(rellenar el Planner)
Para eso en los eventos onchange lo hacemos con este procedimiento (tomado del Demo Nº 26 del componente)
Código Delphi
[-]
procedure llenarplanner();
Var
PlannerPosition : Integer;
begin
DBPeriodSource1.Active := false;
DBPeriodSource1.StartDate := cbfecha.date - 5;
DBPeriodSource1.EndDate := cbfecha.date + 31;
Qr.first;
PlannerPosition := 0;
While NOT Qr.Eof Do Begin
With DBPeriodSource1.ResourceMap.Add Do
Begin
ResourceIndex := qrcodigo.value; PositionIndex := qrIDhabit.Value-1; DisplayName := qrhabit.Value; End;
Qr.Next;
End;
DBPeriodSource1.NumberOfResources := Qr.RecordCount-1;
DBPeriodSource1.Active := true;
end;
Todo esto es lo básico para hacer funcionar el componente. Se agradece a todos los que participaron de este hilo y al moderador del foro.
Y cualquier aporte que puedan hacer será util para la posteridad
Me tomé el trabajo de explicar como poner en marcha este componente porque es muy bueno y si bien trae documentación,en el manual y ejemplos se ve complicado ya que no mencionan mucho sobre como asignar las propiedades en tiempo de diseño.
Y una vez que se tenga una guía ya es más simple.
Esto fue aplicado para visualizar reservas de habitaciones.A lo largo de un período de tiempo X distribuido en distintas habitaciones.
Los amigos
Radenf y
el-Mono Por lo que comentan lo han utilizado para visualizar un Dia con todos los horarios para asignar turnos.
Por lo que en los casos de ellos las propiedades asignadas deben ser otras, y en lugar de usar el TDBPeriodSource seguramente usaron TDBDaySource