AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / Desarrollar una aplicación o un sitio web / Controles, ventanas y páginas / Controles: tipos disponibles / Control Diagrama de Gantt
  • Presentación
  • Manejo de la control Diagrama de Gantt mediante programación
  • Añadir una tarea
  • Añadir un enlace
  • Organización de las tareas
  • Rellenar una columna del diagrama de Gantt con los datos que se encuentran en un archivo de datos HFSQL
  • Recuperación de una lista de tareas
  • Visualización del diagrama de Gantt a partir de una fecha específica
  • Eliminación de una tarea
  • Eliminar un enlace
  • Uso del menú contextual (FAA)
  • Uso avanzado de los eventos associated con una columna del diagrama de Gantt
  • Uso avanzado de eventos con procedimientos
  • Gestión de los días festivos
  • Gestión de las vacaciones public
  • Gestión de las vacaciones
  • Gestión de las horas de trabajo
  • Propiedades específicas de las columnas del diagrama de Gantt
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Manejo programático de los controles del diagrama de Gantt
Presentación
Manejo de la control Diagrama de Gantt mediante programación

Añadir una tarea

Para añadir una tarea a una columna del diagrama de Gantt:
  1. Definir y llenar una GanttTask Variable.
  2. Añadir la tarea con GanttAddTask.
Ejemplo:
NewTask is GanttTask
 
// Configures the task
NewTask.ID = GetIdentifier()
NewTask.Row = 1
NewTask.Progress = 50
NewTask.StartDate = Today()
NewTask.DurationInDay = 1
NewTask.Title = "New task"
 
// Adds the task
GanttAddTask(COL_Gantt, NewTask)
Consejo: Si las tareas se almacenan en un archivo de datos, los elementos deben nombrarse como los miembros de GanttTask Variable. Entonces, tendrá la posibilidad de utilizar FileToMemory para llenar el Variable en un solo Line de código:
//Updates the variable with the data of the items in the data file
FileToMemory(NewTask, TaskForGantt)

Añadir un enlace

Para añadir un enlace entre dos tareas que se encuentran en una columna del diagrama de Gantt, basta con llamar a EnlaceGanttAddLink. Esta función acepta dos sintaxis:
  • sintaxis utilizada para vincular 2 tareas identificadas por su identificador:
    t1 is GanttTask
    t1.ID = "T1"
    t2 is GanttTask
    t2.ID = "T2"
    GanttAddLink(COL_Gantt, t1, t2)
  • sintaxis que manipula una variable de tipo GanttLink.
    // Create a link via a GanttLink variable
    Link is GanttLink
    Link.SourceID = "T1"
    Link.DestinationID = "T2"
    GanttAddLink(COL_Gantt, Link)
Observación: El enlace creado es un enlace "Fin a Inicio" de Default. El tipo de enlace creado puede configurarse en GanttLink Variable o en EnlaceGanttAddLink. Los enlaces disponibles son:
  • "Enlace "Start to Start: La tarea de destino solo puede iniciar si se inicia la tarea de origen.
  • "Enlace "De principio a fin: La tarea de destino no puede finalizar mientras no se inicie la tarea de origen (caso poco frecuente).
  • Enlace "Fin a Inicio" (caso Default): La tarea de destino no puede iniciarse mientras la tarea de origen no haya finalizado..
  • "Enlace "De extremo a extremo: La tarea de destino no puede finalizar mientras no haya finalizado la tarea de origen.

Organización de las tareas

Por Default, las columnas del diagrama de Gantt están configuradas para reorganizar automáticamente las tareas de acuerdo a sus vínculos: si el usuario mueve una tarea a tiempo, todas las tareas que dependen de esta tarea se moverán automáticamente.
Para desactivar este parámetro y organizar libremente las tareas:
  1. Abra la ventana de descripción del control.
  2. En la pestaña "Detalles", deseleccione la opción "Reorganizar las otras tareas cuando el usuario hace cambios".
  3. Utilice GanttOrganizarTarea para forzar una reorganización selectiva de las tareas.

Rellenar una columna del diagrama de Gantt con los datos que se encuentran en un archivo de datos HFSQL

Los registros se almacenan en un archivo de datos HFSQL. El llenado inicial de la control Diagrama de Gantt puede hacerse navegando por la el archivo de datos mediante la sintaxis FOR EACH y añadiendo cada tarea mediante GanttAddTask.
// GanttTask variable
MyTask is GanttTask
 
// Browse the tasks stored in database
FOR EACH Task
// Fills the information of the variable
MyTask.ID = Task.Identifier
MyTask.Progress = Task.Progress
MyTask.StartDate = Task.Date
MyTask.DurationInDay = Task.TaskDuration
MyTask.Title = Task.Title
// Adds the task
GanttAddTask(COL_Gantt, MyTask)
END

Recuperación de una lista de tareas

La función Tareas de la lista de Gantt permite obtener:
  • la lista de todas las tareas encontradas en la columna Diagrama de Gantt:
    // Lists all the tasks
    arrList is array of GanttTask
     
    // Retrieves the list of tasks
    arrList = GanttListTask(COL_Gantt)
     
    InfoBuild("The tasks have been retrieved: the array contains %1 tasks.", ...
    arrList.Occurrence)
  • la lista de tareas incluidas entre dos fechas:
    // Lists the tasks from today's date
    arrList is array of GanttTask
     
    // Retrieves the list of tasks
    arrList = GanttListTask(COL_Gantt, DateSys())
  • la tarea que está actualmente seleccionada o sobrevolada:
    // Retrieves the selected task
    arrList is array of GanttTask
     
    // Retrieves the list of tasks
    arrList = GanttListTask(COL_Gantt, ganttSelectedTask)
     
    InfoBuild("The retrieved task: %1.", arrList[1].Title)

Visualización del diagrama de Gantt a partir de una fecha específica

Para visualizar el diagrama de Gantt a partir de una fecha y hora determinadas, utilice GanttDateTimePosition.
GanttDateTimePosition(COL_Gantt, DateSys())

Eliminación de una tarea

GanttDeleteTask se utiliza para eliminar una tarea.
Por ejemplo:
// "Delete" button
IF YesNo("Do you want to delete this task") THEN
GanttDeleteTask(COL_Gantt1)
END

Eliminar un enlace

Enlace de borrado de Gantt se utiliza para eliminar un enlace.
Por ejemplo:
// Deletes the links from the T2 task
GanttDeleteLink(COL_Gantt, "T2")
GanttDeleteAll se utiliza para eliminar todas las tareas y todos los enlaces de una columna del diagrama de Gantt.
Uso del menú contextual (FAA)
El control Columna del diagrama de Gantt es associated con un menú contextual (AAF). El menú que aparece le permite:
  • Agregar, eliminar o modificar una tarea.
  • Enlazar la tarea seleccionada con una tarea de condición previa..
  • Borrar todas las condiciones previas de una medida..
  • Imprimir el contenido del diagrama de Gantt. Esta opción sólo está disponible si se ha creado una "Carta Gantt" reporte.
Para grabar las operaciones realizadas, debe utilizar los eventos de la columna.
En el Event correspondiente, basta con recuperar la tarea o el enlace utilizado actualmente y realizar el Process correspondiente .
Ejemplo: Para almacenar una tarea agregada por el usuario mediante el menú contextual en un archivo de datos "Tarea", introduzca el siguiente código en el evento "Entrada en edición de una tarea":
PROCEDURE EnterInInput(gtEdited is GanttTask)
 
// Store the data
Task.Title = gtEdited.Title
Task.StartDate = gtEdited.StartDate
Task.EndDate = gtEdited.EndDate
...
HAdd(Task)
Se puede implementar el mismo tipo de código para los diferentes eventos de la columna Diagrama de Gantt.. En efecto, para cada Event de la control que gestiona una tarea o un enlace, se ha declarado automáticamente un Procedure mediante la columna control.
Estos procedimientos reciben como parámetro una variable GanttTask o GanttLink afectada por el Event.
Uso avanzado de los eventos associated con una columna del diagrama de Gantt

Uso avanzado de eventos con procedimientos

También puede permitir que el usuario defina con mayor precisión las características de su tarea durante una adición o una modificación..
Para ello, cree una ventana con la información a especificar.
En el código, basta con abrir la ventana en la "Introduzca la tarea en la entrada" Event. Para bloquear la entrada directa mediante el menú contextual de la columna, el evento debe devolver False.
Este principio puede aplicarse a todos los eventos llamados por el menú contextual de la columna.
Ejemplo:
PROCEDURE EnterInInput(gtEdited is GanttTask)
 
// Opens the window for task input
// with the selected task (in Creation or Modification mode)
Open(WIN_TaskInput, gtEdited)
 
// Returns False to lock the direct input in the column
RESULT False
Gestión de los días festivos

Gestión de las vacaciones public

Los días festivos pueden ser programados por set. Varias funciones de WLanguage (empezando por BankHolidayXXX) están disponibles.
Para definir los días festivos que se muestran en los controles del Organizador, del Programador, de Calendar y de la Columna del Diagrama de Gantt, debe utilizar BankHolidayAdd. Esta función permite definir la lista de días festivos que se utilizarán. Esta función permite personalizar las vacaciones public según la normativa Country y local. Esta función debe utilizarse al principio de la aplicación porque tiene un efecto global sobre la aplicación.
Los días festivos se colorearán en verde en el diagrama de Gantt..
Ejemplo:
// Delete all public holidays
BankHolidayDeleteAll()
// Initialize the 11 public holidays common to the French regions and territories
BankHolidayAdd("0101") // 1st of January
BankHolidayAdd(bhEasterMonday) // Easter Monday
BankHolidayAdd("0501") // 1st of May
BankHolidayAdd("0508") // 8th of May
BankHolidayAdd(bhAscensionDay) // Ascension day
BankHolidayAdd(bhWhitMonday) // Whit Monday
BankHolidayAdd("0714") // 14th of July
BankHolidayAdd("0815") // 15th of August (Assumption)
BankHolidayAdd("1101") // All Saints' Day
BankHolidayAdd("1111") // 11th of November
BankHolidayAdd("1225") // Christmas
 
// Add 2 additional public holidays for the regions of Moselle and Alsace
BankHolidayAdd("1226" + CR + bhGoodFriday)

Gestión de las vacaciones

Para gestionar las vacaciones en un diagrama de Gantt para una fila determinada, basta con utilizar GanttAddHoliday. En ese caso:
  • El nuevo periodo de vacaciones se considera un periodo no laboral para la fila.
  • La duración de las tareas se ajusta en función del período de vacaciones especificado.
Ejemplo:
// Holidays for row 4
GanttAddHoliday(COL_Gantt, 4, "20140204", "20140204")

Gestión de las horas de trabajo

Por Default, las horas de trabajo se definen cuando se describe el control Diagrama de Gantt en el editor de la ventana. Estas horas de trabajo pueden modificarse para toda control con WorkingHourStart y WorkingHourEnd.
Hora de trabajo de Gantt se utiliza para personalizar las horas de trabajo de un determinado fila.
Ejemplo:
// For row 2, the working hours go from 9:30 to 12:00 then from 13:00 to 18:30
GanttWorkingHour(COL_Gantt, 2, "0930", "1200", "1300", "1830")
// For row 3, the working hours go from 10:00 to 17:00
GanttWorkingHour(COL_Gantt, 3, "1000", "1700")
Observaciones:
  • Esta función afecta al dibujo del diagrama de Gantt si las horas se visualizan en el diagrama de Gantt..
  • Esta función afecta al cálculo de la duración de la medida si las medidas se especifican en horas.
Propiedades específicas de las columnas del diagrama de Gantt
Las siguientes propiedades se utilizan para gestionar un diagrama de Gantt mediante programación.
AutomaticReorganizationLa propiedad de reorganización automatic se usa para obtener y cambiar el modo de reorganización automatic para las tareas en una columna "Diagrama de Gantt".
DisplayLinkLa propiedad DisplayLink obtiene y establece el modo de visualización de los enlaces en una columna de tipo Diagrama de Gantt.
MovementTaskEl MovementTask Property permite conocer y modificar la forma en que los usuarios mueven las tareas en una columna del diagrama de Gantt.
Para obtener una lista completa de las propiedades de WLanguage que pueden utilizarse con una columna del diagrama de Gantt, consulte Propiedades associated con las columnas del diagrama de Gantt.
Versión mínima requerida
  • Versión 19
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 23/05/2023

Señalar un error o enviar una sugerencia | Ayuda local