|
|
|
|
- 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
Manejo programático de los controles del diagrama de Gantt
Para manipular a control Diagrama de Gantt mediante programación, WINDEV propone: Esta ayuda Page explica cómo manipular a control Diagrama de Gantt a través de la programación: Manejo de la control Diagrama de Gantt mediante programación Para añadir una tarea a una columna del diagrama de Gantt: - Definir y llenar una GanttTask Variable.
- 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)
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: - Abra la ventana de descripción del control.
- En la pestaña "Detalles", deseleccione la opción "Reorganizar las otras tareas cuando el usuario hace cambios".
- 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 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 Por ejemplo: // "Delete" button IF YesNo("Do you want to delete this task") THEN GanttDeleteTask(COL_Gantt1) END
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. 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.
| | AutomaticReorganization | La 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". | DisplayLink | La propiedad DisplayLink obtiene y establece el modo de visualización de los enlaces en una columna de tipo Diagrama de Gantt. | MovementTask | El MovementTask Property permite conocer y modificar la forma en que los usuarios mueven las tareas en una columna del diagrama de Gantt. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|