VARCHART XGantt представляет собой интерактивный контроль диаграммы Ганта, и его модульная конструкция позволяет создавать приложения, которые отвечают вашим и вашим клиентам потребностям. Это может быть быстро и легко интегрировано в приложение, помогая выявлять узкие места в производительность, избежать задержек и эффективное использование ресурсов, что делает его более легким для понимания сложных данных.
В этой статье объясняется, как VARCHART XGantt основного времени вычислений деятельности концевого, и заинтересованные друзья могут смотреть на свои руки о ~
Таблица Конечная дата столбец остается пустым. Помощь , которая может быть включена в календаре VARCHART XGantt, от « начала » и « время в случае расчета» поля.
В календаре по умолчанию, рабочий день (с понедельника по пятницу) определяется как время активности, и в выходные дни (суббота и воскресенье) определяется как неактивное время.
На рисунке вы можете определить время неактивности на сером фоне. Под « узлами » , чтобы отключить «страницы свойств календаря , назначенный узел » , чтобы отключить календарь.
Пожалуйста, обратите внимание, что различия в расчете ли календарь:
Мероприятия начинаются с пятницы и длиться в течение трех дней, если календарь активирован, событие закончится во вторник. Нет календарь, событие не завершится в воскресенье.
Дата окончания через объект AddDuration VcCalendar из (...) метод расчета. Таким образом, начало и продолжительность каждого вида деятельности. Они могут быть получены из соответствующих полей данных по индексу. По DataField (...) затем установить дату окончания, вы должны вызвать UpdateNode VcNode путь , так что вы можете увидеть изменения в данных.
Пример кода
Тусклое tmpCal В VcCalendar Тусклое tmpDate как дата Set tmpCal = VcGantt1.CalendarCollection.Active tmpDate = tmpCal.AddDuration (node.DataField (2), node.DataField (4)) node.DataField (3) = tmpDate node.UpdateNode
Создание или изменение деятельности дата начала и конца автоматически помещается в активное время пути взаимодействия мыши.
В отличие от этого, API или диалоговые редактирования и даты могут быть помещены в нерабочее время.
Вычислив результирующую дату всегда находится в рабочее время. Для того, чтобы гарантировать, что даты, установленные в рабочее время API, рассчитываемые от требуемой даты и конечной даты начала продолжительности деятельности.
Пример кода
tmpDate = tmpCal.AddDuration (node.DataField (3) _ (-1) * node.DataField (4)) node.DataField (2) = tmpDate
Для того , чтобы поддерживать согласованность данных, потеря или отрицательную длительность считаются неверными, и сбрасывается до 0. Если не указана дата начала, дата окончания не может быть вычислена. Обобщенная требуемый код с именем SetNodeEndDate (...) отдельные методы.
Пример кода
Private Sub SetNodeEndDate(ByVal node As VcNode) 'Avoid empty or negative duration If node.DataField(4) = "" Or node.DataField(4) < 0 Then node.DataField(4) = "0" End If 'Start date empty then end date should also be empty If node.DataField(2) = "31.12.1899 00:00:00" Then node.DataField(3) = "" Else 'Precondition is property page nodes '"Assign calendar to nodes" must be true Dim tmpCal As VcCalendar Dim tmpDate As Date Set tmpCal = VcGantt1.CalendarCollection.Active tmpDate = tmpCal.AddDuration(node.DataField(2), _ node.DataField(4)) node.DataField(3) = tmpDate 'Start date only in active times tmpDate = tmpCal.AddDuration(node.DataField(3), _ (-1) * node.DataField(4)) node.DataField(2) = tmpDate node.UpdateNode End If End Sub
需要计算日期:
1、活动结束后
2、通过数据编辑对话框或就地编辑器修改日期或持续时间之后
3.、API修改活动值后
然而,在通过鼠标交互进行修改之后,不必启动计算,因为这将自动执行内部计算。
可以通过VcGantt对象的属性NodeCollection来设置包括所有节点的计算循环。它的代码将被添加到事件Form1_Load(...)的末尾。
示例代码
'Calculate end date for all nodes Dim node As VcNode For Each node In VcGantt1.NodeCollection SetNodeEndDate node Next
可以通过事件OnNodeModifyComplete捕获用户引起的数据更改。方法调用执行结束日期的计算。
示例代码
Private Sub VcGantt1_OnNodeModifyComplete _ (ByVal узел Как VcGanttLib.VcNode, _ ByVal isLastNodeInSeries As Boolean) узел SetNodeEndDate End Sub
Если данные были изменены через API, вы должны вызвать SetNodeEndDate (...) .