Run bar
TreeGrid documentation
Run is the most complex bar in TreeGrid Gantt that displays one or more individual boxes in one cell.
It can be used as replacement of the main bar with many extended features.
Or it can be used to create any other bar chart, not only Gantt.
In cell with Run there can be also shown other Gantt objects like flag, main bar, milestone or point.
Definition
Defining the individual boxes and their features
The Run is defined by
GanttRun (list of individual boxes) and eventually by
GanttRunStart (start date).
The run can be defined by one start date and list of durations and types of the individual boxes. The boxes are separated directly one by one, but it supports also empty type for space between boxes.
Or the run can be defined by start dates of individual boxes and their durations or end dates. In this case the empty boxes are automatically added between the boxes.
If the run boxes override each other, they are marked as error and shown in red.
The individual run boxes can have different duration, shape, color, caption and tooltip.
To let the whole run bar
dependencies and
resources, set
Run into
GanttTask, to have individual boxes
dependencies and
resources, add
Box into
GanttTask.
new 6.1 upd 13.0 <C> <cell> string[ ][ ]
GanttRun
Gantt source - column name or exact value
Definition of individual Run boxes.
If the boxes have not specified
Start date, they are displayed from
GanttRunStart one by one, without any space.
Array definition
The definition of boxes is separated by semicolon, the individual items in the box definition are separated by comma.
The semicolon and comma must not be present in any item text in the range. Or must be escaped by
GanttRunEscape.
It is possible to change the separators by adding them both on start, e.g.
"&*3*End*Start&20*Box&&20*Box" uses & as box and * as item separator. To be sure that the separator cannot be included in the run data, you can use any Unicode character as separator, e.g.
"3EndStart20Box20Box" uses
 as box and
 as item separator.
To specify the separator for new boxes in empty run, define them in
GanttRunNewStart.
Do not fill any useless white characters (spaces) in the definition!
The one box definition is: Duration,Type,Text,Class,Tip,Id,Group,State,Top,Height,... | Must have set also GanttRunStart as the start of the whole run |
OR Start,Duration,Type,Text,Class,Tip,Id,Group,State,Top,Height,... | (new 6.2) Does not support Empty and Nbsp and joined boxes |
OR Start,End,Type,Text,Class,Tip,Id,Group,State,Top,Height,... | (new 6.2) Does not support Empty and Nbsp and joined boxes and number data units |
All the fields are optional, e.g.
"3,End,Start;;5;;3,Solid,End" is the same as "3,End,Start,,;0,Empty,,,;5,Box,,,;0,Empty,,,;3,Solid,End,,"
JSON definition (since 10.0)
The GanttRun can be defined also in JSON format, in this case the string must start by these two characters (without spaces):
[{
If you define TreeGrid data in JSON format, the GanttRun value is string that contains data in JSON format, it is not embedded JSON object.
The parameter names are case sensitive, but there can be used two variants "Start" or "TextLeft" (first letter uppercase, other lowercase) or "start" or "textleft" (all letters lowercase).
Save is done always as first letter uppercase "Start" or "TextLeft".
White spaces inside definition are permitted, except the first two characters must be [{.
All the parameters are optional, e.g. {} is empty separating box, {Duration:xxx} is standard box.
To use JSON definition for new boxes in empty run, define the
GanttRunNewStart in the JSON format, e.g.
GanttRunNewStart="[{Duration:'0.0001'}]".
If used
custom attributes in the JSON definition, their names must be listed in
GanttRunCustom array.
The JSON definition is slower to parse and save than the Array definition.
The run definition is:
run = "[{ Param1_1:"value1", Param1_2:"value2", ... } , { Param2_1:"value2", Param2_2:"value2", ...}, { ... }, ... ]"
For example:
GanttRun="[{ Start:'1/1/2010', End:'1/8/2010', Type:'Box', Text:'my box' }, {Start:'1/10/2010',Duration:10} , {}, {Duration:5}]"
The attribute name can be with or without double quotes / apostrophes, the attribute value must be in double quotes or apostrophes. The quotation type when saving the JSON back is controlled by 4.bit of
GanttRunSave.
Summary definition (since 9.1)
GanttRun boxes can be defined also by child main bars (every run box by one main bar with Start, End, Duration and other attributes).
For more information see
Editable Run bar as summary of child Main bars.
The Summary definition is slower to parse and save than the Array and JSON definition.
GanttRun definition items
new 6.2 ? date
Start
Start date of the task, if used, the
GanttRunStart is ignored. Use Start date if the tasks are not continuous. Between tasks will be automatically added the Empty boxes.
The Start can be count of milliseconds or date string in English format (M/d/yyyy HH:mm:ss or d.M.yyyy HH:mm:ss or yyyy-MM-dd HH:mm:ss).
Does not support types Empty and Nbsp and joined boxes.
new 6.2 0 date
End
End date of the task, used instead of
Duration. Use End date if you know the start and end dates instead of duration.
The End can be date string in English format (M/d/yyyy HH:mm:ss or d.M.yyyy HH:mm:ss or yyyy-MM-dd HH:mm:ss).
Due internal implementation the End cannot be
count of milliseconds to not confuse with Duration.
The End can be the exact end date or the last data unit, according to setting
GanttLastUnit.
It is not possible to use it with number data units like GanttDataUnits='1'.
0 int
Duration
Duration of the box in
GanttDataUnits or in milliseconds, without excluded dates, used instead of
End date. Use Duration if you know duration and not end date.
The empty space
(Type=Empty) can have negative duration for overlaid adjacent boxes, these error boxes are displayed in red.
upd 7.0 1 int
Type
Feature of the box, default value is
Box if positive Duration is set or
Empty if Duration is
not set or is negative.
Since 7.0 also the Duration + only one comma is shortcut for
Empty box.
For example
"1;2,;3;;5" is shortcut to
"1,Box;2,Empty;3,Box;0,Empty;5,Box"
Case insensitive keyword, must
not contain any spaces. The type is saved back always lowercase.
Box | Normal box. Can be moved or resized by mouse dragging, depending on other settings. |
| Can be also moved automatically when other box is resized or moved, depending on other settings. |
| To permit moving box from its adjacent sibling, there must be defined Empty space between them (with Duration=0). |
| The Empty space is automatically created when the box is defined by its Start date. |
| |
Solid | Can be moved, but cannot be resized. |
| |
Left | Fixed left - its start cannot be changed, it can be only resized on right side and cannot be moved. |
| |
Right | Fixed right - its end cannot be changed, it can be only resized on left side and cannot be moved. |
| |
Fixed | Fixed both - it cannot be moved or resized. |
| |
Milestone | (new 7.0) Zero duration object. Movable, not resizable. Does not show any Text. |
| Text can be custom icon file, Class can be custom icon file for hover. |
| |
Stop | (new 7.0) Fixed milestone. Zero duration object, not movable, not resizable. Does not show Text. |
| Text can be custom icon file, Class can be custom icon file for hover. |
| |
Empty | Empty space between boxes, it is not interactive. Can have also set Duration=0, to only separate adjacent boxes, to let them move separately. |
| Can be automatically shrunk or enlarged when other box is moved or resized, depending on other settings. |
| Two adjacent empty spaces are automatically merged together. |
| The Empty box is rendered only if set GanttRunEmpty='1' and the box has set Text or Class attribute. |
| Cannot be used when Start is set for the boxes |
| |
Nbsp | Space between boxes to join them. But default it is not breakable, not resizable and not interactive. |
| To have interactive Nbsp set GanttRunNbspHover. To permit breaking or resizing it set Nbsp keyword to GanttRunResize, GanttRunMove or GanttRunAdjust. |
| Can be placed only between two boxes to join them. When there is adjacent Empty space, the Nbsp is automatically removed. |
| Cannot be used when Start is set for the boxes. |
| |
Bound | If placed as the first box or the only box, it is not resizable, not movable fixed start box and is displayed before the run start date. It is not possible to move boxes before or on the fixed start. |
| If placed as the last box, it is not resizable, not movable fixed end box and is displayed after the run end date. It is not possible to move boxes after or on the fixed end. |
| If placed anywhere else, it is fixed not deletable box. It cannot be moved outside the row. If all the boxes outside this box are deleted, they cannot be created again, as the Bound becomes fixed start or end. |
| |
End | If placed as the first box, it is not resizable, but movable start box and is displayed before the start date. When moving box before or on the start, the start is automatically moved before it. |
| If placed as the last box, it is not resizable, but movable end box and is displayed after the run end date. When moving box after or on the end, the end is automatically moved after it. |
| It should not be placed anywhere else. The run cannot contain only End boxes, in this case they are deleted. To create End boxes in empty run, add them to GanttRunNewStart, e.g. as "2,end,Start;;0.0001,box;;2,end,End" |
| |
Edge | (new 13.0) Left or right edge of Run Container. Has sense only if it has set the Container attribute. |
| It is hidden box used to let the container to have empty space on its edges and to let to resize the container by dragging. |
| Must be placed as the first or the last box in its container. Must not be joined with other boxes. |
2 string
Text
Caption displayed on the box, it can contain also these special strings:
%d - replaces it by Duration displayed as date formatted by
GanttRunFormat.
%n - replaces it by Duration displayed as integer formatted by
GanttRunFormat.
For
Milestone and
Stop it is
not text, but custom icon file url (like Test/MyIcon.gif). Remember, the icon is shifted left by 8px (the CSS GxGanttMilestone width/2).
The Text can be set also dynamically by
OnGetGanttRunText API event.
chg 10.0 3 string
Class
CSS class used for the box. This class can predefine the shape and color of the box.
There are predefined 17 classes for all basic background colors:
Aqua,
Black,
Blue,
Fuchsia,
Gray,
Green,
Lime,
Maroon,
Navy,
Olive,
Orange,
Purple,
Red,
Silver,
Teal,
White,
Yellow.
The 10 underlined colors are defined also for milestones and dependency lines.
(Since 10.0) There is one predefined black and white class Group for various purposes, e.g. grouped rows.
There are special classes: None (since 9.3) - no border, no padding, no margin, no background (in FastGantt replaced by Void), Void (since 10.0) - transparent border, no background, Html (since 10.0) - no background
For custom classes you need to define CSS classes GxGanttXXXIn and GxGanttXXXOut, where XXX is the Class used here and the Gx is style prefix. The Out class defines border, the In class background and font.
For custom class in FastGantt='1' are both the custom ...In and ...Out classes set to the same tag, for FastGantt='1' these classes must not change padding, margin and border-width.
For
Milestone and
Stop it is
(since 10.0) custom CSS class for milestone, but only if
not defined or empty
Text property. It can be the same 17 color names as for the box, but only 10 colors are different (the underlined ones).
For custom classes you need to define CSS class GxGanttXXXMilestone, where XXX is the Class used here and the Gx is style prefix.
For
Milestone and
Stop, if defined
Text, it is
not CSS class, but custom icon file url (like Test/MyIcon.gif) shown on mouse hover. Remember, the icon is shifted left by 8px (the CSS GxGanttMilestone width/2). Can be used instead of
GanttHoverIcons.
The Class can be set also dynamically by
OnGetGanttRunClass API event.
Note, the custom classes are shared between Run and Main bar.
4 string
Tip
Tooltip displayed when mouse hovers the box. The final tip content is controlled by
GanttRunTip.
new 7.0 5 string
Id
Unique identification of the box (at least in its group), can be used in API methods (e.g
GetGanttRunBox) to find the box.
The id can be also automatically generated, see the
Run box id.
If the box can have assigned dependencies (GanttTask contains "Box"), the box should have set its id and the id should not be a number to not collide with main bar plan.
The
State and
Manual are changed only for box with Id set or generated. The Id must be set also to support
dependencies for the box.
new 7.0 6 string
Group
Identification of the group of boxes, more boxes can belong to the same group.
If set, it is used for the box identification with the
Id part. For dependencies it is used as Group$Id.
Boxes with the same Group value can be managed (changed, moved or deleted) together. See also
GanttRunGroupHover.
new 7.0 chg 10.0 7 string
State
State of the box. It is filled automatically after any change for the box.
It is filled only for boxes with Id set.
It can be a list of case insensitive flags separated by plus (e.g.
"moved+resized+changed") or a number bit array (e.g. 224 for the
moved+resized+changed).
For API it is always number. For upload it can be string or number according to the
GanttRunStates.
1 | disabled | (since 10.0) box is colored gray and its dependencies are inactive. If set GanttEditDisabled='0', the box cannot be changed by a user. |
| | Used only if the GanttTask contains 'Box'. To define disabled for the whole run use GanttRunDisabled=1 instead. |
2 | locked | (since 10.0) box cannot be moved when correcting dependencies. If set GanttEditDisabled='0', the box cannot be changed by a user. |
| | Used only if the GanttTask contains 'Box'. To define locked for the whole run use GanttRunDisabled=2 instead. Ignored when calculating critical path. |
4 | selected | (since 10.0) box is marked and the group of all selected boxes can be moved, copied or deleted together. How the boxes can be selected is controlled by GanttRunSelect. |
8 | added | box is newly created or moved from another row or grid. Set only if GanttRunStates=1. |
16 | deleted | box is deleted or moved to another row or grid. Set only if GanttRunStates=1. |
| | Note, the deleted boxes are not accessible by API GetGanttRunBox, they are accessible only by GetGanttRun(...).Deleted array. |
32 | moved | box is moved inside its row. If some box is moved from one row to another, it will get deleted flag in source row and added flag in destination row. Set only if GanttRunStates=1. |
64 | resized | box has changed its duration. Set only if GanttRunStates=1. |
128 | changed | box has changed any other its attribute than its place. Set only if GanttRunStates=1. |
new 8.1 8 int
Top
Vertical position of the box, in pixels. It can be set also dynamically by
OnGetGanttRunRect API event. Default box position is set by
GanttRunTop.
new 8.1 9 int
Height
Inner height of the box, in pixels. It can be set also dynamically by
OnGetGanttRunRect API event. Default box height is set by
GanttRunHeight.
new 10.0 10 date
Manual
Manual start date of the box. Used as minimal start date when correcting dependencies, the box is never moved before this date when correcting dependencies.
Used only if the GanttTask contains 'Box'. To define manual date for the whole Run use GanttRunManual instead.
Used only if set GanttRunManualChange > 0.
It is changed to box start or end date whenever the box is manually moved or resized by a user or by API, but
only when the box has set its Id and set GanttManualChange > 1.
The side of the manual constraint is set by
GanttManualSide, default is left side.
new 10.0 11 float
Complete
Percent completion of the box. Number 0 - 100.
Used only if the GanttTask contains 'Box'. To define completed state for the whole run use GanttRunComplete instead.
See also
GanttRoundComplete to round the completed state to some units.
new 10.0 12 string
Resources
Resources assigned to the box. The format is the same as
GanttResources, except the resource separator (;) is replaced by
# to not collide with the default box separator.
Used only if the GanttTask contains 'Box'. To define resources for the whole run use GanttRunResources instead.
new 10.0 13 string
TextLeft
Html text displayed on left side of the bar. Right aligned.
The text can be set also dynamically by
OnGetGanttRunSideText API event.
new 10.0 14 string
TextRight
Html text displayed on right side of the bar. Left aligned.
The text can be set also dynamically by
OnGetGanttRunSideText API event.
new 13.0 15 string
Containers
The containers the box belongs to. They are dot (
.) separated. For API it is JavaScript array of the containers.
The container contains all boxes in the row they have listed the container id in their Containers attribute.
The container is not defined anywhere else, its level and CSS class is specified by the first box Containers where it is defined.
The container is displayed under its boxes. The container can be moved, copied or deleted - the action affects all its boxes, similarly to actions with joined or selected boxes.
The container gets CSS class as GxGanttContainerLX, where X is the container level (its position in the Containers in its first box, from 1).
The container gets also CSS class as GxGanttContainerID, where X is the container id (its id in the Containers).
If the container id contains '#', the part after the '#' is removed from the CSS class name. To use the same CSS class for more containers.
16 - 19
[Reserved]
The Run can contain any custom attributes. Place the custom attributes from 20th position to not violate the future TreeGrid attributes.
new 12.1 <C> string
GanttRunEscape
[""]
For Array definition. Set it to one character to escape run separators by it. If set, the GanttRunItems item in array definition can contain the separators escaped by the GanttRunEscape character.
For example, if GanttRunEscape="\", the run can be e.g. GanttRun="5/12/2008,2,,A\;B\;C;5/16/2008,2,,X\,Y\,Z;5/22/2008,2,,Q\\R\\S".
Setting it can slightly slow down the run processing!
new 10.0 <C> string[ ]
GanttRunCustom
For JSON definition. List of box custom attribute names, comma separated.
Used for
GanttRun JSON format definition.
Used also for
GetGanttRunBox /
SetGanttRunBox to get / set the custom attributes.
In
GetGanttRun /
SetGanttRun the custom attributes are placed from
20th position in the box.
Extended definition
Optional definition for the whole run bar
new 6.1 upd 7.0 <C> <cell> string
GanttRunStart
Gantt source - column name or exact value
Start date of the Run boxes, usually column name, but can be also date string (M/d/yyyy hh:mm:ss) or count of milliseconds.
Used only if the
GanttRun does not contain Start dates, but only boxes durations.
Its presence also changed default saving format, see
GanttRunSave.
(Since 7.0) If the cells in this column are empty, they are filled on start and also updated automatically according to
GanttRun.
(Since 7.0) When its value is changed by user, the
GanttRun is modified according to the
GanttRunAdjustStart settings.
new 7.0 <C> <cell> string
GanttRunEnd
Gantt source - column name only
Actual computed end date of the
GanttRun.
It is just support column, it should not contain any values in its cells on start.
It is filled on start and also updated automatically according to
GanttRun.
When its value is increased by user, the last
GanttRun box is increased accordingly.
When its value is decreased by user, the last
GanttRun box is decreased accordingly. It also deletes the last boxes if needed.
new 7.0 <C> <cell> float
GanttRunDuration
Gantt source - column name only
Actual computed duration (in
GanttDataUnits, in workdays) of the
GanttRun.
It is just support column, it should not contain any values in its cells on start.
It is filled on start and also updated automatically according to
GanttRun.
When its value is increased by user, the last
GanttRun box is increased accordingly.
When its value is decreased by user, the last
GanttRun box is decreased accordingly. It also deletes the last boxes if needed.
Task
Run bar as Gantt task attributes
Defined here only if the GanttTask contains 'Run'. For 'Box' defined in Box definition.
Run bar as task can have also dependencies and resources.
new 7.0 <C> <cell> float
GanttRunComplete
Gantt source - column name only
Actual percentage complete of the task, of all
GanttRun boxes together.
Used only if the GanttTask contains 'Run'. To define completion state for individual boxes use box Complete.
new 10.0 <C> int
GanttRoundComplete
[0]
If the percentage complete will be rounded to specified units (
1 - GanttUnits,
2 - GanttDataUnits) when entering it by SetGanttRunPercent.
Affects Main bar and Run. See also
GanttExcludeComplete to round the percentage complete to workdays.
Setting it also restricts to have boxes incomplete by very small amount (due not precise setting of the percentage complete).
Note, there is no Run keyword in the name.
new 10.0 <C> <cell> string
GanttRunManual
Gantt source - column name or exact value
Manual start date of the run bar, can be column name or direct value.
Used only if the GanttTask contains 'Run'. For individual boxes the manual is set by Manual instead.
Used as minimal start date when correcting dependencies, the task is never moved before this date when correcting dependencies.
It is changed to run bar start date whenever the run bar is manually moved or resized by a user or by API.
It is controlled by
GanttRunManualChange, by default it is switched off.
new 10.0 <C> int
GanttRunManualChange
[0]
How the
GanttRunManual or
Manual will be used and changed when moved or resized the task.
Note the default value 0 differs from GanttManualChange, where is 2.
0 - Never displayed, changed, used.
1 - Displayed and used, but never automatically changed.
2 - Changes box
Manual if the
GanttTask contains
Box. If the GanttTask does not contains
Box, it changes
GanttRunManual if defined as column.
3 - Changes box
Manual if the
GanttTask contains
Box. If the GanttTask does not contains
Box, it changes
GanttRunManual also when defined as attribute.
4 - Like
3 and if empty it is set to the task start or end date.
new 10.0 <C> bool
GanttManualSide
[2]
Where the GanttManual lock will be placed and used.
0 - bar left side (start),
1 - bar right side (end),
2 - like
GanttDirection,
3 - opposite to
GanttDirection.
Note, there is no Run keyword in the name, it is used also for all main bar plans.
new 10.0 <C> <cell> int
GanttRunDisabled
Gantt source - column name or exact value
If the run bar is disabled or locked.
For individual boxes the disabled state is set by State instead.
Used only if the GanttTask contains 'Run'.
0 | None. |
1 | Disabled. Disabled bar is colored gray and its dependencies are inactive. If set GanttEditDisabled='0', it cannot be changed by a user. |
2 | Locked. Locked bar cannot be moved when correcting dependencies. If set GanttEditDisabled='0', it cannot be changed by a user. Ignored when calculating critical path. |
new 10.0 <C> bool
GanttEditDisabled
[0]
If the disabled or locked bar can be moved, resized, changed and dependencies can be attached to it by a user.
Note, there is no Run keyword in the name.
new 10.0 API method object
DisableGanttRun
(TRow row, string col, int disable, int index)
Disables, locks or enables the run bar or run box. Run bar is set when
GanttTask contains "Run", run box is set when
GanttTask contains "Box".
For run bar sets the GanttRunDisable value, for run box sets the State values disabled and locked.
index is box index in the run. It is ignored when set run bar.
disable =
0 - enable / unlock,
1 - disable,
2 - lock
Edit
Special attributes for editing run bar
renamed 6.0 upd 13.0 <C> <cell> string[ ]
GanttEdit
["all"]
Which Gantt objects can be edited / moved / changed / deleted / added by user. Comma separated list of flag names, case insensitive.
It does not affect editing values in the source cells -
use standard attributes like CanEdit to restrict source cell editing.
Run | Run bars can be created, deleted and modified directly in Gantt chart. Since 10.0 individual actions for whole run can be set by RunMove, RunResize (resize+split), RunNew (add+delete), RunComplete, RunText (run text, type, tip, class), RunState (disable, lock, select). |
| (new 13.0) Action for run container can be set by RunContainer |
| The Run can be more controlled by its attributes for moving and resizing. |
For editing other Gantt objects see
GanttEdit full description.
new 7.0 upd 10.0 <C> int
GanttRunMilestones
[1]
If creating Run milestones and zero width boxes by users is permitted.
Note, it differs from main bar GanttMilestones attribute.
0 - neither milestones nor zero width boxes can be created. All not empty zero width boxes are removed.
1 - only milestones can be created. All not empty zero width boxes are shown as milestones, even if they don't have type Milestone or Stop.
2 -
(since 10.0) only zero width boxes can be created. All not empty zero width boxes are shown as boxes, even if they have type Milestone or Stop.
3 -
(since 10.0) both milestones and zero width boxes can be created. If the not empty box has zero width, but not type Milestone or Stop, it is shown as box.
new 7.0 <C> int
GanttRunGroupHover
[1]
If mouse hovers a box with Group attribute set, it can highlight all other boxes with the same Group value.
0 - never
1 - only in the same row
2 - in the whole grid (can be slow)
3 - in the whole grid, only editable Gantt cells (
GanttEdit='run')
new 11.0 <C> int
GanttRunJoinedHover
[0]
How many boxes will be hovered when they are joined.
0 - only the one box under mouse
1 - all joined boxes, except joined by nbsp
2 - all joined boxes, including joined by nbsp, see also
GanttRunNbspHover
new 11.0 <C> int
GanttRunNbspHover
[0]
If and how the Nbsp type box can be hovered and interactive.
0 - no, the Nbsp is
not interactive.
1 - only the Nbsp box
2 - adjacent boxes (see
GanttRunJoinedHover), but
not the Nbsp boxes. The Nbsp box is still interactive and can control the other boxes.
3 - adjacent boxes (see
GanttRunJoinedHover), including all Nbsp boxes
new 10.0 upd 16.0 <C> int
GanttRunJoined
[0]
How the joined boxes are handled, bit array. For
0 the joined boxes are not handled together.
Note, dragging joined boxes is controlled by Single/Next/Prev/Nbsp flags in GanttRunMove.
1. bit | &1 | the joined boxes are deleted together. |
2. bit | &2 | the joined boxes are disabled or locked together. |
3. bit | &4 | the joined boxes are selected together. |
4. bit | &8 | the joined boxes are changed together (type, class). |
5. bit | &16 | the joined boxes are edited together (text, tip). |
6. bit | &32 | (new 16.0) the joined boxes are corrected (scheduled) together. |
new 11.0 <C> int
GanttRunJoinedNbsp
[255]
Which actions in
GanttRunJoined are used also for boxes joined by Nbsp box type. Bit array, the same as in
GanttRunJoined.
Note, the bits in GanttRunJoined set to 0 are ignored in GanttRunJoinedNbsp.
For example GanttRunJoined=5 and GanttRunJoinedNbsp=1 means that joined boxes including joined by Nbsp are deleted together, but selected are only boxes not joined by Nbsp; other actions are done only for one box.
new 6.1 <C> int
GanttResizeDelete
[1]
If the Main and Run bars can be deleted by resizing them to zero width.
If set
GanttRunMilestones=2, the box can be deleted by resizing it to negative width.
0 - the box cannot be deleted by resizing. Both the run box and the main bar can be resized to one unit width.
1 - if the box is resized to zero width, it is deleted.
2 - if the box is resized to zero width, it shows confirm message and is deleted if confirmed, otherwise original state is restored.
new 9.0 <C> int
GanttResizeBeforeMove
[2]
If resizing the Main and Run bars is accessible even if another object is above the bar.
For
0 it moves the object above, for
1 it resizes the bar under, for
2 it resizes the bar only under icon (e.g. flag, point, milestone or constraint), otherwise it moves the bar above.
new 15.1 <C> int
GanttRunMinResize
[0]
If set, the run box narrower than this value cannot be resized by dragging.
Save
Saving run changes back to string sent to server
new 6.2 chg 10.0 upd 16.0 <C> <cell> string
GanttRunSave
[0]
Type of
GanttRun box attribute structure for save. It affects both Array and JSON definition. Bit array.
1. and, 2. bit,
&3
0 | "Duration,Type,Text,Class,Tip" if defined GanttRunStart column or "Start,End,Type,Text,Class,Tip" if not |
1 | "Duration,Type,Text,Class,Tip" (since 10.0 if not defined GanttRunStart it saves the first box with Start and the others without Start) |
2 | "Start,Duration,Type,Text,Class,Tip" |
3 | "Start,End,Type,Text,Class,Tip" |
3. bit,
&4 (new 7.0)
Use short format. Values 4 - 7 are similar to values 0 - 3, but use the short format.
Omits box type as default, empty type without duration as completely empty, empty type with duration as duration with comma
For example "1,Box;2,Empty;3,Box;0,Empty;5,Box" is written as "1;2,;3;;5"
4. bit
&8 (new 10.0) For JSON format only.
If set, uses strict JSON format, all names and values double quoted.
If not set, name is not quoted, and values are quoted in apostrophes, to not require replacing the double quotes by \" when including to cell values.
5. bit
&16 (new 16.0)
Save boxes after Nbsp box with Start if set value 0, 2 or 3 to the first two bits.
Saved run always uses the same separators and definition (Array/JSON) as the originally defined run.
To specify the separators or JSON definition for empty run you can set only the separators as the empty Run value, e.g.
run = "[{" for the JSON definition,
or set the separators in
GanttRunNewStart, e.g. set
GanttRunNewStart="[{Duration:1,Type:'Box'}]" to use JSON definition for new runs.
new 7.0 chg 10.0 <C> int
GanttRunStates
[2]
If and how will be the
State of the run set. Fills changes only for boxes with
Id set.
The
deleted boxes are saved to the end as box with type '-' and empty duration and without start/end date items.
0 | Sets only disabled, locked and selected states as lowercase flags, separated by +. |
1 | Like 0 and sets also added, deleted, moved, resized and changed states as lowercase flags, separated by +. |
2 | Like 1 and clears also the added, deleted, moved, resized and changed states after successful update to server. |
3 | Reserved |
4 | Sets only disabled, locked and selected states as a bit array number (e.g. 7 for all the three states). |
5 | Like 4 and sets also added, deleted, moved, resized and changed states as a bit array number (e.g. 224 for moved+resized+changed). |
6 | Like 5 and clears also the added, deleted, moved, resized and changed states after successful update to server. |
7 | Reserved |
(Since 10.0) The default value changed from
1 to
2.
Select
Selecting individual boxes and do actions with more boxes
The selected run box is marked
selected keyword in its
State item of the GanttRun.
new 10.0 <C> int
GanttRunSelect
[0]
0 - no selection possible
1 - always one box at a time
2 - one box at a time, can be unselected
3 - more boxes in one row
4 - more boxes in more rows, but they are handled per row only
5 - more boxes in more rows, they are handled all together
new 11.0 <C> bool
GanttRunClearSelected
[0]
If set to
1, clears the whole selection after every action that manipulates selected boxes.
It does not affect dragging boxes, here use
GanttRunMove Clear flag instead.
new 13.1 <C> string
GanttRunContainersSelect
If and which containers will be selected instead of inner run boxes. Selected container has always all its run boxes selected.
It can be:
- nothing / empty string (default) as no container. No container will be marked as selected, only its boxes.
-
* as all containers and boxes. Every container that has all its boxes selected is marked selected. Also all its inner boxes and containers.
-
^ as top containers or boxes. Only containers with all boxes selected are marked selected. If the container is marked as selected, no its inner container or box is marked selected.
- a number from 1 as container level. Only containers on given level can be selected. Not any boxes or other containers.
- a string as container class. Only containers of given class can be selected. Not any boxes or other containers.
new 11.0 upd 13.0 API event bool
OnGanttRunSelect
(TGrid grid, TRow row, string col, object run, int index, bool select, object source)
Called before the box is selected or unselected. Called for every box being selected or unselected.
row,
col is the Gantt cell, the
run is the whole run object used in
GetGanttRun /
SetGanttRun methods.
index is the box index inside
run, can be used also to get the box object by
GetGanttRunBox method.
select is true to be selected, false to be unselected.
source can be: | null - if all boxes in grid are selected or unselected. |
| box - (as returned from GetGanttRunBox), as the source (e.g. clicked) box to select or unselect. |
| There can be more boxes selected if joined with the other boxes, all these boxes will get the same source box. |
| array - [r1,x1,y1,r2,x2,y2,col] as the selected rectangle, r is the row object, x, y are coordinates in pixels inside the cell [r,col] |
| array - [rows,d1,d2,col] (new 13.0) as the selected range, rows is array of the rows, d1 and d2 are dates to select runs between |
Return
true to
not change the selection state.
new 12.0 API event bool
OnSelectGanttRunRect
(TGrid grid, TRow r1, int x1, int y1, TRow r2, int x2, int y2)
Called after rectangle to select run boxes is created by a user, before the run boxes are selected.
r1,
x1,
y1 is top left corner,
r2,
x2,
y2 is bottom right corner.
Return true to suppress the boxes selection.
new 14.0 API event bool
OnCanSelectGanttRun
(TGrid grid, TRow row, string col, object run, int index, bool select, string container)
Called to internally check if the run box or container can be selected or unselected.
Used especially to more control selecting containers than by
GanttRunContainerSelect.
For correct behavior the
GanttRunContainerSelect should be set to something. Note setting it to "*" or "^" still affects some selecting.
row,
col is the Gantt cell, the
run is the whole run object used in
GetGanttRun /
SetGanttRun methods.
index is the box index inside
run, can be used also to get the box object by
GetGanttRunBox method.
select can be
true to permit selecting the run box,
false to permit unselecting the run box or
null to display selection of the box or container.
container is full container name, including the postfix. It is filled only when checking if to display this container selected if all its boxes are selected.
Return
true to permit selection,
false to restrict selection,
null to apply default criteria by
GanttRunContainerSelect.
For example to select single boxes and also containers named "P":
Grids.OnCanSelectGanttRun = function(G,row,col,run,i,sel,cont){
if(cont) return cont.indexOf("P")>=0; // Displays selection only of containers "P", for other containers not
if(!run[i][15]) return true; // Permits selection of single boxes in all ways
if(("#"+run[i][15].join("#")+"#").indexOf("#P#")>=0) return sel!=null; // Permits selection of containers "P", but does not display selected boxes inside them
return false; // Restricts selection of all other containers than "P"
}
new 10.0 API method bool
SelectGanttRunBox
(object box, bool select)
Selects or unselects given box. Shows changes in the cell. If the box does not exist or cannot be selected, returns false, otherwise true, see
GanttRunSelect.
If the
box has set neither
Index nor
Id, it selects or unselects all boxes in the box
Row.
If the
box is null, it selects or unselects all boxes in grid.
select =
1 selects the box,
0 unselects the box,
null inverts the box selection.
Changes the box
State attribute, adds or removes
selected flag.
new 10.0 API method bool
SelectGanttRunRect
(TRow r1, int x1, int y1, TRow r2, int x2, int y2, bool select = 1)
Selects or unselects all boxes in given rectangle.
r1,
x1,
y1 is top left corner,
r2,
x2,
y2 is bottom right corner. The box is affected if it is at least partially in the area.
select =
1 selects the box,
0 unselects the box.
Returns true if some box was changed.
new 13.0 API method bool
SelectGanttRunRange
(TRow[] rows, int d1, int d2, bool select = 1)
Selects or unselects all boxes in given
rows in date range
d1,
d2.
The box is affected if it is at least partially in the range.
select =
1 selects the box,
0 unselects the box.
Returns true if some box was changed.
new 10.0 API method object[ ]
GetGanttRunSelectedBoxes
(TRow row, string col)
Returns array of all selected boxes in the
row.
If the
row is null, returns all selected boxes in the whole grid.
new 10.0 API method object[ ]
GetGanttRunSelectedCount
(TRow row, string col)
Returns count of selected boxes in the
row.
If the
row is null, returns count of all selected boxes in the whole grid.
It is much faster than GetGanttRunSelectedBoxes.
new 13.1 API method bool
SelectGanttRunContainer
(TRow row, string col, string container, bool select)
Selects or unselects all boxes in given
container in given cell.
The box is affected if it is at least partially in the range.
select =
1 selects all the boxes in the container,
0 unselects all the boxes in the container,
null selects the boxes if at least one box in the container is unselected, otherwise unselects all the boxes.
Returns true if some box was changed.
new 13.1 API method bool
IsGanttRunContainerSelected
(TRow row, string col, string container)
Returns true if all the boxes in the container are selected.
Text
Run box HTML content and side HTML
new 10.0 upd 14.0 <C> <cell> string
GanttRunHtml
["*Text*"]
Html shown inside every run box. By default it shows the Run box
Text value.
It can also show values from other cells in row, set by
*col* where col is the column name.
It can show also the specials:
*Text* - the box
Text,
*RunText* -
(new 7.0) the run text
GanttRunText
*TextInside* -
(new 14.0) always the box
Text,
*TextLeft* -
(new 14.0) always the box
TextLeft,
*TextRight* -
(new 14.0) always the box
TextRight,
*Tip* -
(new 14.0) always the box
Tip
*Index* - the box index (from 1, excluding empty boxes)
*Start* - start date of the box,
*End* - end date of the box,
*Duration* - length of the run in
GanttRunFormat or in
GanttDataUnits.
*StartAll* - start date of the whole bar,
*EndAll* - end date of the whole bar,
*DurationAll* - length of the whole bar in
GanttRunFormat or in
GanttDataUnits,
*Resources* - actual resources assigned to the bar,
*1* -
*14* - exact value of the box in
GanttRun, e.g. *7* shows the
State or *10* shows the
Manual.
Example:
"*Index*. <b>*Text*</b> (*Duration* days)"
new 8.1 upd 16.0 API event string
OnGetGanttRunText
(TGrid grid, TRow row, string col, object run, int index, string text, int width, int left, int maxwidth, string[ ] cls, bool export)
Called to get the Run box text (
Text) to render it. It can return any HTML code or text or the
text parameter.
run is the parsed Run object (like got from
GetGanttRun), the
index is the box index inside the
run array.
text is original text to be rendered, return it to avoid changes.
width (new 9.0) is actual width of the box outer tag in pixels.
left (new 10.0) is left position of the run box inside the Gantt cell (or in horizontal Gantt page), in pixels. Can be later changed by
OnGetGanttRunRect.
maxwidth (new 10.0) is actual width of the Gantt cell (or horizontal Gantt page), in pixels.
cls (new 11.0) contains CSS classes to be set to the bar. Items of the array are intended to change in this handler to specify the CSS classes for the bar.
export (new 16.0) is set when called during export to xlsx.
[
RunClass,
OutClass,
InClass,
TextClass] -
RunClass is the actual run
Class value. It is the only item preset in this array and the only partial class.
OutClass - full css class(es) added to the outer box. InClass - full css class(es) added to the inner box, TextClass - full css class(es) added inside incomplete bar.
Can be used instead of
OnGetGanttRunClass for boxes, but not for milestones.
new 10.0 <C> <cell> string
GanttRunHtmlLeft
["*Text*"]
Html text displayed on left side of the box. Right aligned. By default it shows the Run box
TextLeft value.
It can contain the same special settings like GanttRunHtml, except the *Text* shows the
TextLeft.
new 10.0 <C> <cell> int
GanttRunHtmlLeftEdge
[0]
Where the GanttLeftSide text will be displayed
0 - before the first box,
1 - before every box,
2 - inside every box next to right edge,
3 - centered inside every box,
4 - centered in every box, but left side to milestone.
new 10.0 <C> <cell> string
GanttRunHtmlLeftClass
CSS class used to display the side text.
There are predefined 17 classes for all basic background colors:
Aqua,
Black,
Blue,
Fuchsia,
Gray,
Green,
Lime,
Maroon,
Navy,
Olive,
Orange,
Purple,
Red,
Silver,
Teal,
White,
Yellow.
The 10 underlined colors are defined also for milestones and dependency lines.
There is also predefined class
None for HTML without any formatting, especially without padding.
For custom classes you need to define CSS class GxGanttHtmlXXX, where XXX is the value set to this attribute and Gx is the style prefix.
new 10.0 <C> <cell> string
GanttRunHtmlRight
["*Text*" / "*Text* *Resources*"]
Html text displayed on right side of the box. Left aligned. By default it shows the Run box
TextRight value.
It can contain the same special settings like GanttRunHtml, except the *Text* shows the
TextRight.
Due backward compatibility the default value for
GattTask='Run' is the *Text* plus value
GanttRunResources if set, otherwise it is only *Text*.
new 10.0 <C> <cell> int
GanttRunHtmlRightEdge
[0]
Where the GanttRightSide text will be displayed
0 - after the last box,
1 - after every box,
2 - inside every box next to left edge,
3 - centered inside every box,
4 - centered in every box, but right side to milestone.
new 10.0 <C> <cell> string
GanttRunHtmlRightClass
CSS class used to display the side text.
There are predefined 17 classes for all basic background colors:
Aqua,
Black,
Blue,
Fuchsia,
Gray,
Green,
Lime,
Maroon,
Navy,
Olive,
Orange,
Purple,
Red,
Silver,
Teal,
White,
Yellow.
The 10 underlined colors are defined also for milestones and dependency lines.
There is also predefined class
None for HTML without any formatting, especially without padding.
For custom classes you need to define CSS class GxGanttHtmlXXX, where XXX is the value set to this attribute and Gx is the style prefix.
new 10.0 <C> <cell> int
GanttRunHtmlShift
[0]
Vertical shift in pixels of the Left and Right side Html inside cell. Negative top, positive bottom.
It is possible to use it to display some text also above the box.
new 10.0 <C> int
GanttRunShowHtml
[1]
If the side html (
GanttRunHtmlLeft and
GanttRunHtmlRight) will be displayed in chart.
For
0 the side html will be hidden.
For
1 the side html by
GanttRunHtmlLeft and
GanttRunHtmlRight is ignored and is shown only the box
TextLeft /
TextRight.
For
2 the side html will be shown, but the chart will not resize to show them.
For
3 the side html will be shown and the chart will resize to show them if required, like for the other Gantt objects.
Can remarkably slow down large charts!
new 10.0 upd 16.0 API event string
OnGetGanttRunSideText
(TGrid grid, TRow row, string col, object run, int index, string text, int width, int side, int[] rect, bool export)
Called to get the Run box side text (
TextLeft and
TextRight) to render it. It can return any HTML code or text or the
text parameter.
run the parsed Run object (like got from
GetGanttRun), the
index is the box index inside the
run array.
text is original text to be rendered, return it to avoid changes.
width actual width of the box outer tag in pixels.
side which text to be returned,
1 -
TextLeft (left side),
2 -
TextRight (right side).
For left and right side is called only if some side text is defined for the box.
rect (new 13.0) is array of 4 integer [left,top,width,height] as position of the box or milestone. The handler
cannot modify them. The width is empty string for milestone.
export (new 16.0) is set when exporting to xlsx.
For left side is the text placed to right aligned div with width 2000px, so if the returned text is HTML div, it should have set appropriate margin-left to be positioned right side.
new 10.0 <C> <cell> string
GanttRunHtmlDateFormat
Date format for
GanttRunHtml specials *Start*, *End*, *StartAll*, *EndAll*, *10* (Manual)
new 6.1 <C> <cell> string
GanttRunFormat
Date or
number format string (like for Type Date or Int) to display box duration in the box text (
Text).
new 7.0 <C> <cell> string
GanttRunText
Gantt source - column name or exact value
Information for the whole run, can be displayed inside or outside box or as box tooltip.
Tip
HTML shown on mouse hover the bar
new 6.4 upd 10.0 <C> <cell> string
GanttRunTip
["*Text*"]
Tip shown on mouse hover the box. It can contain HTML code. By default it shows the Run box
Tip value.
It can contain the same special settings like GanttRunHtml, except the *Text* shows the
Tip.
To dynamically generate the tip text use
OnGanttTip API event.
new 6.4 <C> <cell> string
GanttRunTipDateFormat
Date format to display Start and End of the run in
GanttRunTip *Start* and *End*.
It is the same format as for
Date type.
Box id
Unique identification of run boxes
The run box id is defined by the Id and optionally by Group
new 10.0 <C> int
GanttRunIds
[1]
How will be assigned id to the Run boxes
0 - never
1 - to new boxes, only when the row has set
GanttRunSummary or defined
OnGanttRunBoxChanged API event
(the only option before 10.0).
2 - to all new and copied boxes, does
not check the existing ids.
The newly generated ids should have different format than existing ids.
3 - to all new, copied and not assigned boxes, ensures the ids are unique among all existing ids.
You can also dynamically generate the ids in
OnGanttRunBoxNew or
OnGanttRunBoxChanged API event.
new 10.0 <C> string
GanttRunIdPrefix
["new"]
A string added in front of generated id for run boxes
new 10.0 <C> string
GanttRunIdPostfix
[""]
A string added after generated id for run boxes
new 10.0 <C> string
GanttRunIdChars
[""]
Specify characters the run box id is generated from.
Set it to e.g.
"abcdefghijklmnopqrstuvwxyz0123456789" to have alphanumeric ids.
If not defined (default), the id is created as number from 1
new 10.0 <C> int
GanttRunNumberId
[0]
Do not add this amount of characters from GanttRunIdChars to start of the id.
For example set
GanttRunNumberId='1' GanttRunIdChars='0123456789' to have number ids, to not start the id with zero.
new 10.0 <C> string
GanttRunLastId
[""]
Specify to start generating the ids after this id. For example set it to 999 and the first generated id will be 1000.
Position
Vertical position and height of the whole run bar
Individual boxes can be also positioned by Top and Height
new 9.0 upd 10.0 <C> <cell> int
GanttRunHeight
Sets default inner height in pixels of all run boxes in the cell. Height of individual boxes can be set by box
Height.
Default value is calculated according to the box content, except
FastGantt='1'. Minimal default value is read from actual TreeGrid CSS style, usually 9 pixels.
Since 10.0 it can be set for individual cells too.
new 10.0 <C> <cell> int
GanttRunTop
Sets default top in pixels of all run boxes in the cell. The Top attribute of the
GanttRun.
Top position of milestone is calculated as (GanttRunHeight - milestoneheight) + GanttRunTop, where milestoneheight is defined in style Grid.css.
new 10.0 <C> <cell> int
GanttRunLevels
If set, specifies vertical level height in pixels where the new or dragged boxes can be placed.
For example, if set
GanttRunLevels='20' and
GanttRunTop='5', the boxes can be created at position 5, 25, 45, 65, ...
new 9.3 <C> int
GanttRunMinWidth
[1]
Minimal width of the run box in pixels to render it. Useful to speed up rendering for many small boxes in high zoom levels.
Boxes smaller than this value in actual zoom level will not be rendered, if distance to the previous box is smaller than this value.
If set to
0, it renders all boxes. If set to
1, it renders all boxes at least partially visible.
new 10.0 <C> int
GanttRunBoxMinWidth
[5]
Minimal width of the rendered run box in pixels.
If the box is rendered, because it fulfils
GanttRunMinWidth condition, it is rendered at least
GanttRunBoxMinWidth pixels wide.
new 10.0 <C> int
GanttRunBoxMinType
[1]
Where will be the GanttRunBoxMinWidth applied. Bit array.
1. bit | &1 | For rendering boxes |
2. bit | &2 | For GanttRunErrorsShift - for moving overlaid boxes |
3. bit | &4 | For dependency lines (only for Run Box as GanttTask) |
new 10.0 <C> string
GanttRunBoxMinAlign
["center"]
Alignment of the box that is rendered wider or narrower than its duration. Case insensitive.
Can be
left to start on correct start date,
right to end on correct end date and
center to be centered on between correct start and end dates.
For API it is a number,
0 - center,
1 - left,
2 - right.
new 10.0 <C> int
GanttMilestoneTopMin
[0]
Minimal top position of milestones in Gantt.
No keyword Run in the name!
Useful to set to permit or restrict negative milestone position if the milestone is higher than bars.
new 9.3 chg 10.0 upd 16.0 API event void
OnGetGanttRunRect
(TGrid grid, TRow row, string col, object run, int index, int[ ] Rect, int type)
Called to modify the Run box position and size.
Since 10.0 it is called also for Milestone and Stop types.
run is the parsed Run object (like got from
GetGanttRun), the
index is the box index inside the
run array.
Rect is array of 4 integers [left,top,width,height]. The handler can modify them to change the box rectangle.
The
top and
height are 0 when called during box dragging (Slide).
Since 10.0 they are 0 also when called when calculating vertical position for
GanttRunErrorsShift.
(Since 10.0) The
width is empty string for milestone.
Don't modify the width for milestone.
The values are in pixels and are affected by FastGantt and by CSS class used.
(since 13.0) type is
0 for render,
1 for errors shift,
2 for render dependency,
3 for box dragging (slide),
4 (since 14.1) for box rectangle selecting,
5 (since 16.0) for export
new 10.0 upd 16.0 API event void
OnGetGanttRunSideRect
(TGrid grid, TRow row, string col, object run, int index, int[ ] Pos, int[ ] Rect, int side, bool export)
Called to modify the Run side text position.
run is the parsed Run object (like got from
GetGanttRun), the
index is the box index inside the
run array.
Pos is array of 2 integers [left,top] as position of the side text in pixels. Handler can modify them to move the side text.
For left side text is the left value about Rect[0] - 2000.
Rect is array of 4 integer [left,top,width,height] as position of the box or milestone. The handler
cannot modify them. The width is empty string for milestone.
side is
1 for left side text,
2 for right side text.
export (since 16.0) is set when exporting to xlsx.
Style
Specific attributes for run styling
Every box can have set its individual CSS class by Class
chg 10.0 <Cfg> bool
FastGantt
[0]
If set to
1, it renders Run boxes simplified, only by one <div> tag per box.
The Run style looks slightly worse, but the chart is three times smaller and therefore much faster to display and change, especially for rows with many run boxes.
Since 10.0 it can be enabled for all browsers. After change of browser zoom, the Gantt chart is automatically re-rendered.
new 10.0 <C> bool
GanttAdjacentBars
[0]
By default the adjacent Main and Run boxes have few pixels between for just visual effect. If set
GanttAdjacentBars='1', the adjacent boxes have no visible space between them.
Note, there is no Run keyword in the name.
new 10.0 <C> bool
GanttRunEmpty
[0]
0 | Empty boxes are never rendered. |
1 | Empty boxes are rendered if they have set Class or Text or they are dynamically generated. It was default value prior 10.0. |
new 10.0 <C> <cell> string
GanttRunClass
Predefined CSS custom class for all boxes, if they don't have set their
Class property.
There are predefined 17 classes for all basic background colors:
Aqua,
Black,
Blue,
Fuchsia,
Gray,
Green,
Lime,
Maroon,
Navy,
Olive,
Orange,
Purple,
Red,
Silver,
Teal,
White,
Yellow.
The 10 underlined colors are defined also for milestones and dependency lines.
(Since 10.0) There is one predefined black and white class Group for various purposes, e.g. grouped rows.
There are special classes: None (since 9.3) - no border, no padding, no margin, no background (in FastGantt replaced by Void), Void (since 10.0) - transparent border, no background, Html (since 10.0) - no background
For custom classes you need to define CSS classes GxGanttXXXIn and GxGanttXXXOut, where XXX is the Class used here and the Gx is style prefix. The Out class defines border, the In class background and font.
For custom class in FastGantt='1' are both the custom ...In and ...Out classes set to the same tag, for FastGantt='1' these classes must not change padding, margin and border-width.
For
Milestone and
Stop it is
(since 10.0) custom CSS class for milestone, but only if
not defined or empty
Text property. It can be the same 17 color names as for the box, but only 10 colors are different (the underlined ones).
For custom classes you need to define CSS class GxGanttXXXMilestone, where XXX is the Class used here and the Gx is style prefix.
The Class can be set also dynamically by
OnGetGanttRunClass API event.
Note, the custom classes are shared between Run and Main bar.
new 9.3 API event string
OnGetGanttRunClass
(TGrid grid, TRow row, string col, object run, int index, string cls)
Called to get the Run box class (the suffix). The original class will be GxFGanttRunXXX for FastGantt and GxGanttRunXXXOut plus GxGanttRunXXXIn.
run is the parsed Run object (like got from
GetGanttRun), the
index is the box index inside the
run array.
Return predefined cls or new CSS class suffix. For possible values see
GanttRunClass or
Class property.
See also
OnGetGanttRunText that can also modify the box css class.
Overlaid (Error) boxes
Handling and coloring overlaid boxes
If two boxes overlaid each other, the second box is marked as
Error box, with default red color.
To let the boxes overlay as Error boxes when moving, copying, adding or resizing box set
GanttRunAdjust="Error,...." or similar Adjust attribute.
new 8.1 <C> <cell> bool
GanttRunErrors
[1]
If the overlaid boxes will be marked as error boxes in red.
new 10.0 chg 13.0 <C> <cell> int
GanttRunErrorsShift
[0]
If the overlaid boxes and containers will be shifted down by given amount of pixels, to be all the boxes visible.
If set to
positive value, it sets the top of the box or container as top of the previous overlaid box or container plus the shift.
If set to
negative value, it sets the top of the box or container as bottom of the previous overlaid box or container minus the shift (= plus as positive).
Row height is automatically updated to show all the bars except is set
GanttBottom = ""
new 13.0 <C> bool
GanttRunErrorsShiftVisible
[0]
If set, shifts only actually visible boxes and containers.
new 6.2 chg 7.0 <C> <cell> string[ ]
GanttRunError
["Sort"]
How will be the error boxes handled. Comma separated list of flag keywords, case insensitive.
Sort | The boxes will be sorted by their start positions, after any change. Sorts errors also on start. It is default value since 7.0. |
Merge | (new 7.0) The overlaid boxes will be merged to one (the first box will be resized to the duration of all the boxes and the rest boxes will be deleted). |
| It merges only boxes of type Box and Solid. All other boxes are still marked as error. The Merge always does Sort too. |
Container
Containers for more boxes
New 13.0. The containers are defined in boxes by
GanttRun 15th item
Containers.
Container permission is controlled by
GanttEdit, values
Run or
RunContainer.
Dragging containers can be more controlled by
GanttRunAdjust values
Containers...
new 13.0 upd 16.0 API event object
OnGetGanttRunContainer
(TGrid grid, TRow row, string col, object run, string id, int[] Rect, string class, int first, int last, int type, string text)
Called to modify rendered or calculated container in given cell and
run.
id is the id of the container.
Rect is container size and position in the Gantt cell in pixels, an array [left,top,width,height]. It is possible to modify it.
class is container CSS class, it is the container without #suffix. The container gets CSS class as GxGanttContainerCLASS.
first is index of the first box in the container,
last is index of the last box in the container.
type is time of call,
0 - called for render,
1 - called to get size for errors shift,
5 -
(since 16.0) called for export to xlsx.
text (since 16.0) is the container html or label to be shown in the container.
It can return array as [class,html] - class is new
class value, html is html content to render inside the container.
new 13.0 upd 13.1 API method object
GetGanttRunContainers
(TRow row, string col, int display = 0)
Returns all run containers in the Gantt cell. It fills all their extents, sizes and relations.
It iterates the run, so it is slower.
Also every box gets filled its own extents and sizes like container. The method can be used also to get these information for boxes only, even if no container is used.
Returns nested arrays of the containers according to their relations.
The main array contains the root containers and single box containers. It contains also attribute
All as references to all the containers by their ids.
Every container has these attributes:
id - id of the container. The standard containers have at least one child, their id is the container name. The box containers have no child and their id is "#"+box index in run.
Parent - reference to parent container, [0],[1],[2],... - child containers,
Ids - child containers by their ids, length - count of child containers.
Start,
End,
Duration - Horizontal size and position of the container in ms in data. It is in work time from the run start.
Left,
Right,
Width - Horizontal size and position of the container in pixels as displayed in cell relative to the Gantt cell left side. Filled only if set
display = 1.
Top,
Bottom,
Height - Vertical size and position of the container in pixels in cell relative to the Gantt cell top side. Calls OnGetGanttRunRect only if set
display = 1.
Selected (new 13.1) - If all the boxes in the container are selected.
new 13.0 API method int[]
GetGanttRunContainerBoxes
(TRow row, string col, string container)
Returns all box indexes in the row that are in given container. If no box is in the container, returns empty array.
new 13.0 API method string
GetUniqueGanttRunContainer
(TRow row, string col, string container)
Changes and returns the container id to be unique within the Gantt cell. It adds the #X, where X is a number from 1.
new 13.0 API event string
OnGetUniqueGanttRunContainer
(TGrid grid, TRow row, string col, string container)
Called when the
container already exists in the Gantt cell.
Return new unique container name. Or return null to add the #X to the container name.
new 13.0 API method int
AddGanttRunContainer
(TRow row, string col, int index, string container, int level = null, bool unique = 0)
Adds new
container to box
index.
Adds it as the last container to the box Containers or to position given by
level. If there is a container defined on given
level, it and the rest are shifted next.
Returns count of changed boxes.
If set
unique, makes the
container unique by
GetUniqueGanttRunContainer.
new 13.0 API method int
ChangeGanttRunContainer
(TRow row, string col, string container, string newcontainer, bool unique = 0)
Changes the
container to the
newcontainer in all boxes.
Returns count of changed boxes.
If set
unique, makes the
newcontainer unique by
GetUniqueGanttRunContainer.
new 13.0 API method int
DelGanttRunContainer
(TRow row, string col, string container, int delete, string adjust, bool nodisabled)
Deletes the
container from boxes or deletes all boxes in the
container.
delete
=
0 - deletes the
container from boxes, preserves the container levels.
=
1 - deletes the
container from boxes, shifts the next containers in the box Containers.
=
2 - deletes all the boxes that have the
container in their
Containers.
=
3 - deletes all the boxes and moves other boxes according to the
adjust (like
GanttRunAdjust).
If set
nodisabled, does not delete disabled and locked boxes.
Returns count of changed boxes.
new 13.0 API method int
DisableGanttRunContainer
(TRow row, string col, string container, int disable)
Disable, locks or enables all boxes in the
container.
disable =
0 - enable,
1 - disable,
2 - lock.
Returns count of changed boxes.
new 13.0 API event bool
OnGanttRunContainerChange
(TGrid grid, TRow row, string col, object run, int index, string[] newcontainer, string[] oldcontainer, TRow source)
Called before the run box
index changes its container.
oldcontainer is the original containers value, as JavaScript array.
newcontainer is the new containers value, as JavaScript array.
source row is set when the containers are changed due dragging box, it is original row where the box was placed, can be the same as
row.
Return true to discard the change. Or modify the
newcontainer array and return false.
new 13.0 <Actions>
DeleteGanttRunContainerOnly
Attached to OnCtrlClickGantt event
Deletes the container under mouse cursor from all its boxes. The boxes are not deleted.
It fails if there is no run container under mouse cursor.
new 13.0 <Actions>
DeleteGanttRunContainer
Not attached to any event
Deletes all run boxes in the container under mouse cursor.
It fails if there is no run container under mouse cursor.
new 13.0 <Actions>
AddGanttRunContainer
Not attached to any event
Shows popup menu defined by
GanttRunContainers. Adds the chosen container as the last container to the box under mouse cursor.
It fails if there is no run box under mouse cursor.
new 13.0 <Actions>
ChooseGanttRunContainer
Not attached to any event
Shows popup menu defined by
GanttRunContainers.
Changes the container under mouse cursor to the chosen container.
It fails if there is no run container under mouse cursor.
new 13.0 <Actions>
SelectGanttRunContainer
Attached to OnDblClickGantt event
Selects the GanttRun container or its boxes depending on
GanttRunContainersSelect.
new 13.0 <C> <cell> string[*]
GanttRunContainers
List of available containers for actions
AddGanttRunContainer and
ChooseGanttRunContainer.
It can be first character separated list or JSON menu.
The container name can contain level as suffix, separated by dot, e.g. "|C1.0|C2.1|C3.2", if level defined, the container is added only on given level and can be changed only on the same level.
If the JSON menu has attribute
Include:1, the Items are included directly to the GanttMenu on the place instead of the
ChooseGanttRunContainer /
AddGanttRunContainer item.
new 13.0 <C> int
GanttRunContainersResize
[1]
If the containers can be resized by users.
0 - no.
1 - yes, if the containers has Edge type boxes.
2 - all, adds the Edge type boxes if the container does have them.
new 13.0 <C> int
GanttRunContainersDelete
[1]
If the empty containers will be deleted.
0 -
not implemented yet, never, empty container will get Edge type boxes on its edges.
1 - only containers without any Edge type box. If container has only one Edge type box, the second one is added next to the first one and the container will have zero width.
2 - only containers with none or one Empty type box will be deleted.
3 - always, either if it has Edge type boxes.
new 16.0 <C> bool
GanttRunContainersLabel
[0]
If set, shows container id (or container html generated by OnGetGanttRunContainer) on the top of the container.
Reserves one line for the label.
new 16.0 <C> string[*]
GanttRunContainersLabels
List of labels for containers ids, first character separated, as "|id1|label1|id2|label2|id3...".
The labels are displayed in containers and in popup menus instead of container ids.
new 13.0 <C> <cell> int
GanttRunContainerTop
Sets default top in pixels of all the most outer run containers in the cell.
It affects only containers with no box having set its
Height and if no
GanttRunTop is set and the container is not
shifted due overlay.
If not set (default), the run boxes are shown on the same position, regardless on how many containers they are placed in.
Moving and resizing
The run boxes are independent on each other, they can be resizes or moved individually or together and also it is possible to change their position.
new 6.1 upd 13.0 <C> <cell> string[ ]
GanttRunResize
["Resize"]
Which boxes can be resized. Comma separated list of flag keywords, case insensitive.
empty | When set nothing, resizing is restricted. |
Resize | Only resizable boxes can be resized. |
Nbsp | (new 11.0) The nbsp boxes can be resized. Only if set GanttRunNbspHover. |
Container | (new 13.0) Run containers can be resized. If resized, places Edge type boxes on its side(s).
Only if set GanttRunContainersResize |
All | All boxes, including solid boxes and containers can be resized. |
There are also attributes read when dragging with appropriate shift key:
GanttRunResizeCtrl,
GanttRunResizeAlt,
GanttRunResizeShift
Since 7.0 there are move actions for other mouse buttons (
Right and
Middle) as the last suffix:
GanttRunResizeRight,
GanttRunResizeCtrlRight,
GanttRunResizeAltRight,
GanttRunResizeShiftRight,
GanttRunResizeMiddle,
GanttRunResizeCtrlMiddle,
GanttRunResizeAltMiddle,
GanttRunResizeShiftMiddle.
Since 7.0 for touch screens (iPad) are available events for count of fingers on pad,
GanttRunResize1,
GanttRunResize2,
GanttRunResize3, ..., but because by default in Defaults.xml is the ResizeGanttRun action attached only to OnDrag2Gantt event, these prefixes are ignored. To use them, you need to attach the ResizeGanttRun to appropriate OnDragXGantt event, but it should
not be attached to the same events as MoveGanttRun or change the value of <Actions GanttSizeTouch>.
new 6.1 upd 11.0 <C> <cell> string[ ]
GanttRunMove
["Slide"]
How the boxes can be moved. Comma separated list of flag keywords, case insensitive.
Affects source cell when moving between cells.
empty | When set nothing, moving is restricted. |
Slide | The box can be shifted left or right, but cannot change the box order except GanttRunAdjust contains Error flag. The box cannot be moved outside the row. |
| (since 10.0) If set also Move, Copy or Remove, it stops sliding and starts the action, if mouse cursor moves outside the actual row. It is preferred to dragging dependency. |
Move | The moved box will be replaced by empty space. |
Copy | The moved box will stay on the same position and is duplicated to the new position. |
Remove | The moved box will be removed and next boxes will be shifted according to GanttRunAdjustRemove. |
By default the fixed boxes and boxes joined with fixed boxes cannot be moved.
All | Permits moving also fixed boxes (Fixed, Left, Right, Stop). Bound boxes and locked and disabled boxes are never moved. |
By default all joined boxes (boxes without Empty box between them) are moved together.
Single | Only one box will be moved from joined boxes. If set with Nbsp, the joined boxes can be split only on Nbsp box. Since 11.0 it can be used also with Slide. |
Next | (new 11.0) Only the box and next (right) boxes will be moved from joined boxes. If set with Nbsp, the joined boxes can be split only on Nbsp box. |
Prev | (new 11.0) Only the box and previous (left) boxes will be moved from joined boxes. If set with Nbsp, the joined boxes can be split only on Nbsp box. |
Nbsp | (new 11.0) Boxes joined directly will be moved together, but boxes joined by Nbsp will be split. |
The next flags can be used only with Move, Copy or Remove, but not with Slide.
Selected | (new 10.0) All selected boxes in row will be moved, if the one dragged box is selected. |
| The selected boxes are placed to destination as adjacent, with zero space between them. But if set also Entire, they are placed with the original spaces between them. |
| If set GanttRunSelect = 5, it moves all selected boxes in grid to the one destination row. It places them as adjacent in order by rows, the dragged box row always as first. If set also Entire, it preserves the boxes start dates. |
| If the selected box is joined with another not selected box, this box is moved too. It is affected by Single, Next, Prev and Nbsp settings. |
SelectedSingle | (new 11.0) Like Selected, but it always moves only the selected boxes (for joined boxes). It is not affected by Single, Next, Prev and Nbsp settings. |
Clear | (new 10.0) Clears the box selected state after drop. For Copy it clears only destination selection. See also GanttRunClearSelected for other actions. Note the exception, it affects the destination cell. |
Group | All boxes in row in the same group as the dragged box will be moved. |
| The boxes are placed to destination as adjacent, with zero space between them. But if set also Entire, they are placed with the original spaces between them. |
| If the box in group is joined with another box from different group, this box is moved too. It is affected by Single, Next, Prev and Nbsp settings. |
GroupSingle | (new 11.0) Like Group, but it always moves only the boxes in the same group (for joined boxes). It is not affected by Single, Next, Prev and Nbsp settings. |
Entire | (new 10.0) All boxes in row will be moved. (Since 11.0) It is affected by Single, Next, Prev and Nbsp settings. |
| If set Selected, SelectedSingle, Group or GroupSingle, it is applied only if dragged selected or group boxes, for other boxes is ignored. |
Mouse | (new 11.0) If set, preserves the position where the box was caught by mouse. If set, start drop position will be on the box start. If not set, start drop position will be on mouse position. |
Vert | (new 11.0) If set, permits moving the box only in vertical direction. The box drop position will not be rounded to GanttUnits. |
Since 16.0 there are move actions for Container and box types (Box, Solid, Nbsp, ...) like
GanttRunMoveContainer or
GanttRunMoveBox, ...
There are also attributes used when dragging with appropriate shift key:
GanttRunMoveCtrl,
GanttRunMoveAlt,
GanttRunMoveShift.
Since 7.0 there are move actions for other mouse buttons (
Right and
Middle) as the last suffix:
GanttRunMoveRight,
GanttRunMoveCtrlRight,
GanttRunMoveAltRight,
GanttRunMoveShiftRight,
GanttRunMoveMiddle,
GanttRunMoveCtrlMiddle,
GanttRunMoveAltMiddle,
GanttRunMoveShiftMiddle.
Since 7.0 for touch screens (iPad) are available events for count of fingers on pad,
GanttRunMove1,
GanttRunMove2,
GanttRunMove3, ..., but because by default in Defaults.xml is the MoveGanttRun action attached only to OnDrag1Gantt and OnDrag3Gantt events, only the 1 and 3 prefixes are used. To use the other prefixes, you need to attach the MoveGanttRun to appropriate OnDragXGantt event, but it should
not be attached to the same events as ResizeGanttRun or change the value of <Actions GanttSizeTouch>.
new 6.1 <C> <cell> string[ ]
GanttRunAdjust
["Shift"]
How will be moved next or previous boxes when moving some box. Comma separated list of flag keywords, case insensitive.
Affects destination cell when moving between cells.
The order of applying Shift / Shrink / Slip / Resize / Move / Error is set by order of the flag keywords in the GanttRunAdjust. Only one flag from Shift / Shrink / Slip should be used.
empty | When set nothing, the box will be moved within surrounding empty space only. |
Shift | The box will be moved or resized within surrounding empty space and if required, the next or previous boxes will be shifted and their empty spaces preserved. |
Shrink | The box will be moved or resized within surrounding empty space and if required, the next or previous boxes will be shifted and their empty spaces shrunk. |
Slip | The next or previous boxes will be shifted, all empty spaces will be preserved, including the adjacent. If there is fixed box, all the boxes will be moved next to the fixed box. |
| |
Error | The moved box can be moved or resized even if there is no room for it. It permits more boxes on the same place. In this case the boxes can be marked as error boxes or vertically shifted. See also GanttRunError. |
| Note, for GanttRunMove = Slide it is the only option that can change box order in the cell. |
| If it is the only option in the GanttRunAdjust, it permits moving and dropping the boxes freely, without affecting other boxes. |
| |
All | Also fixed boxes (except Bound) will be shifted if required, for Shift / Shrink / Slip |
Nbsp | (new 10.0) The Nbsp boxes can be automatically resized like Empty boxes, but they are not automatically deleted. |
Single | For joined box the Shift works as Slip and for empty restricts moving. |
| (since 10.0) If set with Error, it permits moving also joined box, by adding Empty or (if set Nbsp) Nbsp between them. (deleted 11.0) use GanttRunMove Single instead. |
The next flags can be used only with GanttRunMove = Move, Copy or Remove, but not with Slide.
Append | When dragged to box edge, attaches it to the box without space as adjacent - the boxes will be joined. |
| Permits dropping between joined boxes. Cannot drop into Nbsp type box. |
AppendNbsp | (new 11.0) When dragged to box edge, attaches it to the box with zero length Nbsp type box as adjacent - the boxes will be joined by Nbsp. |
| When dragged to Nbsp box, splits or replaces the Nbsp box by the dragged box. Does not permit dropping between boxes joined without Nbsp, except if set also Append. |
| If set both Append and AppendNbsp, it adds always the Nbsp box when joining the boxes. |
Between | (new 10.0) When dragged to box, it places the source box left or right (nearer edge) next to the destination box or joined boxes, according to other adjust settings. Cannot be used with Error. |
Inside | (new 9.0) Restrict moving boxes outside the existing boxes (before the first and after the last box). |
| |
Resize | The moved box will be resized if there is no room for it. |
ResizeNbsp | (new 11.0) The Nbsp boxes and Empty boxes (for GanttRunMove = Entire) between the moved boxes will be resized if there is no room for the moved boxes. |
Move | The moved box will be moved left if there is no room for it (also shifting boxes on left side by Shift/Shrink/Slip will be permitted). |
Zoom | (new 7.0) When copying/moving between grids, the box will preserve its width on screen and its duration will be changed by zoom ratio of the grids. |
NoRound | (new 11.0) If set, the position of boxes dropped to empty space will not be rounded to GanttDragUnits. |
| |
Containers | (new 13.0) The box gets Containers value according to the drop position. It is possible to use OnGanttRunDrop to set the containers manually (see also methods GetGanttRunContainers() and GetGanttXY()), in this case the flag Containers must not be present. |
ContainersDelete | (new 13.0) Only with Containers. Removes the parent containers from dropped boxes or containers. |
ContainersUnique | (new 13.0) Only with Containers. If dropped boxes contain containers already present in the row, the containers will be made unique by adding #X, where X is the number from 1. |
ContainersLevels | (new 13.0) Only with Containers. Preserves the container level of nesting. |
ContainersMerge | (new 13.0) Only with Containers + ContainersLevels The dropped containers are removed if dropped to container with the same or higher level. |
There are also attributes read when dragging with appropriate shift key and for specific GanttRunMove / GanttRunResize actions:
GanttRunAdjustCtrl,
GanttRunAdjustAlt,
GanttRunAdjustShift
GanttRunAdjustResize,
GanttRunAdjustResizeCtrl,
GanttRunAdjustResizeAlt,
GanttRunAdjustResizeShift
GanttRunAdjustSlide,
GanttRunAdjustSlideCtrl,
GanttRunAdjustSlideAlt,
GanttRunAdjustSlideShift
GanttRunAdjustMove,
GanttRunAdjustMoveCtrl,
GanttRunAdjustMoveAlt,
GanttRunAdjustMoveShift
GanttRunAdjustCopy,
GanttRunAdjustCopyCtrl,
GanttRunAdjustCopyAlt,
GanttRunAdjustCopyShift
GanttRunAdjustRemove,
GanttRunAdjustRemoveCtrl,
GanttRunAdjustRemoveAlt,
GanttRunAdjustRemoveShift
If the exact attribute is not set, the universal one is used, e.g. the attributes are read in this order: GanttRunAdjustMoveCtrlRight, GanttRunAdjustMove, GanttRunAdjustCtrlRight, GanttRunAdjust.
Since 7.0 there are adjust actions for other mouse buttons (
Right and
Middle) as the last suffix like
GanttRunAdjustRight,
GanttRunAdjustCtrlRight,
GanttRunAdjustResizeRight,
GanttRunAdjustResizeCtrlRight, ...
Since 7.0 for touch screens (iPad) are available events for count of fingers on pad,
GanttRunAdjust1,
GanttRunAdjust2,
GanttRunAdjust3,
GanttRunAdjustResize1,
GanttRunAdjustResize2, ..., but not all the prefixes are used by default, for more information see the touch postfixes for
GanttRunResize and
GanttRunMove.
new 7.0 <C> <cell> string[ ]
GanttRunAdjustStart
["Slip"]
Adjust settings used when changed
GanttRunStart value.
The supported keywords are
empty,
Shift,
Shrink,
Slip,
All,
Single.
For their meaning see
GanttRunAdjust.
new 7.0 <C> <cell> string[ ]
GanttRunAdjustCorrect
["Slip"]
Adjust settings used when moving run during correcting dependencies. Used also when moving
GanttSummary children.
The run never resizes during correcting, it means that its duration and also difference between end and start will not change.
The moving is done by trying to move the first box and the last box independently according to the Adjust setting and if the changes differ, the smaller change is applied.
The supported keywords are
empty,
Shift,
Shrink,
Slip,
All,
Single. For their meaning see
GanttRunAdjust.
Used only when GanttTask contains "Run". For "Box" use
GanttRunCorrectBox.
new 10.0 <C> int
GanttRunCorrectBox
[0]
How will be moved individual Run boxes when correcting dependencies and
GanttTask contains "Box",
0 - the boxes will be moved independently on the others, the boxes can overlay as Error boxes.
1 - the boxes will be moved independently on the others, but the boxes cannot overlay - if the boxes overlay, the other boxes are moved.
2 - the boxes cannot change their order, if the box is moved, all other boxes in its way are moved too. Empty spaces are
not preserved. Like Adjust
Shrink. Note, here the wrong box order can cause the dependencies cannot be corrected.
new 7.0 chg 10.0 <C> bool
GanttRunCorrectFixed
[1]
Used when correcting dependencies. For
1 it will check the run box moving possibility (fixed boxes) like any other constraints.
Since 10.0 the default value is
1.
Set it to
0 if you use long runs without fixed boxes and the whole run is Gantt task, just to speed up the correcting.
new 11.0 <C> int
GanttRunDragObject
[1]
If and how will be shown the dragged box(es) under mouse cursor. It is ignored if set
<Cfg ShowDrag='0'/>
0 - show nothing.
1 - show all the boxes in one line, without spaces, overlay and side texts.
2 - behaves like
3 if set Entire in
GanttRunMove, otherwise behaves like
1.
3 - show all the boxes in one line including side texts, preserving spaces and overlay.
4 - show all the boxes in more lines according to their vertical positions, including side texts. Preserves spaces and overlay.
If the boxes are placed in more rows, they are also vertically shifted, according to the row heights.
new 6.1 upd 7.0 <C> <cell> string[ ][ ]
GanttRunNew
[1,Box]
One or more boxes that will be created when adding new box to the run, by dragging empty space.
It has the same format as
GanttRun.
If it contains more boxes, the last one will be resized by a user while adding the boxes by dragging.
Set it to empty string to forbid adding new boxes.
There are also attributes read when dragging with appropriate shift key:
GanttRunNewCtrl,
GanttRunNewAlt,
GanttRunNewShift.
Since 7.0 there are also attributes for other mouse buttons (
Right and
Middle) as the last suffix:
GanttRunNewRight,
GanttRunNewCtrlRight,
GanttRunNewAltRight,
GanttRunNewShiftRight,
GanttRunNewMiddle,
GanttRunNewCtrlMiddle,
GanttRunNewAltMiddle,
GanttRunNewShiftMiddle.
Since 7.0 for touch screens (iPad) are available events for count of fingers on pad,
GanttRunNew1,
GanttRunNew2,
GanttRunNew3, ..., but because by default in Defaults.xml is the NewGanttRun action attached only to OnDrag3Gantt event, these prefixes are ignored. To use them, you need to attach the NewGanttRun to appropriate OnDragXGantt event.
new 6.1 upd 7.0 <C> <cell> string[ ][ ]
GanttRunNewStart
[1,Box]
Setting
GanttRunNew when adding new box to the empty run, by dragging empty space.
It can also specify the separators and / or JSON definition for the new Run, e.g. set
GanttRunNewStart="[{Duration:1,Type:'Box'}]" to use JSON definition for new runs.
It can contain also some start or end box.
For more information see
GanttRunNew.
new 6.1 upd 11.0 <C> <cell> string[ ][ ]
GanttRunTypes
[ ]
List of predefined box types and other attributes to be set to actual box, selected from popup menu.
Used to let a user to change the type, class and other attributes of clicked box from popup menu.
(Since 11.0) It is possible to change also boxes individual state, e.g. to disable all selected boxes or select all boxes in the same group.
Set the State attribute of the boxes as "x+y", where the x is the bit value to set and y the bit value to reset. For example "1+3" sets the disabled/locked state to 1 and does not affect other states.
(Since 11.0) It is possible to change all box attributes except
Width and
Id. To change
State attribute, set it as number (bit array),
not as string, see
GetGanttRunBox,
State attribute.
There are two possible formats:
Array definition
It has the same format as full
GanttRun Array definition, except there is the item name (shown in menu) instead of duration as the first item and there are no start/end items.
The menu will be shown as sub menu of the main Gantt menu
ChooseGanttRunType item.
The empty values are ignored and
not set to the changed box. To clear the attribute, set the value to one space string.
For example:
"type1,,,Red;type2,,,Blue;type3,solid,xxx,White"
JSON definition (since 11.0)
It can be also
JSON menu, where the individual boxes are defined in
Box attribute, with the first parameter ignored. The JSON menu format must start with '{' character.
The menu will be shown as sub menu of the main Gantt menu
ChooseGanttRun...Type item.
The
Box attribute can be string in GanttRun Array definition, first character separated (as the item, the width is always empty), or string with GanttRun JSON definition or object with GanttRun JSON definition.
For example:'
{Menu:1, Items:[{Text:"type1",Box:",,,Red"},{Text:"type2",Box:",,,Blue"},{Text:"type3",Box:",solid,xxx,White"}]}'
The
root menu items can have defined different text per source action:
TextBox (one),
TextRow (in row),
TextSelected (selected),
TextGroup (row group),
TextGroupAll (group) and
TextContainer (container).
Or define one Text attribute for all the sources the same. If no Text or specific source Text... attribute is defined, the item is not shown! These texts can contain string "%d" to be replaced by the box count in the source.
If the menu has attribute
Include:1, the Items are included directly to the GanttMenu on the place instead of the
ChooseGanttRun...Type item.
The menu items can contain also submenus or levels to display this menu in more menus or levels. In unlimited nesting.
For example:
'{Include:1,Items:[{Text:"Set box type",Items:[{Name:"box",Box:{Type:"Box"}},{Name:"solid",Box:{Type:"Solid"}}]},{Text:"Set box class",Items:[{Name:"red",Box:{Class:"Red"}},{Name:"blue",Box:{Class:"Blue"}}]}]}'
new 9.1 API event int
OnDragGanttRun
(TGrid grid, TRow row, string col, int index, bool start, int new, int old, int change, int dir, object XY, string keyprefix, int clientX, int clientY)
Called during dragging Run box inside row (for moving box as Slide and for any resizing).
It is called
only for
GanttRunMove='Slide' and for resizing.
row,
col is the Gantt cell.
index is RunIndex of the dragged box inside its source cell.
start is 1 for first loop, 0 for all next loops.
new is new date (as count of milliseconds since 1/1/1970). It is start date of the box for
dir==1 or
3 or it is end date for the box for
dir==2.
old is original date (as count of milliseconds since 1/1/1970). It is start date of the box for
dir==1 or
3 or it is end date for the box for
dir==2.
change is actual change of the box edge (
old minus
new, but in workdays).
dir is dragging direction, 1 left edge (resize), 2 right edge (resize), 3 both edges (move). It controls also the edge specified by
new and
old.
XY is the dragged Gantt object returned by
GetGanttXY.
keyprefix is prefix of shift keys: "Ctrl", "Alt", "Shift" and also mouse button "Right" or "Middle". The key is before the mouse, e.g.
keyprefix='CtrlRight'.
clientX,
clientY is mouse position on page.
Return
null for normal behavior
Return
0 to suppress the last change
Return
false to cancel dragging and restore original state
Return
true to finish dragging and save this last change
Return
integer as new change (in workdays).
new 12.1 API event bool
OnEndDragGanttRun
(TGrid grid, TRow row, string col, int index,
object run, int type, int dir, object XY, string keyprefix, int clientX, int clientY)
Called after dragging Run box inside row finished (for moving box as Slide and for any resizing).
It is called
only for
GanttRunMove='Slide' and for resizing.
row,
col is the Gantt cell.
index is RunIndex of the dragged box inside its source cell.
run is the modified run object (like returned by
GetGanttRun) to be set to the cell.
type is
0 for normal change of existing box,
1 the box will be deleted,
2 the box was created new.
dir is dragging direction, 1 left edge (resize), 2 right edge (resize), 3 both edges (move).
XY is the dragged Gantt object returned by
GetGanttXY.
keyprefix is prefix of shift keys: "Ctrl", "Alt", "Shift" and also mouse button "Right" or "Middle". The key is before the mouse, e.g.
keyprefix='CtrlRight'.
clientX,
clientY is mouse position on page.
Return true to cancel the change.
new 6.1 chg 10.0 upd 13.0 API event int
OnGanttRunDrop
(TGrid grid,TRow row,string col,bool drop,object src,int index,string keyprefix,int x,int y,TGrid togrid,TRow torow,string tocol,int cellx,bool accept, int celly, string[] containers)
Called during dragging and also when the dragged run box(es) is dropped (distinguished by
drop value). It is called also when it is dropped outside any grid.
It is called
only for
GanttRunMove='Move/Copy/Remove'
grid,
row,
col is source cell from that is dragged.
drop is false when called during dragging to check if the box can be dropped and true when the box is being dropped.
Since 9.1 it is
false for start and
0 for next loops.
src is parsed run that is dragged - two dimensional array of the dragged boxes. It is possible to modify this array in the event handler, e.g. change containers ([15]) of the dropped boxes.
index is RunIndex of the dragged box inside its source cell (
not in
src), if more boxes are dragged together, this is index of the one that was caught by mouse.
keyprefix is prefix of shift keys: "Ctrl", "Alt", "Shift" and
(since 7.0) also mouse button "Right" or "Middle". The key is before the mouse, e.g.
keyprefix='CtrlRight'
x,
y is mouse position in page in time of drop, in pixels.
togrid,
torow,
tocol is destination cell to that is dropped. It can be null if dropped outside any grid.
cellx is drop position inside the destination cell, in pixels.
accept (since 8.0) is actual state, if the box can be dropped here.
celly (new 12.1) is vertical drop position inside the destination cell, in pixels.
containers (new 13.0) is array of source containers, the first one the dragged one and the next are its parent containers. It is null if only boxes are dragged.
Return
false to suppress drop,
true to permit drop or
null to use actual
accept state.
(Since 10.0) Or return
integer as new position of the drop (
cellx). It also sets
accept to true.
(Since 11.0) Or return
empty string "" to immediately finish the dragging. Only for
drop != true. After that, the OnGanttRunDrop is called again with
drop = true to get the final result for the drop action.
new 16.4 API method bool
DragGanttRunByMouse
(object tag, Event event, string run, TRow row, string html = null)
Starts dragging run box or run boxes from external source like it is dragged from the grid itself.
tag is HTML tag to be dragged. It is
not modified by this function. It is used to get its position, class and innerHTML.
event is standard HTML MouseEvent, the function used its clientX and clientY for placing the ghost object. It is usually mousedown or mousemove event.
run is string or JSON object of the run box(es) that are created in destination grid on drop.
row is a row in source grid that gets the temporary run that is dragged. This row is usually defined in fixed section (Head/Foot) with Visible=0, CanHide=0, NoUpload=1. The Gantt cells attributes for run draggin like GanttRunMove in this row control the run dragging.
html is html to filled into ghost object. If not set, the tag.innerHTML is used.
Returns true for success and false for error.
The function creates temporary GanttRun from the
run in Gantt cell in the
row. Next it starts dragging the temporary run box(es) from the
row to the final destination.
When dropped, the temporary run box(es) is moved to the destination. Or if drop cancelled, nothing is done - the temporary boxes remain in the
row and are overwritten on the next drag.
The function creates ghost object under mouse cursor with content of the
tag or
html.
API
Controlling run boxes by JavaScript
Some other API methods and events are also listed in individual features above in this document
new 6.1 chg 7.0 upd 10.0 API method object
GetGanttRun
(TRow row, string col, string run = null, string start = null)
Returns parsed GanttRun value for given
Gantt cell.
Returned object is two dimensional array with the parsed boxes in format: [[duration,type,text,class,tip,id,group,...], [duration,type,text,class,tip,id,group,...], ... ]
If the boxes are not joined, every even item is
Empty type box.
The duration (first item) is in
pixels milliseconds and without excluded parts. The type (second item) is always set.
In 7.0 the duration units were changed from pixels to milliseconds.
It contains also property
Start as left position (in
milliseconds from the first date in Gantt and without excluded parts) from the cell left edge. Regardless on the first box is start End/Bound type or not.
It contains also property
Deleted as array of actually deleted boxes in random order.
(Since 10.0) It contains also properties
StartDate and
EndDate as the first and last date of the run in milliseconds. These properties are
not used by
SetGanttRun.
(Since 10.0) If set
run parameter, it parses given run string instead of string from GanttRun,
start is used as run start date if the
run contains only durations.
new 6.1 chg 7.0 API method void
SetGanttRun
(TRow row, string col, object run)
Writes parsed GanttRun into the Run source cell value for given
Gantt cell.
The run must be the object returned from GetGanttRun! Never create new run object!
You can get the run object by
GetGanttRun, modify its individual boxes and / or
Start property and set it back by SetGanttRun. Never create new run object!
The run object is destroyed by the call, it cannot be used later. Use GetGanttRun to get it again.
In 7.0 the duration units were changed from pixels to milliseconds.
new 7.0 chg 10.0 upd 13.0 API method object
GetGanttRunBox
(TRow row, string col, int index) or (TRow row, string col, string id, string group=null)
Returns given box from the Gantt Run cell. Returns null if there is no such box. The col is the Gantt cell.
The box can be identified by number
index or by string
id, optionally with string
group. The
id can be number, but must be in string type variable.
Returns object with these properties:
int Index - index of the box inside its Run
int Start - start date in milliseconds
int End - end date in milliseconds, it is affected also by
GanttLastUnit value
int Duration - box duration in milliseconds, without excluded dates.
int Left - left side position in chart in pixels, including excluded dates and is affected by zoom
int Width - width of the box in chart in pixels, including excluded dates and is affected by zoom
int Top -
(new 8.1) vertical position in row, in pixels, it returns the Top attribute of GanttRun, it does not measure anything
int Height -
(new 8.1) height of the box, in pixels, it returns the Height attribute of GanttRun, it does not measure anything
string Type,
string Text,
string Class,
string Tip,
string Id,
string Group - attributes set for the box
int State - a bit array number of box states
(since 10.0) changed from string to number.
1 - disabled, 2 locked, 4 selected, 8 added, 16 deleted, 32 moved, 64 resized, 128 changed.
string Manual,
int Complete,
string Resources,
string TextLeft,
string TextRight -
(all new 10.0) attributes set for the box
string[] Containers -
(new 13.0) array of containers the box is included in.
int Disabled -
(new 10.0) disabled state of the box,
0 - no,
1 disabled,
2 locked.
Cannot be set by SetGanttRunBox, use State instead.
bool Selected -
(new 10.0) if the box is selected.
Cannot be set by SetGanttRunBox, use State instead.
TRow Row,
string Col - parameters given to the function
object[] Data -
(new 7.1) raw box data array (always starting by Width) for access also custom box attributes.
Cannot be set by SetGanttRunBox, use SetGanttRun instead.
Since 10.0 the returned object contains also
custom attributes defined in
GanttRunCustom, they can be also changed by
SetGanttRun.
To get a box on given position in pixels, use
GetGanttXY and call GetGanttRunBox with the RunIndex returned in object by GetGanttXY.
new 7.0 chg 9.3 API method int
SetGanttRunBox
(object box, string adjust = "", bool test = 0, int minduration = null)
Changes given box. Shows changes in the cell.
Returns
0 if the box does not exist,
1 if the box cannot be changed due adjust,
2 if the box is changed or can be changed.
The box must have set the
Row +
Index or
Id (+
Row+
Group) attribute to identify it.
adjust is the way how other boxes will be moved when the box position or size is changed, comma separated list of keywords, see
GanttRunAdjust.
Since 9.3 the
adjust is tested more preciously. If it change cannot be done exactly, it applies the change only when set
adjust = Resize or
Move, according to these flags.
(Since 9.3) minduration is minimal duration of the box in milliseconds, if applied
adjust = Resize. If not set, it is used duration of one GanttUnits.
To change box size you should set only some position attributes: Start+End or Start+Length or End+Length or Left+Width.
If you have box got by GetGanttRunBox and you want to change the Left or Width, you must null its Start, End and Duration attributes. Use null assignment, not delete.
If you have box got by GetGanttRunBox and you want to change the Duration, you must null its Start or End attributes (but not both).
(Since 8.0) For
test = 1 does not modify the run, just tests possibility of the change due adjust.
new 7.0 chg 8.0 API method bool
AddGanttRunBox
(object box, string adjust = "", string id = null, string group = null, bool test = 0)
Adds the box to the run. If set
id and
group, adds it before the box with the given
id+
group or
id as number index. If no such box, adds it to the end.
The box must have set at least
Row attribute.
Returns
0 if the box does not exist,
1 if the box cannot be added due adjust,
2 if the box is added or can be added.
(Since 8.0) If the box has set
Left or
Start attribute and no
id is passed, the box is placed and sorted to given position, like the box is dragged.
(Since 8.0) For
test = 1 does not modify the run, just tests possibility of the adding due adjust.
new 7.0 upd 9.0 API method bool
DelGanttRunBox
(object box, bool remove, string adjust)
Deletes given box. Shows changes in the cell. If the box does not exist, returns false, otherwise true.
The box must have set the
Index or
Id (
Group) attribute to identify it.
If set
remove (since 9.0) it shifts all the next boxes to the left. The
adjust controls how the rest of boxes will be moved, default is "slip".
Remember, if you are deleting more boxes found by FindGanttRunBoxes, you must iterate the array from end, to not break down the box indexes!
new 7.0 API method object
ScrollToGanttRunBox
(object box, int type = 0)
Scrolls the box into view.
The box must have set the
Index or
Id (
Group) attribute to identify it.
type is
0 for the smallest scroll,
1 to show the box centered,
2 to show the box on the left.
new 7.0 API method object
GetGanttRunBoxTag
(object box)
Returns outer HTML tag of the given box.
The box must have set the
Index or
Id (
Group) attribute to identify it.
It can be used to mark the box by changing its className or inline style or its firstChild className or inline style.
It should
not be used to change box position or size.
new 7.0 upd 10.0 API method object[ ]
FindGanttRunBoxes
(object box, int type = 0, string attrs = "...")
Searches grid for boxes with the same attributes as the given
box.
Returns array of the objects, the objects are the same as from
GetGanttRunBox method.
attrs (since 10.0) is a list of run box attribute names that are searched for, comma separated. Default value is "
Id,
Group,
Type,
Text,
Class,
Tip".
If the box contains
Row property, searches only within this row.
type&1 =
1 - without not expanded children,
type&2 =
2 - include hidden rows,
type&4 =
4 - case insensitive search,
type&8 =
8 - returns also boxes that contain given string(s)
type&16=
16 - searches only editable runs (
GanttEdit='run')
type&32=
32 -
(new 10.0) if set box.
Row, searches in all children of the row, otherwise ignored.
new 16.4 API method bool
AddGanttRun
(TRow row, string col, string run)
Adds given
run as standard array or JSON string or JSON object definition of GanttRun to the actual GanttRun definition in the
row Gantt cell. It adds the
run after the existing GanttRun.
The run must have the same format (array definition with the same separators / JSON string / object) as the GanttRun already in the row.
Returns true on success or false for incompatible formats or on other errors.
new 7.0 chg 10.0 API event bool
OnGanttRunBoxChanged
(TGrid grid, object box, object old, int change)
Called after change in any Run box, before the changes are displayed.
It is called only when set GanttRunStates="1" (deleted 10.0)
It is called only for box with
Id set.
In other cases use OnGanttChange / OnGanttChanged events.
The
box is actual box settings like returned by
GetGanttRunBox. The
box is null for deleted box. It has already set its new
State.
The
old is original box settings before change. The
old is null for added box. For deleted box it has set
State="deleted", otherwise the original state.
The
change (since 10.0) is bit array of the changes done in the box - &
1 - changed, &
2 - moved, &
4 - resized, &
8 - created, &
16 - deleted.
When box is moved from one row to another, the event is called twice, first for adding the box to new row and next for deleting the box from old row.
When box is deleted, it is often changed to Type="empty" (or "nbsp" if it has joined boxes on both sides), thus OnGanttRunChanged is called for the box change, not for the box delete. The empty and nbsp boxes can be automatically removed later without OnGanttRunBoxChanged call.
If defined this event, all newly created boxes (except bounds and empty) get generated new id "new"+temp index.
Return true if you changed some parameter in
box to save the change.
new 7.0 API event bool
OnGanttRunBoxNew
(TGrid grid, object box, bool copy)
Called after new box was created by dragging or the box was copied by dragging with
GanttRunMove='Copy'.
copy is
1 if the box was copied,
0 if it was created new. The copied box has still its original
Id (duplicate), so you should change it here.
If defined OnGanttRunBoxChanged, this event is called before OnGanttRunBoxChanged and the new box has already set its id "newXXX".
The
box is actual box settings like returned by
GetGanttRunBox.
Return true if you changed some parameter in
box to save the change.
Actions
Interactive run bar
new 7.0 <Actions>
MoveGanttRun
Attached to OnDragGantt, cannot be attached anywhere else
Moves one run box by mouse dragging according to GanttRunMove and GanttRunAdjust settings.
Fails, if mouse is not above run box or the run box is fixed.
new 7.0 <Actions>
ResizeGanttRun
Attached to OnDragGantt, cannot be attached anywhere else
Moves one run box by mouse dragging according to GanttRunResize and GanttRunAdjust settings.
Fails, if mouse is not above run box edge or the run box is solid or its edge is fixed.
new 7.0 upd 10.0 <Actions>
CreateGanttRun
Not attached to any event, can be attached to OnDragGantt
Creates new run box by mouse dragging according to GanttRunNew, GanttRunResize and GanttRunAdjust settings.
Fails, if run box cannot be created here.
Since 10.0 it is
not attached to OnDragGantt, it was replaced by CreateGanttBar.
new 10.0 <Actions>
CreateGanttBar
Attached to OnDragGantt, cannot be attached anywhere else
Creates new main or run bar. It creates the one that can be created. It chooses the bar to create according to the y axis.
If more new bars can be created on actual position, it chooses them in this order: main, main1, main2, ..., mainX, run
new 6.1 upd 10.0 <Actions>
DeleteGanttRun
Attached to OnCtrlClickGantt event
Deletes one run box under mouse cursor.
It fails if there is no run box under mouse cursor.
Since 10.0 it is attached to OnCtrlClickGantt event.
new 15.0 <Actions>
RemoveGanttRun
Not attached to any event
Deletes one run box under mouse cursor.
It firsts resizes the box to 0 according to the
GanttRunAdjust and next deletes it.
It fails if there is no run box under mouse cursor.
new 7.0 <Actions>
DeleteGanttRunGroup
Not attached to any event
Deletes all boxes in actual row that have the same Group value as the box under mouse cursor .
new 15.0 <Actions>
RemoveGanttRunGroup
Not attached to any event
Deletes all boxes in actual row that have the same Group value as the box under mouse cursor .
It firsts resizes the boxes to 0 according to the
GanttRunAdjust and next deletes them.
new 7.0 <Actions>
DeleteGanttRunGroupAll
Not attached to any event
Deletes all boxes in the whole grid that have the same Group value as the box under mouse cursor.
new 7.0 <Actions>
RemoveGanttRunGroupAll
Not attached to any event
Deletes all boxes in the whole grid that have the same Group value as the box under mouse cursor.
It firsts resizes the boxes to 0 according to the
GanttRunAdjust and next deletes them.
new 7.0 <Actions>
DeleteGanttRunSelected
Not attached to any event
Deletes all selected boxes in actual or focused row. Or in the whole grid if set
GanttRunSelect = 5.
new 7.0 <Actions>
RemoveGanttRunSelected
Not attached to any event
Deletes all selected boxes in actual or focused row. Or in the whole grid if set
GanttRunSelect = 5.
It firsts resizes the boxes to 0 according to the
GanttRunAdjust and next deletes them.
new 7.0 <Actions>
DeleteGanttRunAll ...FA
Not attached to any event
Deletes all boxes in actual or focused row.
new 10.0 <Actions>
DisableGanttRun
Not attached to any event
Disables or enables Run bar or box if it is under mouse cursor. Chooses according to the
GanttTask.
It fails if there is no Run box under mouse cursor or Run is not a Gantt task.
new 10.0 <Actions>
LockGanttRun
Not attached to any event
Locks or unlocks Run bar or box if it is under mouse cursor. Chooses according to the
GanttTask.
It fails if there is no Run box under mouse cursor or Run is not a Gantt task.
new 10.0 <Actions>
SelectGanttRun
Attached to OnDblClickGantt event
Inverts selection state of box under mouse cursor.
It fails if there is no run box under mouse cursor or its selection state cannot be changed, see
GanttRunSelect.
new 10.0 <Actions>
SelectGanttRunRect
Attached to OnCtrlDragGantt event, can be attached only to On...Drag... events
Selects all boxes in the rectangle created by dragging.
new 13.0 <Actions>
SelectGanttRunRange
Attached to OnCtrlDragGanttHeader event, can be attached only to On...Drag... events
Selects all boxes in all selected or focused rows in the date range created by dragging.
new 10.0 <Actions>
DeselectGanttRunAll
Not attached to any event
Deselects all run boxes in grid.
new 6.1 <Actions>
EditGanttRun
Attached to OnDblClickGantt event
Lets a user to edit text shown on the run box under mouse cursor.
new 6.1 <Actions>
EditGanttRunTip
Not attached to any event
Lets a user to edit text shown as tooltip for the run box under mouse cursor.
new 6.1 <Actions>
ChooseGanttRunType
Not attached to any event
Lets a user to choose type of the run box under mouse cursor. The possible run types are defined by
GanttRunTypes.
new 7.0 <Actions>
ChooseGanttRunGroupType
Not attached to any event
Lets a user to choose type of all boxes in the actual row with the same Group value as the box under mouse cursor. The possible run types are defined by
GanttRunTypes.
new 7.0 <Actions>
ChooseGanttRunGroupAllType
Not attached to any event
Lets a user to choose type of all boxes in the whole grid with the same Group value as the box under mouse cursor. The possible run types are defined by
GanttRunTypes.
new 10.0 <Actions>
ChooseGanttRunSelectedType
Not attached to any event
Lets a user to choose type of all selected boxes as the box under mouse cursor. The possible run types are defined by
GanttRunTypes.
new 11.0 <Actions>
ChooseGanttRunRowType
Not attached to any event
Lets a user to choose type of all boxes in the actual row. The possible run types are defined by
GanttRunTypes.
new 11.0 <Actions>
JoinSelectedGanttRun
Not attached to any event
Joins all adjacent selected boxes or selected boxes separated only by Empty boxes.
It replaces all Empty boxes between selected boxes by Nbsp boxes.
new 11.0 <Actions>
SplitJoinedGanttRun
Not attached to any event
Splits all boxes joined by nbsp to the actual box or its joined boxes.
It replaces all Nbsp boxes between the joined boxes by Empty boxes.
new 11.0 <Actions>
JoinAdjacentGanttRun
Not attached to any event
Joins all adjacent boxes to the actual box. It deletes all the zero length Empty boxes.
new 11.0 <Actions>
SplitAdjacentGanttRun
Not attached to any event
Splits all boxes directly joined to the actual box or its joined boxes.
It adds Empty boxes between the joined boxes.
new 7.0 <Actions>
SetGanttRunPercent
Attached to OnCtrlRightClickGantt event
Changes % of completed to position under mouse cursor.
It fails if mouse is not above Run bar.
new 7.0 <Actions>
EditGanttRunPercent
Attached to OnShiftRightClickGantt event
Lets a user to edit percentage completion of the run set by
GanttRunComplete.
new 7.0 <Actions>
EditGanttRunText
Not attached to any even
Lets a user to edit the text for whole task in
GanttRunText.
chg 10.0 <Actions>
NewGanttMilestone
Attached to OnDblClickGantt event
Adds new start milestone or run milestone. It creates the one that can be created. It chooses the bar to create according to the y axis.
If more new bars can be created on actual position, it chooses them in this order: main, main1, main2, ..., mainX, run
Before 10.0 its functionality was the same as NewGanttStartMilestone.
new 7.0 upd 10.0 <Actions>
NewGanttRunMilestone
Not attached to any event
Adds new Run box with zero duration and type Milestone. There can be more milestones defined by Run in one cell.
Since 10.0 it is not attached to OnDblClickGantt event, it is replaced by NewGanttMilestone.
new 7.0 <Actions>
NewGanttRunStop
Not attached to any event
Adds new Run box with zero duration and type Stop (not movable milestone). There can be more milestones defined by Run in one cell.
new 10.0 <Actions>
SplitGanttRun
Attached to OnShiftClickGantt event
Splits run box under mouse cursor on actual position to two boxes.
Formulas
new 6.2 formula int
ganttrunstart
(string ganttcol)
Calculates start date (in milliseconds) of one Run.
ganttcol - column showing the Gantt chart, it should contain the
Run bars.
new 6.2 formula int
ganttrunend
(string ganttcol)
Calculates end date (in milliseconds) of one Run.
ganttcol - column showing the Gantt chart, it should contain the
Run bars.
new 7.0 formula int
ganttrunduration
(string ganttcol)
Calculates duration of the run, without empty spaces and start/end boxes.
Returns value in GanttDataUnits.
ganttcol - column showing the Gantt chart, it should contain the
Run bars.