constants ItemBarPropertyEnum
The ItemBarPropertyEnum type specifies a property related to a bar inside an item. Use the ItemBar property to retrieve or sets a value for bars in the item. The AllowCellValueToItemBar property allows the cells to display properties of the bars. The ShowLinksColor property specifies the color for links that starts or ends on selected bars. The ShowLinksStyle property specifies the width to show the links when the link starts from selected bar, ends on selected bar, or when it is not related to any of selected bars. The SelBarColor property specifies the color to display the selected bars.

The ItemBarPropertyEnum type  supports the following values:

NameValueDescription
exBarName0 Retrieves or sets a value that indicates the name of the bar. The name of the bar does not indicate the bar's caption as exBarCaption property. The exBarName indicates a string such as "Task", "Progress", "Split", or any other predefined type of bar using the Add method.  The BarName parameter of the AddBar method indicates the name of the bar to be added to an item. Use the Add method to add new type of bars to your chart. Use the exBarCaption or exBarExtraCaption to associate a caption to be displayed on the current bar. Use the exBarToolTip to assign a tooltip to a bar. Use the exBarStart and exBarEnd/exBarEndInclusive to specify the start and end points of the bar. 

(String expression)

exBarStart1 Retrieves or sets a value that indicates the starting date-time of the bar. The DateStart parameter of the AddBar method indicates the starting date-time of the bar being added.  The exBarStart property can be a DATE or a string expression that defines the starting date-time of the bar. Use the exBarMove, exBarMoveStart or exBarDuration to move or resize programmatically the bar. Use the exBarStartPrev property to get the starting date-time before resizing the bar. You can call the AddBar method with the new coordinates, same item and key, to change at once the starting / ending date-time of an existing bar. Use the ShowEmptyBars property to show the bars, even if the start and end dates are identical. The exBarStartStr property gets a value that indicates the start of the bar, as a string of 'MM/dd/yyyy HH:mm:ss' format

(Date expression)

exBarEnd2 Retrieves or sets a value that indicates the ending date-time of the bar. The DateEnd parameter of the AddBar method indicates the ending date-time of the bar being added. The exBarEnd property can be a DATE or a string expression that defines the ending date-time of the bar. Use the exBarMove, exBarMoveEnd or exBarDuration to move or resize programmatically the bar. Use the exBarEndPrev property to get the ending date before resizing the bar. You can call the AddBar method with the new coordinates, same item and key, to change at once the starting / ending date-time of an existing bar. Use the ShowEmptyBars property to show the bars, even if the start and end dates are identical. The exBarEndStr property gets a value that indicates the end of the bar, as a string of 'MM/dd/yyyy HH:mm:ss' format

You can use the exBarEndInclusive to display exBarEnd - 1 when associate a cell with a bar, using the AllowCellValueToItemBar property, so the ending point displayed on the list section is one day less. Changing the exBarEnd value may change the exBarEndInclusive value, or reverse. For instance, a a task bar from 1/1/2001 to 1/3/2001 shows two days, the exBarEnd displays 1/3/2001, while the exBarEndInclusive displays 1/2/2001.

(Date expression)

exBarCaption3 Retrieves or sets a value that indicates the caption being assigned to the bar. The Text parameter of the AddBar method indicates the caption of the bar. Use the exBarHAlignCaption and exBarVAlignCaption to specify the alignment of the bar's caption. Use the exBarExtraCaption option to specify additional labels or captions for the bar. Use the Add method to associate a note with a bar. You can use the <img> HTML tag to add icons or custom size pictures to your bar. The exBarShowCaption hides the bar's caption.

This option supports built-in HTML format including the <%=formula%> tag. The <%=formula%> tag indicates the result of the giving formula. The formula supports value formatting

The formula supports the following keywords:

  • %0, %1, %2, ...{any} specifies the value of the cell in the column with the index 0, 1 2, ... The CellValue property defines the cell's value. For example, "%0 format ``" formats the value in the cell at index 0 using the current regional settings, while "int(%1)" converts the value in the cell at index 1 to an integer.
  • %C0, %C1, %C2, ...{string} specifies the caption of the cell, or the string the cell displays in the column with the index 0, 1 2, ... The CellCaption property gets the cell's formatted caption. The cell's displayed string may differ from its actual value. For example, if a cell displays HTML content, %0 returns the HTML format including the tags, while %C0 returns the cell's content as a plain string without HTML tags. For instance, "upper(%C1)" converts the caption of the cell at index 1 to uppercase, while "%C0 left 2" returns the leftmost two characters of the caption in the cell at index 0.
  • %CD0, %CD1, %CD2, ...{any} specifies the cell's extra data in the column with the index 0, 1 2, ... The CellData property associates any extra/user data to a cell. For example, "%CD0 = your user data" specifies all cells in the column with index 0 whose CellData property is equal to your user data.
  • %CS0, %CS1, %CS2, ...{number} specifies the cell's state in the column with the index 0, 1 2, ... The CellState property defines the state of a cell, indicating whether it is checked or unchecked. For example, "%CS0" identifies all checked items in the column with index 0, while "not %CS1" identifies all unchecked items in the column with index 1.
  • %CT0, %CT1, %CT2, ... {boolean} returns true if the cell displays a total field; otherwise, it returns false. The exTotalField / exTotalColumn flag specifies whether the cell displays a total field. For instance, "%CT1" refers to all cells in the second column that display totals, while "not %CT1" refers to all cells in the second column that do not display totals.
  • %CE0, %CE1, %CE2, ... {boolean} returns true if the cell is editable; otherwise, it returns false.. For example, "%CE0" refers to all editable cells in the first column, while "not %CE1" refers to all cells in the second column that are read-only.
  • %CC0, %CC1, %CC2, ... {number} retrieve the number of child items (this keyword consistently returns identical results for all cells since it pertains to the item that hosts each cell). The ChildCount property returns the number of child items. For example, "%CC0" identifies all parent items, while "%CC0 = 0" identifies all leaf items.
  • %CX0, %CX1, %CX2, ... {boolean} returns true if the item hosting the cell is expanded, or false if it is collapsed (this keyword consistently returns identical results for all cells since it pertains to the item that hosts each cell). The ExpandItem property specifically indicates whether the item is expanded or collapsed. For example, "%CX0" refers to all expanded items, while "not %CX0" identifies all collapsed items

For instance the Items.ItemBar(exBarCaption) = "<b><%=%9 + '/' + %C0%></b><br>Duration: <%=(%2-%1)%><br>Working: <%=%258%><br>Progress: <%=round(100*%12)+'%'%>" defines the bar's caption as in the following screen shot:

 

The <%=formula%> tag allows you to specify custom HTML format for caption, tooltip or bar's legend based on the properties(%) and the cells in the owner item (%C). Newer versions, allow you to specify additional captions to the same bar using the exBarExtraCaption option.

This property/method supports predefined constants and operators/functions as described here.

(HTML String expression)

exBarHAlignCaption4 Retrieves or sets a value that indicates the horizontal alignment / clipping of the caption inside / outside the bar. Use the exBarHAlignCaption property to align horizontally the caption being displayed between exBarStart and exBarEnd. The exBarCaptionHOffset / exBarCaptionVOffset specifies the horizontal/vertical offset of the bar's caption relative to its default position.

Use the exBarHAlignCaption property to clip the bar's caption to bar's client area as described bellow.

If the exBarHAlignCaption property is:

  • 0,1 or 2 the caption is not clipped and it is aligned to the left, center or right side of the bar ( no clip ).
  • 3, 4 or 5 the caption of the bar gets clipped to the bar's client area, else the caption is aligned to the left, center or right side of the bar ( clip, inside ).
  • 6, 7 or 8 the bar's caption is hidden if its size is less or equal with MinUnitWidth property, else if it does not fit the bar's client are, gets clipped or else fully aligned to left, center or right side of the bar. ( hide if min, clip if not fit, inside ).
  • 9, 10 or 11 the bar's caption is hidden if it does not fit entirely into the bar's client area, else it is fully displayed aligned to the left, center or right side of the bar. ( hide if not fit, no clip, inside ).
  • 12, 13 or 13 the bar's caption is displayed inside of the bar's client area if it fits entirely, else it is displayed outside of the bar aligned to the left, center or right. ( no clip, inside, outside ).
  • 16, 17, 18, the bar's caption is displayed outside of the bar to the left or to the right. ( no clip, outside ). 

Also, the field supports the following flag (OR combination with any other value):

  • 32 (0x20), which indicates that the bar's caption fits the bar and view (that bar's caption is aligned relative to the horizontal-intersection of the bar with the view) (for instance, 33 {number}, (1 + 32) the item-bar's caption is always shown within the center (horizontally) of item-bar intersected with the current view)

By default, the exBarHAlignCaption is CenterAlignment (1, no clip, center )

(AlignmentEnum expression)

exBarVAlignCaption5 Retrieves or sets a value that indicates the vertical alignment of the caption inside the bar. Use the exBarHAlignCaption property to align vertically the caption being displayed between exBarStart and exBarEnd. If the exBarVAlignCaption property includes the VAlignmentEnum.exVOutside the caption is displayed outside of the bar at the top or bottom side of the bar. For instance, if the exBarVAlignCaption property is VAlignmentEnum.exTop OR VAlignmentEnum.exVOutside, the caption is displayed outside of the bar in the top side of the bar. If the exBarVAlignCaption property is VAlignmentEnum.exBottom OR VAlignmentEnum.exVOutside, the caption is displayed outside of the bar in the bottom side of the bar. By default, the exBarVAlignCaption is exMiddle. 

(VAlignmentEnum expression)

exBarToolTip6 Retrieves or sets a value that indicates the tooltip being shown when the cursor hovers the bar. The property supports built-in HTML format. Use the exBarToolTip property to assign a tooltip to a bar or to a text in the chart's area. Use the ShowToolTip method to show a tooltip at runtime for different parts of the chart. The Tooltip(0, -2, , , , , ) event occurs once the bar's tooltip (exBarToolTip) is about to be shown (-2 if the mouse pointer hovers the bars of the chart).

This option supports built-in HTML format including the <%=formula%> tag. The <%=formula%> tag indicates the result of the giving formula. The formula supports value formatting

The formula supports the following keywords:

  • %0, %1, %2, ...{any} specifies the value of the cell in the column with the index 0, 1 2, ... The CellValue property defines the cell's value. For example, "%0 format ``" formats the value in the cell at index 0 using the current regional settings, while "int(%1)" converts the value in the cell at index 1 to an integer.
  • %C0, %C1, %C2, ...{string} specifies the caption of the cell, or the string the cell displays in the column with the index 0, 1 2, ... The CellCaption property gets the cell's formatted caption. The cell's displayed string may differ from its actual value. For example, if a cell displays HTML content, %0 returns the HTML format including the tags, while %C0 returns the cell's content as a plain string without HTML tags. For instance, "upper(%C1)" converts the caption of the cell at index 1 to uppercase, while "%C0 left 2" returns the leftmost two characters of the caption in the cell at index 0.
  • %CD0, %CD1, %CD2, ...{any} specifies the cell's extra data in the column with the index 0, 1 2, ... The CellData property associates any extra/user data to a cell. For example, "%CD0 = your user data" specifies all cells in the column with index 0 whose CellData property is equal to your user data.
  • %CS0, %CS1, %CS2, ...{number} specifies the cell's state in the column with the index 0, 1 2, ... The CellState property defines the state of a cell, indicating whether it is checked or unchecked. For example, "%CS0" identifies all checked items in the column with index 0, while "not %CS1" identifies all unchecked items in the column with index 1.
  • %CT0, %CT1, %CT2, ... {boolean} returns true if the cell displays a total field; otherwise, it returns false. The exTotalField / exTotalColumn flag specifies whether the cell displays a total field. For instance, "%CT1" refers to all cells in the second column that display totals, while "not %CT1" refers to all cells in the second column that do not display totals.
  • %CE0, %CE1, %CE2, ... {boolean} returns true if the cell is editable; otherwise, it returns false.. For example, "%CE0" refers to all editable cells in the first column, while "not %CE1" refers to all cells in the second column that are read-only.
  • %CC0, %CC1, %CC2, ... {number} retrieve the number of child items (this keyword consistently returns identical results for all cells since it pertains to the item that hosts each cell). The ChildCount property returns the number of child items. For example, "%CC0" identifies all parent items, while "%CC0 = 0" identifies all leaf items.
  • %CX0, %CX1, %CX2, ... {boolean} returns true if the item hosting the cell is expanded, or false if it is collapsed (this keyword consistently returns identical results for all cells since it pertains to the item that hosts each cell). The ExpandItem property specifically indicates whether the item is expanded or collapsed. For example, "%CX0" refers to all expanded items, while "not %CX0" identifies all collapsed items

For instance the Items.ItemBar(exBarToolTip) = "<b><%=%9 + '/' + %C0%></b><br>Duration: <%=(%2-%1)%><br>Working: <%=%258%><br>Progress: <%=round(100*%12)+'%'%>" defines the bar's tooltip to show as in the following screen shot:

The <%=formula%> tag allows you to specify custom HTML format for caption or bar's tooltip based on the properties(%) and the cells in the owner item (%C). 

(HTML String expression)

exBarBackColor7 Retrieves or sets a value that indicates the background color for the area being occupied by the bar. Color expression. This option has effect only if the exBarBackColor property is not zero. The last 7 bits in the high significant byte of the color indicates the identifier of the skin being used. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the background's part. The exSummaryBarBackColor property specifies the background color for the portion occupied by the bar while it is hosted by a summary bar, while the exBarColor property specifies the bar's color.  

(Color expression)

exBarForeColor8 Retrieves or sets a value that indicates the foreground color for the caption of the bar. Color expression. This option has effect only if the exBarBackColor property is not zero. 

(Color expression)

exBarKey9 Specifies key of the bar. The Key parameter of the AddBar method indicates the key of the bar. 

(Variant expression)

exBarCanResize10 Specifies whether the user can resize the bar. Use the BarsAllowSizing property to specify whether the control supports moving or resizing the bars. 
  • If the exBarCanResize is 0/False, the bar can not be resized. 
  • If the exBarCanResize is -1/True, the bar can be resized on both sides. 
  • If the exBarCanResize is 1, the bar can be resized on left side, and can not be resized on right. 
  • If the exBarCanResize is 2, the bar can be resized on right side, and can not be resized on left. 

The exBarSelectable specifies whether a bar is fixed to its position, in other words if it can be selected or not. 

(Boolean/Long expression)

exBarCanMove11 Specifies whether the user can move the bar. Use the BarsAllowSizing property to specify whether the control supports moving or resizing the bars. Use the exBarCanMoveToAnother option to specify whether the user can move a bar from one item to another by drag and drop. The exBarSelectable specifies whether the bar can be selected at runtime. 

(Boolean expression)

exBarPercent12 Specifies the percent from the original bar where the progress bar is displayed. This float value should be between 0 and 1 ( 1 means 100% ). You can use also the exBarpercent100 to specify long expression value from 0 to 100. Use the Add("A%B") to add a combination of two bars, so the exBarPercent value specifies the percent from the bar A to be displayed as bar B. For instance, the Add("Task%Progress") adds a combination of Task and Progress bars, so the Task shape is displayed on the full bar, and the Progress shape is displayed only on the portion determined by the exBarPercent value. When you resize the original bar (A), the inside bar (B) is shown proportionally. Use the exBarShowPercentCaption option to show the percent value as caption on the bar. Use the exBarPercentCaptionFormat property to define the format of the percent value being displayed as text. Use the exBarAlignmentPercentCaption property to specify the alignment of the percent on the bar. The BarResize event is fired when the exBarPercent value is changed. You can use the exBarPercent100 option to work with integer values from 0 to 100 for specifying the bar's percent.  The 0 value corresponds to the exBarStart, while 1 corresponds to the exBarEnd, so the formula Items.ItemBar(exBarStart) + (Items.ItemBar(exBarEnd)-Items.ItemBar(exBarStart))*Items.ItemBar(exBarPercent) gives exactly the date time where progress bar is in the chart.  

(Float expression, between 0 and 1, by default it is 0)

exBarPercentCaptionFormat13 Specifies the HTML format to be displayed as percent. The percent is displayed on the bar only if the exBarShowPercentCaption option is True. By default, the exBarPercentCaptionFormat property is "<b>%p%</b>" where the %p is the value of the percent ( exBarPercent property ), and it displays the percent as 15%, where exBarPercent is 0.15. The <b> indicates that the text is bolded. 

(String expression)

exBarShowPercentCaption14 Specifies whether the percent is displayed as caption on the bar. By default, the exBarShowPercentCaption property is False, which means that the percent value is not shown. Use the exBarPercent property to specify the value of the percent. Use the exBarPercentCaptionFormat property to define the format of the percent being displayed on the bar. Use the exBarAlignPercentCaption property to indicates the alignment of the percent in the bar. 

(Boolean expression)

exBarAlignPercentCaption15 Specifies the horizontal alignment of the percent caption on the bar. Use the exBarVAlignPercent option to specify the vertical alignment of the percent bar relative to the owner bar.

If the exBarAlignPercentCaption property is:

  • 0, 1 or 2 the percent caption is not clipped and it is aligned to the left, center or right side of the progress bar ( no clip )
  • 3, 4 or 5 the percent caption of the progress bar gets clipped to the progress bar's client area, else the percent caption is aligned to the left, center or right side of the progress bar ( clip, inside ).
  • 6, 7 or 8 the percent caption of the progress bar is hidden if its size is less or equal with MinUnitWidth property, else if it does not fit the progress bar's client area, gets clipped or else fully aligned to left, center or right side of the progress bar. ( hide if min, clip if not fit, inside ).
  • 9, 10 or 11 the percent caption of the progress bar is hidden if it does not fit entirely into the progress bar's client area, else it is fully displayed aligned to the left, center or right side of the progress bar. ( hide if not fit, no clip, inside ).
  • 12, 13 or 14 the percent caption of the progress bar is displayed inside of the progress bar's client area if it fits entirely, else it is displayed outside of the progress bar aligned to the left, center or right. ( no clip, inside, outside ).
  • 16, 17 or 18, the percent caption of the progress bar is displayed outside of the progress bar to the left or to the right ( no clip, outside ). 

By default, the exBarAlignPercentCaption is RightAlignment (2, no clip, right ). 

(AlignmentEnum expression)

exBarCanResizePercent16 Specifies whether the user can resize the percent at runtime. By default, the exBarCanResizePercent is True. Here's how the user can resize the percent value at runtime. Move the mouse to the last portion of the percent, so the Percent cursor is shown. Click and drag the bar to a new position, so the exBarPercent value is defined proportionally by the position of the cursor in the original bar. The BarResize event is fired when the user changes the percent value at runtime. 

(Boolean expression)

exBarData17 Associates an extra data to a bar. Use this property to assign your extra data to any bar in the item.  

(Variant expression)

exBarOffset18 Specifies the vertical offset where the bar is shown. By default, this property is 0 and the bar is shown in the center. Use this property to show up or down the bar. Use the OverlaidType property to specify how two or more bars that cross over are displayed.  

(Long expression)

exBarTransparent19 Specifies the percent of the transparency to display the bar, or to show or hide a bar and its links. By default, this property is 0, which means that the bar is opaque. If the property is 50, the bar is shown semi-transparent.  Use the ShowTransparentBars property to draw all bars using a semi- transparent color. Use the OverlaidType property to specify how two or more bars that cross over are displayed. If the exBarTransparent property is 100, the bar is hidden, along with its links if any. 

(Long expression between 0-opaque, 50-semi-transparent100-hidden)

exBarKeepWorkingCount20 By default, the exBarKeepWorkingCount property is False. Specifies a value that indicates whether the bar keeps constant the working units, while the user moves the bar to a new position. The NonworkingDays property specifies the non-working days. Use the AddNonworkingDate property to add custom non-working days. Use the NonworkingHours property to specify the non-working hours. The exBarWorkingCount option specifies the number of working units being unchanged. This option is ignored for summary bars or exBarTreatAsNonworking bars. We are not recommending using the ShowEmptyBars property on a non-zero value, if using bars with the ItemBar(exBarKeepWorkingCount) property on True.

(Boolean expression)

exBarEffort21 (exBarEffort/21) By default, the exBarEffort is 1 ( double expression ). Specifies the effort to execute an unit in the task. This property has effect only when the bar is represented in the chart's histogram. Use the HistogramVisible property to specify whether the control shows the chart's histogram. Changes the HistogramPattern or/and HistogramColor property, else no bars will be shown in the histogram.

The representation of the exBarEffort value depends on the HistogramType property as follow:

  • exHistOverload, the exBarEffort value represents the effort to execute an unit in the bar. For instance, if the bars display activities the exBarEffort value may represent the number of workers for each activity so the overload histogram displays the total number of workers on the activity.

The following screen shot shows the exHistOverload histogram when exBarEffort property is 1 ( by default ):

The following screen shot shows the exHistOverload histogram when exBarEffort property is different for bars as seen in the columns section: 

 

  • exHistOverAllocation, the exBarEffort value defines the workload to show in the exHistOverAllocation histogram. The work-load for a task is computed as exBarEffort / length of the bar. The work-load for the task is the work effor / task duration. (i.e. If  item.exBarEffort = 1 and gantt bar length is 10 days, then the work-load = 0.1 or 10%). The histogram- graph shows the sum of the work-loads (the work-load of each task item is added, unit by unit). 

The following screen shot shows the exHistOverallocation histogram when exBarEffort property is 1 ( by default ):

The following screen shot shows the exHistOverallocation histogram when exBarEffort property is different for bars as seen in the columns section: 

Starting from version 14.0, the exBarEffort could be:

  • a numeric value which it is applied for all units in the task
  • a string that indicates the expression/formula to get the effort of the bar to be represented on the chart's histogram. The value keyword indicates the date-time being queried, the start and end keywords specify the starting and ending points of the bar as indicated by exBarStart and exBarEnd fields in the ItemBar property. For instance, the exBarEffort on "weekday(value) in (0,6) ? 0 : 2", means that that effort to do the job is 2 for any day in the task, excepts the Sundays(0) and Saturdays(6) (weekend)

Here's a few samples of using the exBarEffort:

  • 2.5 means that effort to do the job is 2.5 for any day in the task
  • 0 means that the task has no representation on the chart's histogram
  • "weekday(value) in (0,6) ? 0 : 2", means that that effort to do the job is 2 for any day, excepts the Sundays(0) and Saturdays(6)
  • "weekday(value) = 1 ? 2 : 1" indicates that the effort to do the job is 2 for Mondays(1), else 1
  • "month (value) = 7 ? 1 : 0", indicates that the effort to do the job is 1 for any day in July, and 0 for any other
  • "(month(value)=month(value+1)) ? 1 : 0", indicates that the effort to do the job is 1 for any day, excepts the last day in the month.
  • "int(value-start) ? 1 : 2" indicates that the effort to do the job is 2 for the first day in the task, and 1 for the others.
  • "(int(value-start) and int(end-value) != 0 ) ? 1 : 2" indicates that the effort to do the job is 2 for the first and last days in the task, and 1 for the others.
  • "int(value-start) in (0,1,2) ? 1 : 2" indicates that the effort to do the job is 1 for the first three (0,1,2) days in the task, and 1 for the others.
  • "(int(value-start)+1) mod 2 ? 1 : 0" indicates that the effort to do the job is 1 for the first day, 0 for the second day, 1 for the third day, 0 for the forth day, and so on.

Here's a screen shot of a few exBarEffort samples:

Here's what you can represent with the exBarEffort property:

  • Click here to watch the movie on how you can use expressions on exBarEffort.

The supported keywords are:

  • value which indicates the date-time being queried
  • start and end specify the starting and ending points of the bar as indicated by exBarStart and exBarEnd fields in the ItemBar property.

This property/method supports predefined constants and operators/functions as described here.

(Float expression [or String expression (starting with version 14.0)])

exBarMinStart22 Specifies the minimum value for the starting date of the bar. Use this value to limit bar to move in a specified range. Use the exBarMinDuration and exBarMaxDuration properties to specify the limits for the bar's duration.  

(Date expression)

exBarMaxStart23 Specifies the maximum value for the starting date of the bar. Use this value to limit bar to move in a specified range. Use the exBarMinDuration and exBarMaxDuration properties to specify the limits for the bar's duration.  

(Date expression)

exBarMinEnd24 Specifies the minimum value for the ending date of the bar. Use this value to limit bar to move in a specified range. Use the exBarMinDuration and exBarMaxDuration properties to specify the limits for the bar's duration.  

(Date expression)

exBarMaxEnd25 Specifies the maximum value for the ending date of the bar. Use this value to limit bar to move in a specified range. Use the exBarMinDuration and exBarMaxDuration properties to specify the limits for the bar's duration.  

(Date expression)

exBarShowRange26 Indicates whether the bar shows its range where it can be moved or resized. It indicates a PatternEnum expression that specifies the way to mark the range of the bar, or a skin identifier to be used for showing the range. 

(Boolean expression)

exBarShowRangeTransparent27 Specifies the percent of the transparency to display the range of the bar. By default this property is 0. 

(Long expression, from 0 to 100, where 100 means fully transparent)

exBarCanMoveToAnother28 By default, the bar can NOT be moved from an item to another. Specifies whether the bar can be moved to another item by drag and drop. Use the exBarPercent property to change the parent item of the bar by code. In order to move a bar from one item to another using the drag and drop operations, this option MUST be set on True. The control fires the BarParentChange event just before moving the bar to another item. Use this event to control the items where your bar can be moved. A bar can be moved to another item, ONLY if the second item does not contain a bar with the same key. The exBarKey property specifies the key of the bar. The AutoDrag property indicates what the control does when the user clicks an item and starts dragging it. A Bar can be moved from an item to another, if the new parent item contains no bars with the same key as the dragging one.

(Boolean expression)

exBarSelectable29 Specifies whether the bar can be selected. The exBarCanMove specifies whether a bar can be moved at runtime. The exBarCanResize specifies whether a bar can be resized at runtime. The exBarSelectable specifies whether a bar is fixed to its position. Use a non-selectable bar to add custom non-selectable entries to your chart. 

(Boolean expression)

exBarCanStartLink30 Specifies whether a link can start from this bar. By default, the exBarCanStartLink is True. The exBarCanStartLink option has effect only if the exBarCanBeLinked option is True. You can control enabling or disabling links at runtime using the AllowLink event.   

(Boolean expression)

exBarCanEndLink31 Specifies whether a link can end on this bar. . By default, the exBarCanEndLink is True. The exBarCanEndLink option has effect only if the exBarCanBeLinked option is True. You can control enabling or disabling links at runtime using the AllowLink event. 

(Boolean expression)

exBarCanBeLinked32 Specifies whether the bar can be linked. . By default, the exBarCanBeLinked is True. You can control enabling or disabling links at runtime using the AllowLink event.  ( Boolean expression )
exBarColor33 Specifies the color for a particular bar. If used, it replaces the bar's type color. By default, the exBarColor is 0, which means that the default bar's color is used. The Color property defines the default's bar color.  The Color property defines the color for all bars of the same type. Use the exBarColor to change the color for particular bars. As usual, this option may indicates a skin object to display the bar. If the EBN identifier (last 7 bits in the high significant byte of the color) is not specified(0), but the Color property indicates an EBN object, the exBarColor specifies the color to apply to the EBN object. The exBarOverviewColor option may be used to specify the color within the overview part of the control. The HistogramCumulativeOriginalColorBars property indicates whether the bars that generate the histogram change their original color. If available, you can change the bar's pattern using the exBarPattern option. The ItemBar( exBarHistLegend) property specifies the description to show within the histogram's legend for the bar in the control's histogram ( exKeepOriginalColor only).

(Color expression)

exSummaryBarBackColor34 Specifies the item's background color for child bars owned by the summary bar. The last 7 bits in the high significant byte of the color indicates the identifier of the skin being used. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the background's part. The DefineSummaryBars property defines bars that belongs to a summary bar.

By default, the exSummaryBarBackColor property is 0, which means that it has no effect. 

If the exSummaryBarBackColor property is set to a non- zero value it indicates the background color for the portion of the summary bar as seen in the following screen shot:

The following screen shot shows the bars that belongs to a summary bars using EBN colors and semi-transparent (exSummaryBarBackColorTransparent = 50):

The exBarBackColor property specifies the background color for the portion occupied by the bar, while the exBarColor property specifies the bar's color.  

(Color expression)

exSummaryBarBackColorTransparent35 Specifies the percent of the transparency to display the background of the bars that belongs to a summary bar. By default, the exSummaryBarBackColorTransparent property is 0, which means opaque since 100 means fully transparent, and 50 means semi-transparent. The exSummaryBarBackColorTransparent property has effect only if the exSummaryBarBackColor property is not 0.  

The following screen shot displays the bars that belongs to a summary bar using a semi-transparent color ( so the non-working portion is visible )

(Long expression between 0-opaque, 100-transparent)

exBarMinDuration36 Specifies the minimum duration of the bar in days . By default, the exBarMinDuration property is 0, which means that there is no lower limit, or the length of the bar can be any value. If the exBarMinDuration property is not 0, the duration of the bar must be greater than specified value, or in other words, the bar will not be shown with its duration less than exBarMinDuration value. Use the exBarDuration property to change the bar's duration. (Float expression)
exBarMaxDuration37 Specifies the maximum duration of the bar in days. By default, the exBarMaxDuration property is -1, which means that there is no upper limit, or the length of the bar can be any value. If the exBarMaxDuration property is not -1, the duration of the bar must be less than specified value, or in other words, the bar will not be shown with its duration greater than exBarMaxDuration value. Use the exBarDuration property to change the bar's duration. 

(Float expression)

exBarTreatAsNonworking38 Specifies whether the bar is treated as non-working part of the item. By default, the exBarTreatAsNonworking is False.

This option has effect only if:

  • AllowNonworkingBars property is True.
  • ItemNonworkingUnits property is not empty, and points to a valid expression. The ItemNonworkingUnits property indicates a repetitive expression to determine the parts of the item being non-working. 

In other words, the exBarTreatAsNonworking bars are treated as regular bars if the AllowNonworkingBars property is False, or if ItemNonworkingUnits property is empty 

(Boolean expression)

exBarPercentColor39 Specifies the color to show inside percent bar. The option is valid for bars that displays inside a percent bar. A bar can display a percent bar if it was creates using the Chart.Bars.Add("A%B") syntax. For instance Chart.Bars.Add("Task%Progress") adds a task bar that displays inside a percent bar. 

(Color expression)

exBarNonWorkingColor40 Specifies the color to show non-working parts of the bar. A bar may show different shape, pattern for non-working parts of the bar if it was previously created using the Bars.Add("A:B"). For instance the Bars.Add("Task:Split") adds a a bar that displays the split if it covers a non-working part.  

(Color expression)

exBarOverviewColor41 Specifies the color to show the bar in the overview area. The OverviewVisible property specifies whether the control displays the overview/layout map of bars within the chart.

The color to specify the bar in the overview area is determined as follows:

  • If ItemBar(exBarOverviewColor) property is not 0, the exBarOverviewColor indicates the color to show the bar in the overview area, else
  • If OverviewColor property is not 0, the OverviewColor property indicates the color to show the bar in the overview area, else
  • If the ItemBar(exBarColor) is not 0, the  exBarColor indicates the color to show the bar in the overview area, else
  • The Color property of the Bar indicates the color to show the bar in the overview part of the control.

(The bar is represented into the control's overview only if its determined color is not -1)

(Color expression)

exBarPattern42 By default the exBarPattern option is empty. If the exBarPattern property is empty, the option is ignored. Use the exBarPattern to specify a different pattern to be displayed on the bar in the chart area. The Pattern property of the Bar specifies the pattern to be applied for all bars of the same type. For instance, includes the exPatternFrameShadow in the bar's pattern to show a shadow around the bar. 

(PatternEnum expression)

exBarVAlignPercent43 Specifies the vertical alignment of the percent bar relative to the owner bar. Use the exBarAlignPercentCaption option to align horizontally the caption inside the percent bar. By default, the exBarVAlignCaption is exMiddle.

(VAlignmentEnum expression)

exBarExtraCaption44 Use the exBarExtraCaption property to assign multiple captions to a bar at once. Retrieves or sets a collection of extra captions being assigned to the bar. If a single extra caption is being added, you can use the caption, or if multiple you have to build a safe array of strings. By default, any extra caption is added to the center of the bar. Use the exBarExtraCaptionHAlign to specify the horizontal alignment of the extra caption being added. Use the exBarExtraCaptionHOffset to specify the horizontal offset to move the extra caption relative to its default position. Use the exBarExtraCaptionVAlign to specify the vertical alignment of the extra caption being added. Use the exBarExtraCaptionVOffset to specify the vertical offset to move the extra caption relative to its default position. The /NET assembly provides, the get_BarExtraCaption and set_BarExtraCaption properties to get and set the extra captions. Use the Add method to associate a note with a bar. You can use the <img> HTML tag to add icons or custom size pictures to your bar. The exBarShowExtraCaption hides the bar's extra caption.

This option supports built-inHTML format including the <%=formula%> tag. The <%=formula%> tag indicates the result of the giving formula. The formula supports value formatting. Inside the formula the %0, %1, ... indicates the value of corresponding property of the bar, such as %0 specifies the exBarName, %1 exBarStart, and so on. The %C0, %C1, ... indicates the cell's values. A bar belongs to an item which displays a cell for each column. The %CIndex indicates the cell on the column with the specified index. For instance, the %C0 indicates the cell on the first column, %C1 specifies the cell in the second column, and so on.

For instance the Items.ItemBar(exBarCaption) = "Duration of <b><%=%9 + ' of ' + %C0%></b> is <%=(%2-%1)%> days" specifies that the bar's caption shows the duration of the bar such as : "Duration of K1 of Task1 is 3 days." where the %9 indicates the exBarKey, while %2 is exBarEnd and %1 is exBarStart. Using the <%=formula%> html TAG, you will be able to format the bar's caption to display its content based on the current properties of the bar, without having to redefine the caption once a bar is updated.

The following VB sample adds a single extra caption in the right side of the bar:

With G2antt1.Items
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaption) = "right"
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionHAlign) = RightAlignment Or exHOutside
End With

The following VB sample adds two extra captions, one in the left side, and one to the right side:

With G2antt1.Items
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaption) = Array("left", "right")
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionHAlign) = Array(LeftAlignment Or exHOutside, RightAlignment Or exHOutside)
End With

When retrieving the exBarExtraCaption returns the extra caption, if there is only, one, else it returns a safe arrea ( collection ) of string that indicates the extra captions of the bar.

The following VB/NET sample adds a single extra caption in the right side of the bar:

With Exg2antt1.Items
    .set_BarExtraCaption(.FocusItem, .get_FirstItemBar(.FocusItem), "right")
    .set_BarExtraCaptionHAlign(.FocusItem, .get_FirstItemBar(.FocusItem), exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment Or exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside)
End With

The following VB/NET sample adds two extra captions, one in the left side, and one to the right side:

With Exg2antt1.Items
    .set_BarExtraCaption(.FocusItem, .get_FirstItemBar(.FocusItem), New String() {"left", "right"})
    .set_BarExtraCaptionHAlign(.FocusItem, .get_FirstItemBar(.FocusItem), _
    New exontrol.EXG2ANTTLib.AlignmentEnum() {exontrol.EXG2ANTTLib.AlignmentEnum.LeftAlignment Or exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside, _
        exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment Or exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside})
End With

The following C# sample adds a single extra caption in the right side of the bar:

exontrol.EXG2ANTTLib.Items items = exg2antt1.Items;
items.set_BarExtraCaption(items.FocusItem, items.get_FirstItemBar(items.FocusItem), "right");
items.set_BarExtraCaptionHAlign(items.FocusItem, items.get_FirstItemBar(items.FocusItem), exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment | exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside);

The following C# sample adds two extra captions, one in the left side, and one to the right side:

exontrol.EXG2ANTTLib.Items items = exg2antt1.Items;
items.set_BarExtraCaption(items.FocusItem, items.get_FirstItemBar(items.FocusItem), 
    new string[2] { "left", "right" });
items.set_BarExtraCaptionHAlign(items.FocusItem, items.get_FirstItemBar(items.FocusItem), 
    new exontrol.EXG2ANTTLib.AlignmentEnum[2] { exontrol.EXG2ANTTLib.AlignmentEnum.LeftAlignment | exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside, 
        exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment | exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside });

The following picture shows a bar with its default caption and two other additional captions. 

(HTML string expression or safe array of HTML string expressions)

exBarExtraCaptionHAlign45 Specifies the horizontal alignment for each extra caption assigned to the bar. 

If the exBarExtraCaptionHAlign property is:

  • 0,1 or 2 the caption is not clipped and it is aligned to the left, center or right side of the bar ( no clip ).
  • 3, 4 or 5 the caption of the bar gets clipped to the bar's client area, else the caption is aligned to the left, center or right side of the bar ( clip, inside ).
  • 6, 7 or 8 the bar's caption is hidden if its size is less or equal with MinUnitWidth property, else if it does not fit the bar's client are, gets clipped or else fully aligned to left, center or right side of the bar. ( hide if min, clip if not fit, inside ).
  • 9, 10 or 11 the bar's caption is hidden if it does not fit entirely into the bar's client area, else it is fully displayed aligned to the left, center or right side of the bar. ( hide if not fit, no clip, inside ).
  • 12, 13 or 13 the bar's caption is displayed inside of the bar's client area if it fits entirely, else it is displayed outside of the bar aligned to the left, center or right. ( no clip, inside, outside ).
  • 16, 17, 18, the bar's caption is displayed outside of the bar to the left or to the right. ( no clip, outside ). 

Also, the field supports the following flag (OR combination with any other value):

  • 32 (0x20), which indicates that the bar's caption fits the bar and view (that bar's caption is aligned relative to the horizontal-intersection of the bar with the view) (for instance, 33 {number}, (1 + 32) the item-bar's caption is always shown within the center (horizontally) of item-bar intersected with the current view)

By default, the exBarExtraCaptionHAlign is CenterAlignment (1, no clip, center )

The following VB sample adds a single extra caption in the right side of the bar:

With G2antt1.Items
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaption) = "right"
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionHAlign) = RightAlignment Or exHOutside
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionVAlign) = exBottom Or exVOutside
End With

The following VB sample adds two extra captions, one in the left side, and one to the right side:

With G2antt1.Items
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaption) = Array("left", "right")
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionHAlign) = Array(LeftAlignment Or exHOutside, RightAlignment Or exHOutside)
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionVAlign) = Array(exTop Or exVOutside, exBottom Or exVOutside)
End With

When retrieving the exBarExtraCaption returns the extra caption, if there is only one, else it returns a safe array ( collection ) of string that indicates the extra captions of the bar.

The following VB/NET sample adds a single extra caption in the right side of the bar:

With Exg2antt1.Items
    .set_BarExtraCaption(.FocusItem, .get_FirstItemBar(.FocusItem), "right")
    .set_BarExtraCaptionHAlign(.FocusItem, .get_FirstItemBar(.FocusItem), exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment Or exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside)
    .set_BarExtraCaptionVAlign(.FocusItem, .get_FirstItemBar(.FocusItem), exontrol.EXG2ANTTLib.VAlignmentEnum.exBottom Or exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside)
End With

The following VB/NET sample adds two extra captions, one in the left side, and one to the right side:

With Exg2antt1.Items
    .set_BarExtraCaption(.FocusItem, .get_FirstItemBar(.FocusItem), New String() {"left", "right"})
    .set_BarExtraCaptionHAlign(.FocusItem, .get_FirstItemBar(.FocusItem), _
    New exontrol.EXG2ANTTLib.AlignmentEnum() {exontrol.EXG2ANTTLib.AlignmentEnum.LeftAlignment Or exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside, _
        exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment Or exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside})
    .set_BarExtraCaptionVAlign(.FocusItem, .get_FirstItemBar(.FocusItem), _
    New exontrol.EXG2ANTTLib.VAlignmentEnum() {exontrol.EXG2ANTTLib.VAlignmentEnum.exTop Or exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside, _
        exontrol.EXG2ANTTLib.VAlignmentEnum.exBottom Or exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside})
End With

The following C# sample adds a single extra caption in the right side of the bar:

exontrol.EXG2ANTTLib.Items items = exg2antt1.Items;
items.set_BarExtraCaption(items.FocusItem, items.get_FirstItemBar(items.FocusItem), "right");
items.set_BarExtraCaptionHAlign(items.FocusItem, items.get_FirstItemBar(items.FocusItem), exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment | exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside);
items.set_BarExtraCaptionVAlign(items.FocusItem, items.get_FirstItemBar(items.FocusItem), exontrol.EXG2ANTTLib.VAlignmentEnum.exBottom | exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside);

The following C# sample adds two extra captions, one in the left side, and one to the right side:

exontrol.EXG2ANTTLib.Items items = exg2antt1.Items;
items.set_BarExtraCaption(items.FocusItem, items.get_FirstItemBar(items.FocusItem),
    new string[2] { "left", "right" });
items.set_BarExtraCaptionHAlign(items.FocusItem, items.get_FirstItemBar(items.FocusItem),
    new exontrol.EXG2ANTTLib.AlignmentEnum[2] { exontrol.EXG2ANTTLib.AlignmentEnum.LeftAlignment | exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside, 
exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment | exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside });
items.set_BarExtraCaptionVAlign(items.FocusItem, items.get_FirstItemBar(items.FocusItem),
    new exontrol.EXG2ANTTLib.VAlignmentEnum[2] { exontrol.EXG2ANTTLib.VAlignmentEnum.exTop | exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside, 
exontrol.EXG2ANTTLib.VAlignmentEnum.exBottom | exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside });

( AlignmentEnum expression, or a safe array of AlignmentEnum/long/vt_i4 expression )

exBarExtraCaptionVAlign46 Specifies the vertical alignment for each extra caption assigned to the bar. 

The following VB sample adds a single extra caption in the right side of the bar:

With G2antt1.Items
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaption) = "right"
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionHAlign) = RightAlignment Or exHOutside
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionVAlign) = exBottom Or exVOutside
End With

The following VB sample adds two extra captions, one in the left side, and one to the right side:

With G2antt1.Items
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaption) = Array("left", "right")
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionHAlign) = Array(LeftAlignment Or exHOutside, RightAlignment Or exHOutside)
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionVAlign) = Array(exTop Or exVOutside, exBottom Or exVOutside)
End With

When retrieving the exBarExtraCaption returns the extra caption, if there is only one, else it returns a safe array ( collection ) of string that indicates the extra captions of the bar.

The following VB/NET sample adds a single extra caption in the right side of the bar:

With Exg2antt1.Items
    .set_BarExtraCaption(.FocusItem, .get_FirstItemBar(.FocusItem), "right")
    .set_BarExtraCaptionHAlign(.FocusItem, .get_FirstItemBar(.FocusItem), exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment Or exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside)
    .set_BarExtraCaptionVAlign(.FocusItem, .get_FirstItemBar(.FocusItem), exontrol.EXG2ANTTLib.VAlignmentEnum.exBottom Or exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside)
End With

The following VB/NET sample adds two extra captions, one in the left side, and one to the right side:

With Exg2antt1.Items
    .set_BarExtraCaption(.FocusItem, .get_FirstItemBar(.FocusItem), New String() {"left", "right"})
    .set_BarExtraCaptionHAlign(.FocusItem, .get_FirstItemBar(.FocusItem), _
    New exontrol.EXG2ANTTLib.AlignmentEnum() {exontrol.EXG2ANTTLib.AlignmentEnum.LeftAlignment Or exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside, _
        exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment Or exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside})
    .set_BarExtraCaptionVAlign(.FocusItem, .get_FirstItemBar(.FocusItem), _
    New exontrol.EXG2ANTTLib.VAlignmentEnum() {exontrol.EXG2ANTTLib.VAlignmentEnum.exTop Or exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside, _
        exontrol.EXG2ANTTLib.VAlignmentEnum.exBottom Or exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside})
End With

The following C# sample adds a single extra caption in the right side of the bar:

exontrol.EXG2ANTTLib.Items items = exg2antt1.Items;
items.set_BarExtraCaption(items.FocusItem, items.get_FirstItemBar(items.FocusItem), "right");
items.set_BarExtraCaptionHAlign(items.FocusItem, items.get_FirstItemBar(items.FocusItem), exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment | exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside);
items.set_BarExtraCaptionVAlign(items.FocusItem, items.get_FirstItemBar(items.FocusItem), exontrol.EXG2ANTTLib.VAlignmentEnum.exBottom | exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside);

The following C# sample adds two extra captions, one in the left side, and one to the right side:

exontrol.EXG2ANTTLib.Items items = exg2antt1.Items;
items.set_BarExtraCaption(items.FocusItem, items.get_FirstItemBar(items.FocusItem),
    new string[2] { "left", "right" });
items.set_BarExtraCaptionHAlign(items.FocusItem, items.get_FirstItemBar(items.FocusItem),
    new exontrol.EXG2ANTTLib.AlignmentEnum[2] { exontrol.EXG2ANTTLib.AlignmentEnum.LeftAlignment | exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside, 
exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment | exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside });
items.set_BarExtraCaptionVAlign(items.FocusItem, items.get_FirstItemBar(items.FocusItem),
    new exontrol.EXG2ANTTLib.VAlignmentEnum[2] { exontrol.EXG2ANTTLib.VAlignmentEnum.exTop | exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside, 
exontrol.EXG2ANTTLib.VAlignmentEnum.exBottom | exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside });

( VAlignmentEnum expression, or a safe array of VAlignmentEnum/long/vt_i4 expression)

exBarExtraCaptionHOffset47 Retrieves or sets the offset to move horizontally the extra caption relative to its default position. 

The following VB sample adds a single extra caption in the right side of the bar:

With G2antt1.Items
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaption) = "right"
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionHAlign) = RightAlignment Or exHOutside
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionVAlign) = exBottom Or exVOutside
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionHOffset) = 8
End With

The following VB sample adds two extra captions, one in the left side, and one to the right side:

With G2antt1.Items
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaption) = Array("left", "right")
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionHAlign) = Array(LeftAlignment Or exHOutside, RightAlignment Or exHOutside)
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionVAlign) = Array(exTop Or exVOutside, exBottom Or exVOutside)
    .ItemBar(.FocusItem, .FirstItemBar(.FocusItem), exBarExtraCaptionHOffset) = Array(-8, 8)
End With

When retrieving the exBarExtraCaption returns the extra caption, if there is only one, else it returns a safe array ( collection ) of string that indicates the extra captions of the bar.

The following VB/NET sample adds a single extra caption in the right side of the bar:

With Exg2antt1.Items
    .set_BarExtraCaption(.FocusItem, .get_FirstItemBar(.FocusItem), "right")
    .set_BarExtraCaptionHAlign(.FocusItem, .get_FirstItemBar(.FocusItem), exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment Or exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside)
    .set_BarExtraCaptionVAlign(.FocusItem, .get_FirstItemBar(.FocusItem), exontrol.EXG2ANTTLib.VAlignmentEnum.exBottom Or exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside)
    .set_BarExtraCaptionHOffset(.FocusItem, .get_FirstItemBar(.FocusItem), 8)
End With

The following VB/NET sample adds two extra captions, one in the left side, and one to the right side:

With Exg2antt1.Items
    .set_BarExtraCaption(.FocusItem, .get_FirstItemBar(.FocusItem), New String() {"left", "right"})
    .set_BarExtraCaptionHAlign(.FocusItem, .get_FirstItemBar(.FocusItem), _
    New exontrol.EXG2ANTTLib.AlignmentEnum() {exontrol.EXG2ANTTLib.AlignmentEnum.LeftAlignment Or exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside, _
        exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment Or exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside})
    .set_BarExtraCaptionVAlign(.FocusItem, .get_FirstItemBar(.FocusItem), _
    New exontrol.EXG2ANTTLib.VAlignmentEnum() {exontrol.EXG2ANTTLib.VAlignmentEnum.exTop Or exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside, _
        exontrol.EXG2ANTTLib.VAlignmentEnum.exBottom Or exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside})
    .set_BarExtraCaptionHOffset(.FocusItem, .get_FirstItemBar(.FocusItem), _
                New Integer() {-8, 8})
End With

The following C# sample adds a single extra caption in the right side of the bar:

exontrol.EXG2ANTTLib.Items items = exg2antt1.Items;
items.set_BarExtraCaption(items.FocusItem, items.get_FirstItemBar(items.FocusItem), "right");
items.set_BarExtraCaptionHAlign(items.FocusItem, items.get_FirstItemBar(items.FocusItem), exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment | exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside);
items.set_BarExtraCaptionVAlign(items.FocusItem, items.get_FirstItemBar(items.FocusItem), exontrol.EXG2ANTTLib.VAlignmentEnum.exBottom | exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside);
items.set_BarExtraCaptionHOffset(items.FocusItem, items.get_FirstItemBar(items.FocusItem), 8);

The following C# sample adds two extra captions, one in the left side, and one to the right side:

exontrol.EXG2ANTTLib.Items items = exg2antt1.Items;
items.set_BarExtraCaption(items.FocusItem, items.get_FirstItemBar(items.FocusItem),
    new string[2] { "left", "right" });
items.set_BarExtraCaptionHAlign(items.FocusItem, items.get_FirstItemBar(items.FocusItem),
    new exontrol.EXG2ANTTLib.AlignmentEnum[2] { exontrol.EXG2ANTTLib.AlignmentEnum.LeftAlignment | exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside, 
exontrol.EXG2ANTTLib.AlignmentEnum.RightAlignment | exontrol.EXG2ANTTLib.AlignmentEnum.exHOutside });
items.set_BarExtraCaptionVAlign(items.FocusItem, items.get_FirstItemBar(items.FocusItem),
    new exontrol.EXG2ANTTLib.VAlignmentEnum[2] { exontrol.EXG2ANTTLib.VAlignmentEnum.exTop | exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside, 
exontrol.EXG2ANTTLib.VAlignmentEnum.exBottom | exontrol.EXG2ANTTLib.VAlignmentEnum.exVOutside });
items.set_BarExtraCaptionHOffset(items.FocusItem, items.get_FirstItemBar(items.FocusItem),
    new int[2] { -8, 8 });

(long expression, or a safe array of long/vt_i4 expression)

exBarExtraCaptionVOffset48 Retrieves or sets the offset to move vertically the extra caption relative to its default position. Please check the exBarExtraCaptionHOffset for usage.

(long expression, or a safe array of long/vt_i4 expression)

exBarResources49 This option can be user with the PutRes method. Specifies the list of resources associated to the bar. The exBarResources property (get/set) indicates the resources to be used by the current bar in the Source, as a string expression. The exBarResources property is a string expression that indicate the list of resources ( including its usage, or 100% if missing ). The resources are separated by , ( comma ) character, while the usage is specified as a double expression ( using the . dot character as a decimal separator ).  For instance the "Resource1,Resource2,Resource3" indicates that the bar uses the Resource1,Resource2,Resource3, while "R1,R2[50%],R3[67.89%]" specifies that the bar uses the R1 on 100%, R2 on 50% and R3 on 67.89%. 

You can use the exBarCaption to display the bar's resources using the <%=formula%> format, like in the following VB sample:

With G2antt1.Chart.Bars("Task")
    .Def(EXG2ANTTLibCtl.ItemBarPropertyEnum.exBarCaption) = "<%=%" & EXG2ANTTLibCtl.ItemBarPropertyEnum.exBarResources & "%>"
    .Def(EXG2ANTTLibCtl.ItemBarPropertyEnum.exBarHAlignCaption) = 18
End With

In other words, the sample allows you to display the bar's exBarResources property as shown bellow:

The set exBarResources property could be used in the following format based on the first character as listed: 

  • If the first character is +(plus), the rest of the expression indicates the resources to be assigned to the current bar. For instance, if the current bar has the exBarResources property as "R1,R2" , and we call set exBarResources as "+R3", it means that the R3 is added to the bar's resources, and so the new exBarResources property is "R1,R2,R3".
  • If the first character is -(minus), the rest of the expression indicates the resources to be removed from the current bar. For instance, if the current bar has the exBarResources property as "R1,R2" , and we call set exBarResources as "-R2", it means that the R2 is removed from the bar's resources, and so the new exBarResources property is "R1".
  • If no +,- character, the new expression replaces the exBarResources property. For instance, if the current bar has the exBarResources property as "R1,R2" , and we call set exBarResources as "R3,R4", it means that the new exBarResources property is "R3,R4".

(String expression)

exBarResourceFormat50 This option can be user with the PutRes method. Specifies the format to display the bar's resource. The exBarResourceFormat property (get/set) indicates the format or the expression to be used if you need to display the bar's resource in a different format, in Source, as a string expression. The expression supports the name keyword which indicates the name of the resource, and the percent keyword to get the usage percent a a double expression between 0 and 1. The expression supports all predefined functions listed here. Use the exBarResourcesFormat ( NOT exBarResourceFormat, whith no s ) to get the HTML value of the formatted string using the bar's resources. For instance, let's say we need to display the resource names in bold, and the usage percent in a smaller font and a different foreground color, so the Items.ItemBar(exBarResourceFormat) property could be "`<b>` + name + `</b><font ;5><fgcolor=404040>` + (percent = 1 ? `` : (round(100*percent) format ``) + `%` ) + `</fgcolor></font>`", and so the VB sample could show as:
With G2antt1.Chart.Bars("Task")
    .Def(exBarResourceFormat) = "`<b>` + name + `</b><font ;5><fgcolor=404040>` + (percent = 1 ? `` : (round(100*percent) format ``) + `%` ) + `</fgcolor></font>`"
    .Def(EXG2ANTTLibCtl.ItemBarPropertyEnum.exBarCaption) = "<%=%" & EXG2ANTTLibCtl.ItemBarPropertyEnum.exBarResourcesFormat & "%>"
    .Def(EXG2ANTTLibCtl.ItemBarPropertyEnum.exBarHAlignCaption) = 18
End With

In other words, the sample allows you to display the bar's exBarResources property as shown bellow:

(String expression)

exBarFrameColor51 Specifies the color to show the bar's frame or an additional EBN object that may be displayed on the bar to indicate a frame, a note or a symbol. The last 7 bits in the high significant byte of the color indicates the identifier of the skin being used. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the background's part. For instance, you can use the exBarColor to specify the inside bar's color, while the exBarFrameColor indicates the color for the border to be shown.

The following screen shot shows a symbol using the exBarFrameColor:

The following sample adds a Task bar with a Red frame:

With G2antt1.Items
	h = .AddItem("Red-Frame")
	.AddBar h,"Task",#1/3/2001#,#1/6/2001#,"K1"
	.ItemBar(h,"K1",exBarFrameColor) = RGB(255,0,0)
End With

The following sample adds a Task bar with an EBN frame:

With G2antt1
	.VisualAppearance.Add 1,".../tickers.ebn"
	With .Items
		h = .AddItem("EBN-Frame")
		.AddBar h,"Task",#1/3/2001#,#1/6/2001#,"K1"
		.ItemBar(h,"K1",exBarFrameColor) = &H1000000
	End With
End Withh

(Color expression)

exBarOverlaidKey52 Indicates the z-order when the bar is arranged in cascade, when the bar is overlapping with other bars. This option is valid only if the OverlaidType property of the current bar is exOverlaidBarsCascade. The cascade type allows you to arrange the bars on the same levels for those with the same exBarOverlaidCascade key, and on a different level for bars with a different exBarOverlaidCascade key, like in the following screen shot. The levels in the cascade is displayed in the alphabetic order like explained in the following sample.

The following screen shot shows the bars arranged on cascade, K1, K2, K3 on the first level, and the T1, T2, T3 on the second level.

The bars get arranged into a cascade/levels based on the key ( exOverlaidBarsCascade ). The T1, T2, T3 are shown on the same level "B", as they have the same exBarOverlaidCascade key, and does not intersect the K1, K2, K3 level "A".

For instance the following sample:

Items.ItemBar(0,"<K*>",exBarOverlaidKey) = "A"
Items.ItemBar(0,"<T*>",exBarOverlaidKey) = "B"

specifies that the K* bars ( all bars with the key starting with the K character ), should be displayed on the same level "A", and the T* bars on the level "B", which indicates that the A will be displayed as the first level, and the B as the second level. In other words, the cascades/levels are being displayed in their alphabetic order.

If we exchange the "A" with "B" like in the following sample:

Items.ItemBar(0,"<K*>",exBarOverlaidKey) = "B"
Items.ItemBar(0,"<T*>",exBarOverlaidKey) = "A"

we get the following screen show

(Variant expression)

exBarBackgroundExt53 Specifies unlimited options to show any HTML text, images, colors, EBNs, patterns, frames anywhere on the bar's background, using EBN String Format. The exBarBackgroundExtFlags, specifies whether the extension is shown on the back or the front of the bar, while exBarBackgroundExtInflate increases or decreases the margins of the portion where the exBarBackgroundExt is applied/shown. 

The following screen shot shows a few options you can have by using the EBN String Format on bars/tasks:

The EBN String Format syntax in BNF notation is defined like follows:

<EBN> ::= <elements> | <root> "(" [<elements>] ")"
<elements> ::= <element> [ "," <elements> ]
<root> ::= "root" [ <attributes> ] | [ <attributes> ]
<element> ::= <anchor> [ <attributes> ] [ "(" [<elements>] ")" ]
<anchor> ::= "none" | "left" | "right" | "client" | "top" | "bottom"
<attributes> ::= "[" [<client> ","] <attribute> [ "," <attributes> ] "]"
<client> ::= <expression> | <expression> "," <expression> "," <expression> "," <expression>
<expression> ::= <number> | <number> "%"
<attribute> ::= <backcolor> | <text> | <wordwrap> | <align> | <pattern> | <patterncolor> | <frame> | <framethick> | <data> | <others>
<equal> ::= "="
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<decimal> ::= <digit><decimal>
<hexadigit> ::= <digit> | "A" | "B"  "C" | "D" | "E"  "F"
<hexa> ::= <hexadigit><hexa>
<number> ::= <decimal> | "0x" <hexa>
<color> ::= <rgbcolor> | number
<rgbcolor> ::= "RGB" "(" <number> "," <number> "," <number> ")"
<string> ::= "`" <characters> "`" | "'" <characters> "'" | " <characters> "
<characters> ::= <char>|<characters>
<char> ::= <any_character_excepts_null>
<backcolor> ::= "back" <equal> <color>
<text> ::= "text" <equal> <string>
<align> ::= "align" <equal> <number>
<pattern> ::= "pattern" <equal> <number>
<patterncolor> ::= "patterncolor" <equal> <color>
<frame> ::= "frame" <equal> <color>
<data> ::= "data" <equal> <number> | <string>
<framethick> ::= "framethick"
<wordwrap> ::= "wordwrap"

Others like: pic, stretch, hstretch, vstretch, transparent, from, to are reserved for future use only.

Here's a few easy samples:

  • "[pattern=6]", shows the BDiagonal pattern on the object's background.

  • "[frame=RGB(255,0,0),framethick]", draws a red thick-border around the object.

  • "[frame=RGB(255,0,0),framethick,pattern=6,patterncolor=RGB(255,0,0)]", draws a red thick-border around the object, with a patter inside.

  • "[[patterncolor=RGB(255,0,0)](none[(4,4,100%-8,100%-8),pattern=0x006,patterncolor=RGB(255,0,0),frame=RGB(255,0,0),framethick])]", draws a red thick-border around the object, with a patter inside, with a 4-pixels wide padding:

  • "top[4,back=RGB(0,0,255)]", draws a blue line on the top side of the object's background, of 4-pixels wide.

  • "[text=`caption`,align=0x22]", shows the caption string aligned to the bottom-right side of the object's background.

  • "[text=`<img>flag</img>`,align=0x11]" shows the flag picture and the sweden string aligned to the bottom side of the object.

  • "left[10,back=RGB(255,0,0)]", draws a red line on the left side of the object's background, of 10-pixels wide.

  • "bottom[50%,pattern=6,frame]", shows the BDiagonal pattern with a border arround on the lower-half part of the object's background.

  • "root[text=`caption <b>2`,align=0x22](client[text=`caption <b>1`,align=0x20])", shows the caption 1 aligned to the bottom-left side, and the caption 2 to the bottom-right side

(String expression)

exBarBackgroundExtFlags54 Specifies the flags to show the exBarBackgroundExt on the bar's background. By default, the exBarBackgroundExtFlags property is 0, which indicates that the exBarBackgroundExt property is applied in front of the bar's client area. The exBarBackgroundExtInflate increases or decreases the margins of the portion where the exBarBackgroundExt is applied/shown.

The exBarBackgroundExtFlagssupports a combination of the following values:

  • 0, the exBarBackgroundExt is applied in front, using the bar's client area. The Height of the bar specifies the height of the bar, and so it defines the bar's client area.
  • 1, the exBarBackgroundExt is applied on the back of the bar. If missing, the exBarBackgroundExt is applied on front.
  • 2, the exBarBackgroundExt is uses the bar's background client are to show the exBarBackgroundExt option. The Height of the item that hosts the bar specifies the client area of the bar's background. If missing, the bar's client area is used instead.

(Long expression, between 0 and 3, by default it is 0)

exBarBackgroundExtInflate55 Increases or decreases the margins of the portion where the exBarBackgroundExt is applied/shown. By default, the exBarBackgroundExtInflate property is 0, which indicates that the bar's client area is the portion where the exBarBackgroundExt is applied. For instance, "-10,0,10,0" enlarges the bar's margins by 10 pixels, to left and right, and so the exBarBackgroundExt looks wider. If the exBarBackgroundExtInflate property is of numeric type, it specifies the range to increases or decreases all the margins. The exBarBackgroundExt adds unlimited options to show any HTML text, images, colors, EBNs, patterns, frames anywhere on the bar's background. Ability to draw additional EBN/Color/Text/Patterns/Images on the bar, using the EBN String Format (create and run at runtime EBN objects)


(Long expression, which indicates that all margins of the extension is increased or decreased with specified value, a String expression such as "left,top,right,bottom", to specify different margins for the portion to show the extension)

exBarShowCaption56 Shows or hides the bar's caption. The exBarCaption specifies the bar's caption. The exBarHAlignCaption / exBarVAlignCaption aligns horizontally / vertically the bar's caption relative to bar's client-rectangle.

(Boolean expression)

exBarShowExtraCaption57 Shows or hides the bar's extra caption. The exBarExtraCaption specifies the bar's extra caption. The exBarExtraCaptionHAlign/ exBarExtraCaptionVAlignaligns horizontally / vertically the bar's extra caption relative to bar's client-rectangle.

(Boolean expression)

exBarCaptionHOffset58 Indicates the bar's caption horizontal offset. The exBarCaptionVOffset indicates the bar's caption vertical offset. The exBarCaption specifies the bar's caption. The exBarHAlignCaption / exBarVAlignCaption aligns horizontally / vertically the bar's caption relative to bar's client-rectangle.

(short expression)

exBarCaptionVOffset59 Indicates the bar's caption vertical offset. The exBarCaptionHOffset indicates the bar's caption horizontal offset.  The exBarCaption specifies the bar's caption. The exBarHAlignCaption / exBarVAlignCaption aligns horizontally / vertically the bar's caption relative to bar's client-rectangle.

(short expression)

exBarHistLegend60 Specifies the description to show within the histogram's legend for the bar in the control's histogram. Use the ItemBar(exBarColor) property to specify a different color for a specified bar. The exBarHistLegend option has effect only if the bar's HistogramCumulativeOriginalColorBars property is exKeepOriginalColor. For exKeepOriginalColor, the HistogramCumulativeShowLegend property specifies whether the bar's legend (ItemBar( exBarHistLegend) property) is shown or hidden.

This option supports built-in HTML format including the <%=formula%> tag. The <%=formula%> tag indicates the result of the giving formula. The formula supports value formatting

The formula supports the following keywords:

  • %0, %1, %2, ...{any} specifies the value of the cell in the column with the index 0, 1 2, ... The CellValue property defines the cell's value. For example, "%0 format ``" formats the value in the cell at index 0 using the current regional settings, while "int(%1)" converts the value in the cell at index 1 to an integer.
  • %C0, %C1, %C2, ...{string} specifies the caption of the cell, or the string the cell displays in the column with the index 0, 1 2, ... The CellCaption property gets the cell's formatted caption. The cell's displayed string may differ from its actual value. For example, if a cell displays HTML content, %0 returns the HTML format including the tags, while %C0 returns the cell's content as a plain string without HTML tags. For instance, "upper(%C1)" converts the caption of the cell at index 1 to uppercase, while "%C0 left 2" returns the leftmost two characters of the caption in the cell at index 0.
  • %CD0, %CD1, %CD2, ...{any} specifies the cell's extra data in the column with the index 0, 1 2, ... The CellData property associates any extra/user data to a cell. For example, "%CD0 = your user data" specifies all cells in the column with index 0 whose CellData property is equal to your user data.
  • %CS0, %CS1, %CS2, ...{number} specifies the cell's state in the column with the index 0, 1 2, ... The CellState property defines the state of a cell, indicating whether it is checked or unchecked. For example, "%CS0" identifies all checked items in the column with index 0, while "not %CS1" identifies all unchecked items in the column with index 1.
  • %CT0, %CT1, %CT2, ... {boolean} returns true if the cell displays a total field; otherwise, it returns false. The exTotalField / exTotalColumn flag specifies whether the cell displays a total field. For instance, "%CT1" refers to all cells in the second column that display totals, while "not %CT1" refers to all cells in the second column that do not display totals.
  • %CE0, %CE1, %CE2, ... {boolean} returns true if the cell is editable; otherwise, it returns false.. For example, "%CE0" refers to all editable cells in the first column, while "not %CE1" refers to all cells in the second column that are read-only.
  • %CC0, %CC1, %CC2, ... {number} retrieve the number of child items (this keyword consistently returns identical results for all cells since it pertains to the item that hosts each cell). The ChildCount property returns the number of child items. For example, "%CC0" identifies all parent items, while "%CC0 = 0" identifies all leaf items.
  • %CX0, %CX1, %CX2, ... {boolean} returns true if the item hosting the cell is expanded, or false if it is collapsed (this keyword consistently returns identical results for all cells since it pertains to the item that hosts each cell). The ExpandItem property specifically indicates whether the item is expanded or collapsed. For example, "%CX0" refers to all expanded items, while "not %CX0" identifies all collapsed items

For instance the Items.ItemBar(exBarHistLegend) = "<fgcolor=666666><%=lower(%3)%>" defines the bar's histogram-legend as the following screen shot:

This property/method supports predefined constants and operators/functions as described here.

(HTML String expression)

exBarsCount256 Retrieves a value that indicates the number of bars in the item. The exBarsCount property counts the bars being displayed in the item. Use the AddBar property to add new bars to the item. This option ignores the Key parameter, so no matter what you are using for the Key parameter it gets the number of bars in the item. For instance, the Items.ItemBar(Item,Nothing,exBarsCount) property gets the number of bars inside the specified item.

(Long expression)

exBarSelected257 Specifies whether the bar is selected or unselected. By default, the exBarSelected is False. The AllowSelectObjects property allows users to select at runtime the bars and links in the chart area.  The ChartSelectionChanged event is fired when the selection in the chart is changed. 

(Boolean expression)

exBarWorkingCount258 Specifies the count of working units ( days ) in the bar. For instance, 1 indicates one working day, while 0.5 indicates 12 hours from a working day.  The NonworkingDays property specifies the non-working days. Use the AddNonworkingDate property to add custom non-working days. Use the NonworkingHours property to specify the non-working hours. Use the exBarWorkingCount property to specify the number of working days for a specified bar. For instance, if your chart displays days, and the NonworkingDays is set, the exBarWorkingCount property sets or gets the count of working days in the bar. If the chart displays hours, and the NonworkingHours property is set, the exBarWorkingCount property sets or gets the count of working hours in the bar. 

(Float expression)

exBarNonWorkingCount259 Specifies the count of non-working units ( days ) in the bar. For instance, 1 indicates one non-working day, while 0.5 indicates 12 hours from a non-working day. The NonworkingDays property specifies the non-working days. Use the AddNonworkingDate property to add custom non-working days. Use the NonworkingHours property to specify the non-working hours. For instance, if your chart displays days, and the NonworkingDays is set, the exBarNonworkingCount property gets the count of non-working days in the bar. If the chart displays hours, and the NonworkingHours property is set, the exBarNonWorkingCount property gets the count of non-working hours in the bar. 

(Float expression)

exBarNonWorkingUnits260 Retrieves a collection of pairs ( start-end ) that indicates the non-working parts of the bar. You can use the exBarNonWorkingUnitsAsString property to get the non-working parts of the bar as a string. The /NET Assembly provides a get_BarNonWorkingUnits method that retrieves a collection of DateTime objects.

The following VB sample lists the start and end date-time values for non-working parts of the bar ( for the /COM version ):

Private Sub G2antt1_BarResize(ByVal item As EXG2ANTTLibCtl.HITEM, ByVal Key As Variant)
    Debug.Print "Non-working parts of the bar:"
    With G2antt1.Items
        Dim i As Variant, j As Long
        For Each i In .ItemBar(item, Key, exBarNonWorkingUnits)
            Debug.Print IIf(j Mod 2 = 0, "Start ", "End ") & i
            j = j + 1
        Next
    End With
End Sub

The following VB/NET sample lists the start and end date-time values for non-working parts of the bar ( for the /NET Assembly version ):

Private Sub Exg2antt1_BarResize(ByVal sender As System.Object, ByVal Item As System.Int32, ByVal Key As System.Object) Handles Exg2antt1.BarResize
    Debug.Print("Non-working parts of the bar:")
    With Exg2antt1.Items
        Dim i As Object, j As Long
        For Each i In .get_BarNonWorkingUnits(Item, Key)
            Debug.Print(IIf(j Mod 2 = 0, "Start ", "End ") & i)
            j = j + 1
        Next
    End With
End Sub

(safe array of pairs of dates indicating the start and end of the non-working area )

exBarNonWorkingUnitsAsString261 Displays as string the collection of pairs ( start-end ) that indicates the non-working parts of the bar. The /NET Assembly provides a get_BarNonWorkingUnitsAsString method that retrieves the non-working parts of the bar as string

The following VB sample lists the start and end date-time values for non-working parts of the bar ( for the /COM version ):

Private Sub G2antt1_BarResize(ByVal item As EXG2ANTTLibCtl.HITEM, ByVal Key As Variant)
    Debug.Print "Non-working parts of the bar:"
    With G2antt1.Items
        Debug.Print .ItemBar(item, Key, exBarNonWorkingUnitsAsString)
    End With
End Sub

The following VB/NET sample lists the start and end date-time values for non-working parts of the bar ( for the /NET Assembly version ):

Private Sub Exg2antt1_BarResize(ByVal sender As System.Object, ByVal Item As System.Int32, ByVal Key As System.Object) Handles Exg2antt1.BarResize
    Debug.Print("Non-working parts of the bar:")
    With Exg2antt1.Items
        Debug.Print(.get_BarNonWorkingUnitsAsString(Item, Key))
    End With
End Sub

(String expression)

exBarWorkingUnits262 Retrieves a collection of pairs ( start-end ) that indicates the working parts of the bar. You can use the exBarWorkingUnitsAsString property to get the working parts of the bar as a string. The /NET Assembly provides a get_BarWorkingUnits method that retrieves a collection of DateTime objects. Use the exBarStartWorking option to get the start working date of the bar. Use the exBarEndWorking option to get the end working date of the bar. 

The following VB sample lists the start and end date-time values for working parts of the bar ( for the /COM version ):

Private Sub G2antt1_BarResize(ByVal item As EXG2ANTTLibCtl.HITEM, ByVal Key As Variant)
    Debug.Print "Working parts of the bar:"
    With G2antt1.Items
        Dim i As Variant, j As Long
        For Each i In .ItemBar(item, Key, exBarWorkingUnits)
            Debug.Print IIf(j Mod 2 = 0, "Start ", "End ") & i
            j = j + 1
        Next
    End With
End Sub

The following VB/NET sample lists the start and end date-time values for working parts of the bar ( for the /NET Assembly version ):

Private Sub Exg2antt1_BarResize(ByVal sender As System.Object, ByVal Item As System.Int32, ByVal Key As System.Object) Handles Exg2antt1.BarResize
    Debug.Print("Working parts of the bar:")
    With Exg2antt1.Items
        Dim i As Object, j As Long
        For Each i In .get_BarWorkingUnits(Item, Key)
            Debug.Print(IIf(j Mod 2 = 0, "Start ", "End ") & i)
            j = j + 1
        Next
    End With
End Sub

(safe array of pairs of dates indicating the start and end of the working area)

exBarWorkingUnitsAsString263 Displays as string the collection of pairs ( start-end ) that indicates the working parts of the bar. The /NET Assembly provides a get_BarWorkingUnitsAsString method that retrieves the working parts of the bar as string.

The following VB sample lists the start and end date-time values for working parts of the bar ( for the /COM version ):

Private Sub G2antt1_BarResize(ByVal item As EXG2ANTTLibCtl.HITEM, ByVal Key As Variant)
    Debug.Print "Working parts of the bar:"
    With G2antt1.Items
        Debug.Print .ItemBar(item, Key, exBarWorkingUnitsAsString)
    End With
End Sub

The following VB/NET sample lists the start and end date-time values for working parts of the bar ( for the /NET Assembly version ):

Private Sub Exg2antt1_BarResize(ByVal sender As System.Object, ByVal Item As System.Int32, ByVal Key As System.Object) Handles Exg2antt1.BarResize
    Debug.Print("Working parts of the bar:")
    With Exg2antt1.Items
        Debug.Print(.get_BarWorkingUnitsAsString(Item, Key))
    End With
End Sub

(String expression)

exBarStartWorking264 Retrieves the start working date of the bar. Use the exBarWorkingUnits option to get the list of working units in the specified bar. For instance, if the bar starts in a working area, the exBarStart and exBarStartWorking properties gets the same result. If the bar starts into a non-working portion of the chart, the exBarStartWorking gets the first working units, where the bar begins.

(Date expression)

exBarEndWorking265 Retrieves the end working date of the bar. Use the exBarWorkingUnits option to get the list of working units in the specified bar. For instance, if the bar ends in a working area, the exBarEnd and exBarEndWorking properties gets the same result. If the bar ends into a non-working portion of the chart, the exBarEndWorking gets the previously working units, where the bar ends.

(Date expression)

exBarResourcesFormat266 This option can be used with the PutRes method. Retrieves the list of bar's resources using a formatted string. The exBarResourcesFormat property (get only ) returns formatted expression of the exBarResources using the exBarResourceFormat ( no s, so it is exBarResourceFormat, not exBarResourcesFormat ). 

(String expression)

exBarResourcesNames267 This option can be used with the PutRes method. Retrieves the list of names of resources being assigned to the bar. exBarResourcesNames property (get only ) returns the name of each resource to be used by the current bar, in the Source, as a string expression. This option returns no percent or usage of any resource. For instance, if the exBarResources property is "R3[67.89%],R4[23.23%]", the exBarResourcesNames property gets the "R3,R4".

(String expression)

exBarResourcesUsages268 This option can be used with the PutRes method. Retrieves the list of usages of resources being assigned to the bar. The exBarResourcesUsages property (get only ) returns the usage ( double expression from 0 to 1 ) of each resource to be used by the current bar, in the Source, as a string expression. This option returns no name any resource. For instance, if the exBarResources property is "R3[67.89%],R4[23.23%]", the exBarResourcesUsages property gets the "0.6789,0.2323".

(String expression)

exBarCriticalPath269 Indicates whether the current bar is part of the critical path, if the value is not 0. The DefSchedulePDM(exPDMCriticalPathBarColor) specifies the color to display the activities (bars) in the critical path. The value of the exBarCriticalPath property is valid only after calling the SchedulePDM method, and the DefSchedulePDM(exPDMCriticalPathBarColor) is not zero. The SchedulePDM method arranges the activities (bars) in the chart based on their relationships ( links ). Previously, the value of the exBarCriticalPath was 0/False ( if the bar is not part of the critical path ), or -1/True ( indicates that the bar is part of the critical path). Currently, the exBarCriticalPath property specifies the position (1-based) of the bar in the critical path. In other words the current bar is part of the critical path, if the exBarCriticalPath property is not 0. Any positive value indicates the position of the current bar in the critical path. 

You can automatically specify the critical path position of the bar in its caption using a code like:

Items.ItemBar(0, "<*>", exBarCaption) = "<%=int(%269) > 0 ? %269 : ``%>"

The code, changes the caption of all bars, using an expression that shows the integer ( value of property 269/exBarCriticalPath ) if it is positive, else displays nothing. 

The following screen shot shows the critical path, including the position of the bars:

(Currently, Long expression, Previously Boolean expression)

exBarPredecessor270 Indicates the list of predecessor bars, separated by comma. A dependency/link is the relationship between predecessor and successor tasks. Tasks may have multiple predecessors or multiple successors. Before you begin establishing dependencies, it’s important to understand that there are four types:
  • Finish to Start (FS), the predecessor ends before the successor can begin
  • Start to Start (SS), the predecessor begins before the successor can begin
  • Finish to Finish (FF), the predecessor ends before the successor can end
  • Start to Finish (SF), the predecessor begins before the successor can end

The format of bar's predecessor is INDEX1["SF"|"FS"|"FF"|"SS"][KEY][:["W"]LAG|:LAG["W"]], where 

  • INDEX1 is the 1-based index of the item that hosts the bar
  • followed by the type of the link which can be one any of SF(Start-Finish), FS(Finish-Start), SS(Start-Start) or FF(Finish-Finish) sequence (FS if missing)
  • continues with the KEY of the bar (empty is not used)
  • and ends with the LAG of the link (specifies the delay the activity is postponed by the link). The "W" indicates a working-lag for the link (specifies the delay in working-units the activity is postponed by the link). 

For instance:

  •  "2FSZ", specifies that the current item-bar is linked with the "Z" bar of the second item (item with the index 1) using a Finish-Start link
  • "1SF:-2", adds a Start-Finish link with the bar '' of the first-item, using a lag of -2 days

Changing the ItemBar(exBarPredecessor) property updates the links related to the current bar. The AddLink., RemoveLink, RemoveLinkOf methods adds, removes links. The Background(exPSLinkColorEditSel) property specifies the color to highlight the links being selected within an editable predecessor/successor column. The Background(exPSBarColorEditSel) property specifies the color to highlight the incoming/outgoing bars of the links being selected within an editable predecessor/successor column

(String expression)

exBarSuccessor271 Indicates the list of successor bars, separated by comma. 

A dependency/link is the relationship between predecessor and successor tasks. Tasks may have multiple predecessors or multiple successors. Before you begin establishing dependencies, it’s important to understand that there are four types:

  • Finish to Start (FS), the predecessor ends before the successor can begin
  • Start to Start (SS), the predecessor begins before the successor can begin
  • Finish to Finish (FF), the predecessor ends before the successor can end
  • Start to Finish (SF), the predecessor begins before the successor can end

The format of bar's successo is INDEX1["SF"|"FS"|"FF"|"SS"][KEY][:["W"]LAG|:LAG["W"]], where 

  • INDEX1 is the 1-based index of the item that hosts the bar
  • followed by the type of the link which can be one any of SF(Start-Finish), FS(Finish-Start), SS(Start-Start) or FF(Finish-Finish) sequence (FS if missing)
  • continues with the KEY of the bar (empty is not used)
  • and ends with the LAG of the link (specifies the delay the activity is postponed by the link). The "W" indicates a working-lag for the link (specifies the delay in working-units the activity is postponed by the link). 

For instance:

  •  "3SFy",  specifies that the current item-bar is linked with the "y" bar of the third item (item with the index 1) using a Start-Finish link

Changing the ItemBar(exBarSuccessor) property updates the links related to the current bar. The AddLink., RemoveLink, RemoveLinkOf methods adds, removes links.

(String expression)

exBarParent512 Specifies the handle of the parent item that displays the bar. The Item parameter of the AddBar method indicates the handle of the item that hosts the bar. Use the exBarCanMoveToAnother option to specify whether the user can move a bar from one item to another by drag and drop. The control fires the BarParentChange event just before moving the bar to another item. Use this event to control the items where your bar can be moved. A bar can be moved to another item, ONLY if the second item does not contain a bar with the same key. The exBarKey property specifies the key of the bar. Moving a bar from an item to another ( changing the Bar's parent ) fails, if the new parent already contains a bar with the same key. An item can hold multiple bars, so each bar is identified by its key, so this key must be unique in the item, but could be the same on several items. 

(Long expression)

exBarDuration513 Specifies the duration or the length of the bar in days ( or hours if including the decimal point, for instance 0.5 indicates a 12 hours lenght ). Gets the difference between exBarEnd and exBarStart as a double expression. If calling the set property, it changes the bar's duration or length. If negative the start date is computed as the end - duration, since if it is positive, the end date is start + duration. The round part indicates the number of days. Use the exBarMove property to move programmatically a bar by specified time. If you need to change both start and end points of the bar in the same time, you can call the AddBar method with the new coordinates, same item and key. Use the exBarDurationPrev property to get the length or duration of the bar before resizing it. Use the exBarMinDuration and exBarMaxDuration properties to specify the limits for the bar's duration.

(Float expression)

exBarMove514 Moves the bar inside the same item by specified amount of time. If you need to change both start and end points of the bar in the same time, you can call the AddBar method with the new coordinates, same item and key. The exBarParent changes the bar's parent. Use the exBarCanMoveToAnother option to specify whether the user can move a bar from one item to another by drag and drop. 

(Float expression)

exBarStartPrev515 Retrieves the starting date of the bar before changing it ie if the user moves or resizes the bar at runtime, the exBarStartPrev gives during the BarResize event the previously starting date of the bar. 

(Date expression)

exBarEndPrev516 Retrieves the ending date of the bar before changing it ie if the user moves or resizes the bar at runtime, the exBarEndPrev gives during the BarResize event the previously starting date of the bar. 

(Date expression)

exBarDurationPrev517 Retrieves the duration or length of the bar before resizing it. During the BarResize event the exBarDurationPrev gives the length or duration of the bar before resizing it. You can distingue moving or resizing a specified bar by comparing the exBarDuration and exBarDurationPrev values. 

(Float expression)

exBarPercent100518 Specifies the percent from the original bar where the progress bar is displayed. Specifies the percent to display the progress on the bar, between 0 and 100. The exBarPercent100 option does the same thing as exBarPercent excepts that it works with integer values between 0 and 100, instead float expression from 0 to 1.  Use the Add("A%B") to add a combination of two bars, so the exBarPercent value specifies the percent from the bar A to be displayed as bar B. For instance, the Add("Task%Progress") adds a combination of Task and Progress bars, so the Task shape is displayed on the full bar, and the Progress shape is displayed only on the portion determined by the exBarPercent100 value. When you resize the original bar (A), the inside bar (B) is shown proportionally.  For instance, you can use the exBarPercent100 to display and edit values in the cells, when this property is associated with the cell using the AllowCellValueToItemBar property. The 0 value corresponds to the exBarStart, while 100 corresponds to the exBarEnd, so the formula Items.ItemBar(exBarStart) + (Items.ItemBar(exBarEnd)-Items.ItemBar(exBarStart))*Items.ItemBar(exBarPercent100)/100 gives exactly the date time where progress bar is in the chart.  

(Long expression, between 0 and 100)

exBarIntersectWith519 Gets a collection of bars that intersect with the current bar. Use the exBarIntersectWithCount property to retrieve only the count of intersected bars. The result of exBarIntersectWith property is a collection of VARIANT values that indicates the keys of the bar in the current item that intersects with the current bar. The /NET or /WPF version provides a template function as public virtual List<object> get_BarIntersectWith(int Item, object Key) that returns a list of keys. The IntersectBars property specifies whether two bars intersect if returns 0, if 1 A is before B and -1 if A is after bar B. The exBarIntersectWith, exBarIntersectWithAsString, exBarIntersectWithCount checks all bars in the same item, of the same type or any other type indicated by the bar's OverlaidGroup property.

The following screen shot shows the intersection of the bars of type TaskA:

(Safe array of variant expression)

exBarIntersectWithAsString520 Gets a collection of bars that intersect with the current bar as string. The list is separated by comma character. The exBarIntersectWith, exBarIntersectWithAsString, exBarIntersectWithCount checks all bars in the same item, of the same type or any other type indicated by the bar's OverlaidGroup property.

(String expression)

exBarIntersectWithCount521 Specifies the number of bars that intersects with the current bar. The IntersectBars property specifies whether two bars intersect if returns 0, if 1 A is before B and -1 if A is after bar B. The exBarIntersectWith, exBarIntersectWithAsString, exBarIntersectWithCount checks all bars in the same item, of the same type or any other type indicated by the bar's OverlaidGroup property. 

(Long expression)

exBarsGroup522 Retrieves a collection of bars being grouped with the current bar. The result of exBarsGroup property is a collection of VARIANT values that indicates the handle of the item and the key of the bars being grouped with specified bar. The GroupBars method group two bars, while the Use the UngroupBars method to ungroup two bars or all bars. The /NET or /WPF version provides a template function as public virtual List<SelectedBar> get_BarsGroup(int Item, object Key) that returns a list of bars. The SelectedBar structure provides two members the Item and the Key, where the Item indicates the handle of the item that hosts the bar, while the Key indicates the key of the bar. 

The following VB/NET sample displays the bars being grouped with selected bar(s):

With Exg2antt1.Items
    Dim sSelected As List(Of exontrol.EXG2ANTTLib.Items.SelectedBar) = .get_SelectedBars()
    If Not sSelected Is Nothing Then
        Dim s As exontrol.EXG2ANTTLib.Items.SelectedBar
        For Each s In sSelected
            Debug.Print(s.Key & " from " & .get_CellCaption(s.Item, 0))
            Dim sGrouped As List(Of exontrol.EXG2ANTTLib.Items.SelectedBar) = .get_BarsGroup(s.Item, s.Key)
            If Not sGrouped Is Nothing Then
                Dim b As exontrol.EXG2ANTTLib.Items.SelectedBar
                For Each b In sGrouped
                    Debug.Print(vbTab & b.Key & " from " & .get_CellCaption(b.Item, 0))
                Next
            End If
        Next
    End If
End With

(Safe array of variant expression)

exBarOutgoingLinks523 Retrieves a collection of links that start from the current bar. The element in the collection indicates the name of the link that starts from the current bar. The Items.ItemBar(exBarOutgoingLinks) and Items.ItemBar(exBarOutgoingLinksAll) gives a collection of links that start on the current bar, including its descendents. The exBarOutgoingLinksAsString and exBarOutgoingLinksAllAsString gives the same information excepts that the result is returned as a string. The Link property can be used to access the link properties.

The following sample displays all links that starts directly from the bar on the cursor:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Dim l As Variant
    For Each l In .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarOutgoingLinks)
        Debug.Print "Link: " & l
    Next
End With

The following sample shows the outgoing bars/links in green ( B, D, F ), when the current bar is A:

(Safe array of variant expression)

exBarOutgoingLinksAsString524 Retrieves the links that start from the current bar, as string, separated by , (comma character). The Link property can be used to access the link properties. The exBarOutgoingLinksAllAsString option gives the list of links that starts from the current bar, including the descendents.

The following sample displays the list of links that starts from the bar on the cursor:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Debug.Print .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarOutgoingLinksAsString)
End With

(String expression)

exBarOutgoingLinksAll525 Retrieves a collection of links that start from the current bar, including the descendents. The element in the collection indicates the name of the link that starts from the current bar. The Link property can be used to access the link properties. 

The following sample displays all links that starts from the bar on the cursor, including the descendents:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Dim l As Variant
    For Each l In .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarOutgoingLinksAll)
        Debug.Print "Link: " & l
    Next
End With

(Safe array of variant expression)

exBarOutgoingLinksAllAsString526 Retrieves a collection of links that start from the current bar, including the descendents, as string. The Link property can be used to access the link properties. 

The following sample displays the list of links that starts from the bar on the cursor:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Debug.Print .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarOutgoingLinksAllAsString)
End With

(String expression)

exBarOutgoingBars527 Retrieves a collection of outgoing bars from the current bar. The element in the collection is a string that indicates the handle of the item, the : character, and the key of the bar, aka "78253912:newbar". The exBarOutgoingBars gives a collection of bars that are linked with the current bar. You can use the Split method to decompose the element to get the handle and the key, and so you can use the Items.ItemBar(Item,Key) to access the properties of the outgoing bar.

The following sample displays the bars that are linked with a FS link from the bar on the cursor:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Dim b As Variant
    For Each b In .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarOutgoingBars)
        Debug.Print "Outgoing Bar: " & b
    Next
End With

(Safe array of variant expression)

exBarOutgoingBarsAsString528 Retrieves a collection of outgoing bars from the current bar, as string. The exBarOutgoingBarsAsString displays the list of outgoing bar aka "79225544:newbar,79229032:newbar". The elements in the collections are separated by a , ( comma ) character. You can use the exBarOutgoingBarsDebug for debugging purpose to get displayed the caption on the hierarchy column instead displaying the handle of the item. 

The following sample displays the list of outgoing bars:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Debug.Print .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarOutgoingBarsAsString)
End With

(String expression)

exBarOutgoingBarsAll529 Retrieves a collection of all outgoing bars (including descendents) from the current bar. The element in the collection is a string that indicates the handle of the item, the : character, and the key of the bar, aka "78253912:newbar", where the 78253912 is the handle of the item and the newbar is the key of the bar. The exBarOutgoingBars gives a collection of bars that are linked with the current bar. You can use the Split method to decompose the element to get the handle and the key, and so you can use the Items.ItemBar(Item,Key) to access the properties of the outgoing bar.

The following sample displays all bars ( including descendents ) that are linked with a FS link from the bar on the cursor:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Dim b As Variant
    For Each b In .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarOutgoingBarsAll)
        Debug.Print "Outgoing Bar: " & b
    Next
End With

(Safe array of variant expression)

exBarOutgoingBarsAllAsString530 Retrieves a collection of all outgoing bars (including descendents) from the current bar, as string. The exBarOutgoingBarsAllAsString displays the list of outgoing bars aka "79225544:newbar,79229032:newbar". The elements in the collections are separated by a , ( comma ) character. You can use the exBarOutgoingBarsAllDebug for debugging purpose to get displayed the caption on the hierarchy column instead displaying the handle of the item. 

The following sample displays the list of outgoing bars:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Debug.Print .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarOutgoingBarsAllAsString)
End With

(String expression)

exBarOutgoingBarsDebug531 Retrieves a collection of outgoing bars from the current bar, as string ( the bar is indicated using the caption of the tree/hierarchy column, or TreeColumnIndex column ). You can use this option for debugging purpose, instead exBarOutgoingBarsAsString, so instead displaying the handle of the item, the caption of the column is being displayed aka "Item 4:newbar,Item 5:newbar,Item 3:newbar". The element in the collection is separated by , (comma) character. 

The following sample displays the direct outgoing bars, for debugging purpose:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Debug.Print .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarOutgoingBarsDebug)
End With

(String expression)

exBarOutgoingBarsAllDebug532 Retrieves a collection of of all outgoing bars (including descendents) from the current bar, as string ( the bar is indicated using the caption of the tree/hierarchy column, or TreeColumnIndex column ). You can use this option for debugging purpose, instead exBarOutgoingBarsAllAsString, so instead displaying the handle of the item, the caption of the column is being displayed aka "Item 4:newbar,Item 5:newbar,Item 3:newbar". The element in the collection is separated by , (comma) character.

The following sample displays the outgoing bars (including descendents), for debugging purpose:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Debug.Print .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarOutgoingBarsAllDebug)
End With

(String expression)

exBarIncomingLinks533 Retrieves a collection of links that end on the current bar. The element in the collection indicates the name of the link that ends on the current bar. The Items.ItemBar(exBarIncomingLinks) and Items.ItemBar(exBarIncomingLinksAll) gives a collection of links that ends on the current bar, including its ascendants. The exBarIncomingLinksAsString and exBarIncomingLinksAllAsString gives the same information excepts that the result is returned as a string. The Link property can be used to access the link properties.

The following sample displays all links that ends directly on the bar from the cursor:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Dim l As Variant
    For Each l In .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarIncomingLinks)
        Debug.Print "Incomming Link: " & l
    Next
End With

The following sample shows the incoming bars/links in green ( C, P ), when the current bar is A:

(Safe array of variant expression)

exBarIncomingLinksAsString534 Retrieves a collection of links that end on the current bar, as string. The elements in the collection are separated by , (comma) character. The Link property can be used to access the link properties. The exBarIncomingLinksAsString option gives the list of links that ends on the current bar, including the ascendants.

The following sample displays the list of links that ends on the bar from the cursor:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Debug.Print .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarIncomingLinksAsString)
End With

(String expression)

exBarIncomingLinksAll535 Retrieves a collection of links that end on the current bar, including the ascendants. The element in the collection indicates the name of the link that ends on the current bar. The Link property can be used to access the link properties. 

The following sample displays all links that ends on the bar from the cursor, including the ascendants:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Dim l As Variant
    For Each l In .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarIncomingLinksAll)
        Debug.Print "Incomming Link: " & l
    Next
End With

(Safe array of variant expression)

exBarIncomingLinksAllAsString536 Retrieves a collection of links that end on the current bar, including the ascendants, as string. The Link property can be used to access the link properties. 

The following sample displays the list of links that ends on the bar from the cursor:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Debug.Print .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarIncomingLinksAllAsString)
End With

(String expression)

exBarIncomingBars537 Retrieves a collection of incoming bars from the current bar. The element in the collection is a string that indicates the handle of the item, the : character, and the key of the bar, aka "78253912:newbar". The exBarOutgoingBars gives a collection of bars that are linked with the current bar. You can use the Split method to decompose the element to get the handle and the key, and so you can use the Items.ItemBar(Item,Key) to access the properties of the incoming bar.

The following sample displays the bars that are linked with a SF link from the bar on the cursor:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Dim b As Variant
    For Each b In .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarIncomingBars)
        Debug.Print "Outgoing Bar: " & b
    Next
End With

(Safe array of variant expression)

exBarIncomingBarsAsString538 Retrieves a collection of incoming bars from the current bar, as string. The exBarIncomingBarsAsString displays the list of outgoing bar aka "79225544:newbar,79229032:newbar". The elements in the collections are separated by a , ( comma ) character. You can use the exBarIncomingBarsDebug for debugging purpose to get displayed the caption on the hierarchy column instead displaying the handle of the item. 

The following sample displays the list of incoming bars:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Debug.Print .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarIncomingBarsAsString)
End With

(String expression)

exBarIncomingBarsAll539 Retrieves a collection of all incoming bars (including ascendants) from the current bar. The element in the collection is a string that indicates the handle of the item, the : character, and the key of the bar, aka "78253912:newbar", where the 78253912 is the handle of the item and the newbar is the key of the bar. The exBarIncomingBarsAll gives a collection of bars that are linked with the current bar. You can use the Split method to decompose the element to get the handle and the key, and so you can use the Items.ItemBar(Item,Key) to access the properties of the incoming bar.

The following sample displays all bars ( including descendents ) that are linked with a SF link from the bar on the cursor:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Dim b As Variant
    For Each b In .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarIncomingBarsAll)
        Debug.Print "Outgoing Bar: " & b
    Next
End With

(Safe array of variant expression)

exBarIncomingBarsAllAsString540 Retrieves a collection of all incoming bars (including ascendants) from the current bar, as string. The exBarIncomingBarsAllAsString displays the list of incoming bars aka "79225544:newbar,79229032:newbar". The elements in the collections are separated by a , ( comma ) character. You can use the exBarIncomingBarsAllDebug for debugging purpose to get displayed the caption on the hierarchy column instead displaying the handle of the item. 

The following sample displays the list of incoming bars:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Debug.Print .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarIncomingBarsAllAsString)
End With

(String expression)

exBarIncomingBarsDebug541 Retrieves a collection of incoming bars from the current bar, as string ( the bar is indicated using the caption of the tree/hierarchy column, or TreeColumnIndex column ). You can use this option for debugging purpose, instead exBarIncomingBarsAsString, so instead displaying the handle of the item, the caption of the column is being displayed aka "Item 4:newbar,Item 5:newbar,Item 3:newbar". The element in the collection is separated by , (comma) character. 

The following sample displays the direct incoming bars, for debugging purpose:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Debug.Print .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarIncomingBarsDebug)
End With

(String expression)

exBarIncomingBarsAllDebug542 Retrieves a collection of of all incoming bars (including ascendants) from the current bar, as string ( the bar is indicated using the caption of the tree/hierarchy column, or TreeColumnIndex column ). You can use this option for debugging purpose, instead exBarIncomingBarsAllAsString, so instead displaying the handle of the item, the caption of the column is being displayed aka "Item 4:newbar,Item 5:newbar,Item 3:newbar". The element in the collection is separated by , (comma) character.

The following sample displays the incoming bars (including ascendants), for debugging purpose:

With G2antt1.Items
    Dim h As HITEM, c As Long, hit As HitTestInfoEnum
    h = G2antt1.ItemFromPoint(-1, -1, c, hit)
    Debug.Print .ItemBar(h, G2antt1.Chart.BarFromPoint(-1, -1), exBarIncomingBarsAllDebug)
End With

(String expression)

exBarEndInclusive543 Retrieves or sets a value that indicates the inclusive ending point of the bar. Generally, the inclusive ending point of the bar is exBarEnd - 1. You can use the exBarEndInclusive to display exBarEnd - 1 when associate a cell with a bar, using the AllowCellValueToItemBar property, so the ending point displayed on the list section is one day less. The exBarEndInclusive option was designed to be used when the chart's unit scale is exDay, so days are being displayed. Changing the exBarEnd value may change the exBarEndInclusive value, or reverse. For instance, a a task bar from 1/1/2001 to 1/3/2001 shows two days, the exBarEnd displays 1/3/2001, while the exBarEndInclusive displays 1/2/2001.

The following screen shot shows the values of exBarEnd and exBarEndInclusive displayed on End and EndInclusive columns:

 

In the previously picture you can notice that the exBarEnd of the Task 1 is 1/7/2009, while the exBarEndInclusive indicates the 1/6/2009.

Using the exBarEndInclusive you can show and edit the finish column like shown in the following picture:

(Date expression)

exBarMoveStart544 Retrieves or sets ( by preserving the bar's length/duration ) a value that indicates the start of the bar. This property returns the same value as exBarStart property. If used to change the starting point of the bar, the exBarMoveStart property moves the bar, while the exBarStart property resizes the bar, or in other words, the exBarMoveStart moves the starting point of the bar, by preserving the bar's length/duration. For instance, this property can be associated with a column of drop down calendar type, so once the user changes the date in the calendar, the associated bar is moved to start at selected date.

(Date expression)

exBarMoveEnd545 Retrieves or sets ( by preserving the bar's length/duration ) a value that indicates the end of the bar. This property returns the same value as exBarEnd property. If used to change the ending point of the bar, the exBarMoveEnd property moves the bar, while the exBarEnd property resizes the bar, or in other words, the exBarMoveEnd moves the ending point of the bar, by preserving the bar's length/duration. For instance, this property can be associated with a column of drop down calendar type, so once the user changes the date in the calendar, the associated bar is moved to end at selected date.

(Date expression)

exBarMoveEndInclusive546 Retrieves or sets ( by preserving the bar's length/duration ) a value that indicates the inclusive ending point of the bar. Generally, the inclusive ending point of the bar is exBarEnd - 1. This property returns the same value as exBarEndInclusive property. If used to change the inclusive ending point of the bar, the exBarMoveEndInclusive property moves the bar, while the exBarEndInclusive property resizes the bar, or in other words, the exBarMoveEndInclusive moves the inclusive ending point of the bar, by preserving the bar's length/duration. For instance, this property can be associated with a column of drop down calendar type, so once the user changes the date in the calendar, the associated bar is moved to end at selected date.

(Date expression)

exBarStartStr547 Retrieves a value that indicates the start of the bar, as a string of 'MM/dd/yyyy HH:mm:ss' format, where:
  • MM: This stands for the month part of the date and is represented by two digits. For example, January is "01", February is "02", and so on up to December, which is "12"
  • dd: This represents the day of the month, also in two digits. For example, the first day of the month is "01", the second day is "02", and so forth up to the 31st day, which is "31"
  • yyyy: This denotes the year part of the date, represented by four digits. For example, the year 2024 is written as "2024"
  • HH: This represents the hour of the day in a 24-hour format, also known as military time. This ranges from "00" (midnight) to "23" (11 PM)
  • mm: This stands for the minutes part of the time, with two digits ranging from "00" to "59"
  • ss: This represents the seconds part of the time, again with two digits ranging from "00" to "59"

If you have a date and time like "07/15/2024 14:30:45", it breaks down as:

  • MM: "07" -> July
  • dd: "15" -> 15th day of the month
  • yyyy: "2024" -> Year 2024
  • HH: "14" -> 2 PM (in 24-hour format)
  • mm: "30" -> 30 minutes past the hour
  • ss: "45" -> 45 seconds past the minute

The exBarStart property retrieves or sets the starting date-time of the bar using a DATE expression.

(String expression)

exBarEndStr548 Retrieves a value that indicates the end of the bar, as a string of 'MM/dd/yyyy HH:mm:ss' format, where:
  • MM: This stands for the month part of the date and is represented by two digits. For example, January is "01", February is "02", and so on up to December, which is "12"
  • dd: This represents the day of the month, also in two digits. For example, the first day of the month is "01", the second day is "02", and so forth up to the 31st day, which is "31"
  • yyyy: This denotes the year part of the date, represented by four digits. For example, the year 2024 is written as "2024"
  • HH: This represents the hour of the day in a 24-hour format, also known as military time. This ranges from "00" (midnight) to "23" (11 PM)
  • mm: This stands for the minutes part of the time, with two digits ranging from "00" to "59"
  • ss: This represents the seconds part of the time, again with two digits ranging from "00" to "59"

If you have a date and time like "07/15/2024 14:30:45", it breaks down as:

  • MM: "07" -> July
  • dd: "15" -> 15th day of the month
  • yyyy: "2024" -> Year 2024
  • HH: "14" -> 2 PM (in 24-hour format)
  • mm: "30" -> 30 minutes past the hour
  • ss: "45" -> 45 seconds past the minute

The exBarEnd property retrieves or sets the ending date-time of the bar using a DATE expression.

(String expression)