TreeGrid v6.3

Run bar

TreeGrid documentation index

 

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 flow.

 

Run definition

 

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 widths 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 widths 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 width, shape, color, caption and tooltip.

 

<C><cell>        string[][] GanttRun                      Gantt source – column name or exact value                  new 6.1 upd 8.1.

Definition of individual Run boxes.

If the boxes have not specified Start date, they are displayed from GanttRunStart one by one, without any space.

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.

It is possible to change the separators by adding the 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. “&#xF001; &#xF000;3&#xF000;End&#xF000;Start&#xF001;20&#xF000;Box&#xF001; &#xF001;20&#xF000;Box” uses &#xF001; as box and &#xF000; as item separator.

Do not fill any useless white characters (spaces) in the definition!

 

The one box definition is:                 Width,Type,Text,Class,Tip,Id,Group,State,Top,Height                        Must have set also GanttRunStart as the start of the whole run

OR         Start,Width,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,,”

 

date        Start       (new 6.2) 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.

date        End        (new 6.2) End date of the task, used instead of Width. Use End date if you know the start and end dates instead of duration.

                               The End 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)

                               The End can be the exact end date or the last data unit, according to setting GanttEndLast.

                               It is not possible to use it with number data units like GanttDataUnits=’1’

int           Width    width of the box in GanttDataUnits or in milliseconds, used instead of End date. Use Width if you know duration and not end date.

                               The empty space (Type=0) can have negative width for overflowed adjacent boxes, these error boxes are displayed in red

int           Type       Feature of the box, default value is Box if positive Width is set or Empty if Width is not set or is negative.

                               Since 7.0 also the Width + 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 0 width).

                                                                              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 width 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 width 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 0 width, 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.

                                                               Cannot be used when Start is set for the boxes

                               Nbsp                      Not breakable, not resizable, not interactive empty space between boxes.

                                                               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, it is not resizable, not movable fixed start box and is displayed before the 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.

                                                                              It is not possible to move boxes after or on the fixed end.

                                                               If placed anywhere else, it is fixed not deletable box

                               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.

                                                                              When moving box after or on the end, the end is automatically moved after it

                                                               It should not be placed anywhere else.

string     Text       caption displayed on the box, it can contain also these special strings:

                               %d – replaces it by Width displayed as date formatted by GanttRunFormat.

                               %n – replaces it by Width 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).

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.

                               For custom classes you need to define CSS classes GxGanttRunXXXIn and GxGanttRunXXXOut, 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’ you need to define one class GxFGanttRunXXX, this class must not change padding, margin and border-width.

string     Tip         tooltip displayed when mouse hovers the box

string     Id            (new 7.0) unique identification of the box (at least in its group), can be used in API methods (e.g GetGanttRunBox) to find the box.

string     Group    (new 7.0) Identification of the group of boxes, more boxes can belong to the same group.

string     State      (new 7.0) State of the box, used only when set GanttRunStates=’1’. It is filled automatically after any change for the box. It is filled only for boxes with Id set.

                               It can be: added, deleted, moved, resized, changed. It can contain more states separated by plus, e.g. “resized+moved+changed”

                               If some box is moved from one row to another, it will get deleted flag in source row and added flag in destination row. moved flag is only for move within one row.

int           Top        (new 8.1) Vertical position of the box, in pixels.

int           Height   (new 8.1) Height of the box, in pixels.

 

 

<C><cell>        string    GanttRunStart           Gantt source – column name or exact value                  new 6.1; upd 7.0.

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 widths.

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.

 

<C><cell>        string    GanttRunEnd             Gantt source – column name only                                             new 7.0       .

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 changed by user, the GanttRun is modified according to the GanttRunAdjustEnd settings.

 

<C> <cell>       string    GanttRunSave          [0]                                                                               new 6.2; upd 7.0.

Type of GanttRun box attribute structure for save.

0             “Width,Type,Text,Class,Tip” if defined GanttRunStart column or “Start,End,Type,Text,Class,Tip” if not

1             “Width,Type,Text,Class,Tip”

2             “Start,Width,Type,Text,Class,Tip”

3             “Start,End,Type,Text,Class,Tip”

 

&4          (new 7.0) Values 4 – 7 are similar to values 0 – 3, but use the short format

Omits box type as default, empty type without width as completely empty, empty type with width as width with comma

For example “1,Box;2,Empty;3,Box;0,Empty;5,Box” is written as “1;2,;3;;5”

 

<C> <cell>       string    GanttRunFormat                                                                                                   new 6.1       .

Date or number format string (like for Type Date or Int) to display box width in the box caption, see GanttRun, part Text.

 

<C> <cell>       string    GanttRunTip                                                                                                  new 6.4; upd 7.0.

Tip shown on mouse hover the box. It can contain HTML code.

By default it shows the Tip part from GanttRun.

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* - show the original box Tip part from GanttRun, *Index* - the box index (from 1, excluding empty boxes)

*RunText* - (new 7.0) shows the whole run tip from GanttRunText.

*Start* - start date of the box, *End* - end date of the box, *Duration* - length of the run in GanttRunFormat or in GanttDataUnits.

Example: “*Index*. box *Start* - *End*&lt;br>*Text*”

 

<C> <cell>       string    GanttRunTipDateFormat                                                                                new 6.4       .

Date format to display Start and End of the run in GanttRunTip *Start* and *End*.

It is the same format as for Date type.

 

<C> <cell>       string    GanttRunText            Gantt source – column name or exact value                              new 7.0       .

Tip / information for the whole run, can be displayed as tooltip

 

<C> <cell>       bool      GanttRunErrors       [1]                                                                                           new 8.1       .

If the overlaid boxes will be marked as error boxes in red.

 

<C>                  int        GanttRunGroupHover    [1]                                                                               new 7.0       .

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’)

 

<C>                  bool      GanttRunStates       [1]                                                                                           new 7.0       .

If set to 1, it fills all changes in the box in the State part of the GanttRun. Fills changes only for boxes with Id set.

The deleted boxes are saved to the end as box with type ‘-‘ and empty width and without start/end date items.

 

<C>                  bool      GanttRunMilestones        [1]                                                                               new 7.0       .

If creating Run milestones by users is permitted.

If set to 0, zero length boxes cannot be created.

 

<Cfg>               int        FastGantt                       [0]                                                                                           new 7.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 20 and more run boxes.

After change of this setting you must rename all your custom CSS classes in Class part of the GanttRun.

Because the FastGantt boxes can be incorrectly rendered in Firefox with zoom!=100%, it is disabled for this browser. To set FastGantt also in Firefox set it to 2.

 

API event         string    OnGetGanttRunText        (TGrid grid, TRow row, string col, object run, int index, string text)     new 8.1.

Called to get the Run box text 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.

 

 

Run 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.

 

<C> <cell>       string[]  GanttRunResize      [“Resize”]                                                                     new 6.1; upd 7.0.

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

All          All boxes, including solid boxes 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>.

 

<C> <cell>       string[]  GanttRunMove         [“Slide”]                                                                       new 6.1; upd 7.0.

How the boxes can be move. Comma separated list of flag keywords, case insensitive

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.

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.

 

All          Also fixed boxes (except Bound) can be moved

Single    Only one box will be moved, when there are more adjacent boxes without separating spaces

 

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>.

 

<C> <cell>       string[]  GanttRunAdjust       [“Shift”]                                                                       new 6.1; upd 7.0.

How will be moved next or previous boxes when moving some box. Comma separated list of flag keywords, case insensitive.

The order of applying Error/Resize/Move is set by order of the flag keywords.

 

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.

 

All          Also fixed boxes (except Bound) will be shifted if required, for Shift/Shrink/Slip

Single    When there are more adjacent boxes without space, the surrounding space will be taken as none, especially for Shift and Slip

                If not present, the surrounding space is taken as the nearest space

Append When dragged to box end, attaches it to the box without space as adjacent – the boxes will be joined.

 

Error    The box will be moved or resized even if there is no room for it. In this case it will be marked as error. See also GanttRunError.

Resize    The box will be resized if there is no room for it

Move     The 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 physical width will be changed by zoom ratio of the grids.

 

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.

 

<C> <cell>       string[]  GanttRunAdjustStart       [“Slip”]                                                                         new 7.0.

Adjust settings used when changed GanttRunStart value.

The supported keywords are empty, Shift, Shrink, Slip, All, Single

For their meaning see GanttRunAdjust.

 

<C> <cell>       string[]  GanttRunAdjustCorrect            [“Slip”]                                                             new 7.0.

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.

 

<C>                  bool      GanttRunCorrectFixed             [0]                                                                   new 7.0.

Used when correcting dependencies. For 1 it will check the run moving possibility like any other constraints.

The checking can slow down the correcting.

The checking should be used when the runs contain fixed boxes (Fixed, Left, Right, Stop, Bound).

 

<C><cell>        string[][] GanttRunNew            [1,Box]                                                                        new 6.1; upd 7.0.

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 a user while adding the boxes.

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.

 

<C><cell>        string[][] GanttRunNewStart           [1,Box]                                                            new 6.1; upd 7.0.

Setting GanttRunNew when adding new box to the empty run, by dragging empty space.

It can contain also some start or end box.

For more information see GanttRunNew.

 

<C><cell>        string[][] GanttRunTypes       [ ]                                                                                            new 6.1       .

List of predefined types of the boxes to select from popup menu, it has the same format as GanttRun except there is the type name (shown in menu) instead of width as the first item and no start/end items

The empty values are ignored.

Used to let a user to change the type and class of clicked box from popup menu

For example: “type1,,,Red;type2,,,Blue;type3,solid,xxx,White”

 

<C> <cell>       string[]  GanttRunError          [ “Sort” ]                                                                      new 6.2; chg 7.0.

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 overflowed boxes will be merged to one (the first box will be resized to the width 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.

 

API event         bool      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 acceptnew 6.1; upd 8.0.

Called during dragging and also when the dragged run box(es) is dropped. 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 run 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.

src is parsed run that is dragged – two dimensional array of the dragged 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.

Return false to suppress drop, true to permit drop or null to use actual accept state.

 

Run API

 

API method     object   GetGanttRun   (TRow row, string col)                                                             new 6.1; chg 7.0.

Returns parsed GanttRun value for given Gantt cell.

Returned object is two dimensional array with the parsed boxes in format: [[width,type,text,class,tip,id,group], [width,type,text,class,tip,id,group], ... ]

If the boxes are not joined, every even item is Empty type box.

The width (first item) is in pixels milliseconds and without excluded parts. The type (second item) is always set. In 7.0 the width 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.

 

API method     object   SetGanttRun   (TRow row, string col, object run)                                            new 6.1; chg 7.0.

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!

In 7.0 the width units were changed from pixels to milliseconds.

 

API method     object   GetGanttRunBox    (TRow row, string col, int index) or (TRow row, string col, string id, string group=null)         new 7.0; upd 8.1.

Returns given box from the Gantt Run cell. Returns null if there is no such box.

The cell 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 GanttEndLast value

                int Length – 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, string State – attributes set for the box

                TRow Row, string Col – parameters given to the function

                (new 7.1) object[] Data – raw box data array (always starting by Width) for access also custom box attributes

To get a box on given position in pixels, use GetGanttXY and call GetGanttRunBox with the RunIndex returned in object by GetGanttXY.

 

API method     int        SetGanttRunBox     (object box, string adjust, bool test = 0)                        new 7.0; upd 8.0.

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.

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 Length attributes.

(Since 8.0) For test = 1 does not modify the run, just tests possibility of the change due adjust.

 

API method     bool      AddGanttRunBox   (object box, string adjust, string id=null, string group=null, bool test = 0)         new 7.0; chg 8.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.

 

API method     bool      DelGanttRunBox     (object box)                                                                             new 7.0       .

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.

Remember, if you are deleting more boxes found by FindGanttRunBoxes, you must iterate the array from end, to not break down the box indexes!

 

API method     object   ScrollToGanttRunBox    (object box, int type = 0)                                               new 7.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 on the left, 2 to show the box centered.

 

API method     object   GetGanttRunBoxTag       (object box)                                                                 new 7.0       .

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.

 

API method     object[] FindGanttRunBoxes        (object box, int type = 0)                                              new 7.0       .

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.

Only these attributes are searched for: Id, Group, Type, Text, Class and Tip.

If the box contains Row property, searches only within this row.

type&1 = 1 – without not expanded children, type&2 = 2 – only visible 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’)

 

API event         bool      OnGanttRunBoxChanged       (TGrid grid, object box, object old)                   new 7.0       .

Called after change in any Run box, before the changes are displayed.

It is called only when set GanttRunStates=”1”. It is called only for box with Id set.

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.

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.

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.

 

API event         bool      OnGanttRunBoxNew       (TGrid grid, object box, bool copy)                                new 7.0       .

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.

 

Run actions

 

<Actions>                    MoveGanttRun         Attached to OnDragGantt, cannot be attached anywhere else    new 7.0       .

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.

 

<Actions>                    ResizeGanttRun      Attached to OnDragGantt, cannot be attached anywhere else    new 7.0       .

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.

 

<Actions>                    CreateGanttRun       Attached to OnDragGantt, cannot be attached anywhere else    new 7.0       .

Creates new run box by mouse dragging according to GanttRunNew, GanttRunResize and GanttRunAdjust settings.

Fails, if run box cannot be created here

 

<Actions>                    DeleteGanttRun                   Not attached to any event                                             new 6.1       .

Deletes one run box under mouse cursor

It fails if there is no run box under mouse cursor.

 

<Actions>                    DeleteGanttRunGroup   Not attached to any event                                             new 7.0       .

Deletes all boxes in actual row that have the same Group value as the box under mouse cursor

 

<Actions>                    DeleteGanttRunGroupAll         Not attached to any event                                 new 7.0       .

Deletes all boxes in the whole grid that have the same Group value as the box under mouse cursor

 

<Actions>                    DeleteGanttRunAll ...F    Not attached to any event                                             new 7.0       .

Deletes all boxes in the whole grid that have the same Group value as the box under mouse cursor

 

<Actions>                    EditGanttRun                          Attached to OnDblClickGantt event                             new 6.1       .

Lets a user to edit text shown on the run box under mouse cursor.

 

<Actions>                    EditGanttRunTip                  Not attached to any event                                            new 6.1       .

Lets a user to edit text shown as tooltip for the run box under mouse cursor.

 

<Actions>                    ChooseGanttRunType   Not attached to any event                                             new 6.1       .

Lets a user to choose type of the run box under mouse cursor. The possible run types are defined by GanttRunTypes.

 

<Actions>                    ChooseGanttRunGroupType           Not attached to any event                     new 7.0       .

Lets a user to choose type of all boxes in the actual row with the same Group value as box under mouse cursor. The possible run types are defined by GanttRunTypes.

 

<Actions>                    ChooseGanttRunGroupAllType     Not attached to any event                     new 7.0       .

Lets a user to choose type of all boxes in the whole grid with the same Group value as box under mouse cursor. The possible run types are defined by GanttRunTypes.

 

<Actions>                    SetGanttRunPercent                   Attached to OnCtrlRightClickGantt event         new 7.0       .

Changes % of completed to position under mouse cursor.

It fails if mouse is not above Run bar.

 

<Actions>                    EditGanttRunPercent                  Attached to OnShiftRightClickGantt event       new 7.0       .

Lets a user to edit percentage completion of the run set by GanttRunComplete.

 

<Actions>                    EditGanttRunText                         Not attached to any event                                 new 7.0       .

Lets a user to edit the text for whole task in GanttRunText

 

<Actions>                    NewGanttRunMilestone Attached to OnDblClickGantt event                  new 7.0 .

Adds new Run box with zero width and type Milestone. There can be more milestones defined by Run in one cell.

 

<Actions>                    NewGanttRunStop             Attached to OnDblClickGantt event                  new 7.0 .

Adds new Run box with zero width and type Stop (not movable milestone). There can be more milestones defined by Run in one cell.

 

Run formulas

 

 

formula            int        ganttrunmaxend     (string ganttcol)                                                                       new 6.1       .

Calculates maximal end date (in milliseconds) of all child Runs.

Used to get Run range of child Runs and show it as Main Bar.

ganttcol – column showing the Gantt chart, it should contain the Run bars.

Example: <I Calculated="1" CalcOrder="GGanttStart,GGanttEnd" GGanttStartFormula="ganttrunminstart('G')" GGanttEndFormula="ganttrunmaxend('G')"/>

 

formula            int        ganttrunend    (string ganttcol)                                                                                   new 6.2       .

Calculates end date (in milliseconds) of one Run.

ganttcol – column showing the Gantt chart, it should contain the Run bars.

 

formula            int        ganttrunminstart     (string ganttcol)                                                                       new 6.2       .

Calculates minimal start date (in milliseconds) of all child Runs.

Used to get Run range of child Runs and show it as Main Bar.

ganttcol – column showing the Gantt chart, it should contain the Run bars.

Example: <I Calculated="1" CalcOrder="GGanttStart,GGanttEnd" GGanttStartFormula="ganttrunminstart('G')" GGanttEndFormula="ganttrunmaxend('G')"/>

 

formula            int        ganttrunstart (string ganttcol)                                                                                   new 6.2       .

Calculates start date (in milliseconds) of one Run.

ganttcol – column showing the Gantt chart, it should contain the Run bars.

 

formula            int        ganttrunduration     (string ganttcol)                                                                       new 7.0       .

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.