CHART
specifications / options ;
The options that can appear in the CHART statement are listed below. The options are classified under appropriate headings: first, all options that are valid for all modes of the procedure are listed, followed by the options classified according to the mode (line-printer, full-screen, or graphics) of invocation of the procedure. Most of the options in line-printer and full-screen modes are also valid in graphics mode with similar interpretations. The differences and similarities in interpretation of the options are documented under the section Mode-Specific Differences.
The CHART statement controls the format of the Gantt chart and specifies additional variables (other than early, late, actual,
resource-constrained, and baseline start and finish times) to be plotted on the chart. For example, suppose a variable that
you want to specify in the CHART statement is one that contains the target finish date for each activity in a project; that is, if FDATE
is a variable in the Schedule data set containing the desired finish date for each activity, the CHART statement can be used
to mark the value of FDATE
on the chart for each activity. A CHART specification can be one of the following types:
indicates that each variable is to be plotted using the default symbol, the first character of the variable name. For example, the following statement
CHART SDATE FDATE;
causes the values of SDATE
to be plotted with an 'S' and the values of FDATE
with an 'F.'
indicates that each variable is to be plotted using the symbol specified. The symbol must be a single character enclosed in quotes.
indicates that each variable within the parentheses is to be plotted using the symbol associated with that group. The symbol must be a single character enclosed in single quotes. For example, the following statement
CHART (ED SD)='*' (FD LD)='+';
plots the values of the variables in the first group using an asterisk ('*') and the values of the variables in the second group using a plus sign ('+').
A single CHART statement can contain specifications in more than one of these forms. Also, each CHART statement produces a separate Gantt chart.
Note: It is not necessary to specify a CHART statement if default values are to be used to draw the Gantt chart.
The following options can appear in the CHART statement.
specifies the variable that contains the actual finish time of each activity in the Schedule data set. This option is not required if the default variable name A_FINISH is used.
specifies the variable that contains the actual start time of each activity in the Schedule data set. This option is not required if the default variable name A_START is used.
specifies the variable that contains the baseline finish time of each activity in the Schedule data set. This option is not required if the default variable name B_FINISH is used.
specifies the variable that contains the baseline start time of each activity in the Schedule data set. This option is not required if the default variable name B_START is used.
specifies the number of columns between two consecutive ID variable columns. This option gives you greater flexibility in spacing the ID columns. The default value of the BETWEEN= option is 3.
specifies the variable in the Schedule, Holiday, and Calendar data sets that is used to identify the name or number of the calendar to which each observation refers. This variable can be either numeric or character depending on whether the different calendars are identified by unique numbers or names, respectively. If this variable is not found in any of the three data sets, PROC GANTT looks for a default variable named _CAL_ in that data set (a warning message is issued to the log). For each activity in the Schedule data set, this variable identifies the calendar that is used to mark the appropriate holidays and weekends for the activity. For further details, see the section Multiple Calendars and Holidays.
concatenates the early/late and actual schedule bars of an activity into a single bar and draws a timenow line on the Gantt chart. The COMBINE option does not affect the resource-constrained or baseline schedule bars. If the TIMENOW= option is not specified, it is implicitly assumed to exist and set to missing. The computation of TIMENOW is then carried out as described in the TIMENOW= option. Since the timenow line represents the instant at which a “snapshot” of the project is taken, values less than TIMENOW can be regarded as the “past” and values greater or equal to TIMENOW can be regarded as the “future.” The GANTT procedure uses this property of the timenow line to partition the chart into two regions; the region to the left of the timenow line reporting only the actual schedule (events that have already taken place), and the region to the right (including the timenow line) reporting only the predicted early/late schedule.
indicates that critical jobs be flagged as being critical or super-critical. An activity is critical if its total float is zero. If the total float is negative, the activity is super-critical. Critical activities are marked 'CR,' and super-critical activities are marked 'SC' on the left side of the chart.
specifies the length of the workday. Each workday is plotted starting at the beginning of the day as specified in the DAYSTART= option and ending daylength hours later. The value of daylength should be a SAS time value. If the INTERVAL= option is specified as DTSECOND, DTMINUTE, DTHOUR, or DTDAY, the default value of daylength is 24 hours. If the INTERVAL= option is specified as WORKDAY or DTWRKDAY, the default value of daylength is 8 hours. For other values of the INTERVAL= option, the DAYLENGTH= option is ignored.
Note: The DAYLENGTH= option is needed to mark the non-worked periods within a day correctly (if the MARKBREAK option is in effect). The DAYLENGTH= option is also used to determine the start and end of a weekend precisely (to the nearest second). This accuracy is needed if you want to depict on a Gantt chart the exact time (for example, to within the nearest hour) for the start and finish of holidays or weekends. This option is used only if the times being plotted are SAS datetime values.
specifies the start of the workday. The end of the day, dayend, is computed as daylength seconds after daystart. The value of daystart should be a SAS time value. This option is to be specified only when the value of the INTERVAL= option is one of the following: WORKDAY, DTSECOND, DTMINUTE, DTHOUR, DTDAY, or DTWRKDAY. For purposes of denoting on the Gantt chart, the weekend is assumed to start at dayend on Friday and end at daystart on Monday morning. Of course, if the SCALE= and MININTERVAL= values are such that the resolution is not very high, you will be unable to discern the start and end of holidays and weekends to the nearest hour. The default value of daystart is 9:00 a.m. if INTERVAL=WORKDAY or INTERVAL=DTWRKDAY, and midnight otherwise.
causes duplicate values of ID variables not to be skipped. As described later in the ID Statement section, if two or more consecutive observations have the same combination of values for all the ID variables, only the first of these observations is plotted. The DUPOK option overrides this behavior and causes all the observations to be plotted.
identifies a variable in the Schedule data set that determines whether or not an activity is to be regarded as a milestone with respect to a specific schedule. This option is not required if the default variable name _DUR_ is used. A value of 0 for this variable indicates that if the start and finish times of the activity with respect to a given schedule are identical (a schedule taken to mean early, late, actual, resource-constrained or baseline), then the activity is represented by a milestone with respect to the given schedule. A nonzero value treats identical start and finish times in the default manner by implicitly padding the finish times as specified by the PADDING= option. The milestone symbol is defined by the MILECHAR= option in line-printer and full-screen modes and by the CMILE= , FMILE= , HMILE= , and VMILE= options in graphics mode; these four options represent the color, font, height, and value of the symbol, respectively. See the descriptions of these options for their default values. To illustrate, suppose that the observations for activities A and B from the Schedule data set are as follows:
ACTIVITY E_START E_FINISH A_START A_FINISH _DUR_ A 27JUL04 27JUL04 31JUL04 31JUL04 1 B 31JUL04 31JUL04 01AUG04 02AUG04 0
In this example, the actual schedule for activity A begins on '31JUL04' and finishes at the end of the day, as explained in the section Schedule Data Set. PROC GANTT uses the _DUR_
variable to recognize that activity A has nonzero duration, pads the finish time by a PADDING= unit, and displays a bar representing one day. In contrast, the
value of '0' for _DUR_
in activity A alerts PROC GANTT that padding be ignored for any schedule with identical start and finish times. Consequently, the early
schedule for activity B is represented on the chart by the milestone symbol at '31JUL04.' The actual schedule, however, not having identical start
and finish times, is padded as usual and plotted as starting on '01AUG04' and finishing at the end of '02AUG04.'
specifies the variable that contains the early finish time of each activity in the Schedule data set. This option is not required if the default variable name E_FINISH is used.
specifies the variable that contains the early start time of each activity in the Schedule data set. This option is not required if the default variable name E_START is used.
causes each page of the Gantt chart to be filled as completely as possible before a new page is started (when the size of the project requires the Gantt chart to be split across several pages). If the FILL option is not specified, the pages are constrained to contain an approximately equal number of activities. The FILL option is not valid in full-screen mode because all of the activities are plotted on one logical page.
causes a line to be drawn for each activity from the left boundary of the chart to the beginning of the bar for the activity. This feature is particularly useful when the Gantt chart is drawn on a large page. In this case, the schedule bars for some of the activities may not start close enough to the left boundary of the chart; the connecting lines help to identify the activity associated with each bar.
specifies the date or datetime variable in the Holiday data set that identifies holidays to be marked on the schedule. If there is no end time nor duration specified for the holiday, it is assumed to start at the time specified by the HOLIDAY variable and last one unit of interval, where interval is the value of the INTERVAL= option.
specifies the variable in the Holiday data set that identifies the durations of the holidays that are to be marked on the schedule.
specifies the date or datetime variable in the Holiday data set that identifies the finish times of the holidays that are to be marked on the schedule.
displays ID variables on every page. By default, the ID variables are displayed only on the first page.
specifies the number of minintervals between time axis labels on the Gantt chart. If the INCREMENT= option is not specified, a value is chosen that provides the maximum possible labeling.
specifies the units for the values of the HOLIDUR variables. Valid values for this option are DAY, WEEKDAY, WORKDAY, DTSECOND, DTMINUTE, DTHOUR, DTDAY, or DTWRKDAY. If the value for the INTERVAL= option has been specified as WEEKDAY, WORKDAY, or DTWRKDAY, weekends are also marked on the Gantt chart with the same symbol as holidays for line-printer quality charts. Graphics-quality Gantt charts use the same PATTERN statement as the one used for marking holidays. The default value of the INTERVAL= option is DAY if the times being plotted are SAS date values and is DTDAY if the times being plotted are SAS datetime values. See the section Specifying the INTERVAL= Option for further information regarding this option.
specifies the variable that contains the late finish time of each activity in the Schedule data set. This option is not required if the default variable name L_FINISH is used.
specifies the variable that contains the late start time of each activity in the Schedule data set. This option is not required if the default variable name L_START is used.
causes all breaks (non-worked periods) during a day to be marked on the Gantt chart. The symbol used for marking the breaks is the same as the HOLICHAR= symbol. This option may not be of much use unless the chart has been plotted with a scale that enables you to discern the different hours within a day on the Gantt chart. For instance, if the chart is in terms of days, there is no point in trying to show the breaks within a day; on the other hand, if it is in terms of hours or seconds, you may want to see the start and end of the various shifts within a day. This option turns on the MARKWKND option.
causes all weekends (or non-worked days during a week) to be marked on the Gantt chart. The symbol used for marking weekends is the same as the HOLICHAR= symbol. Note that weekends are also marked on the chart if the value of the INTERVAL= option is WEEKDAY, WORKDAY, or DTWRKDAY.
specifies the end time for the time axis of the chart. The default value is the largest value of the times being plotted unless the logic options are invoked without the NOEXTRANGE option in the CHART statement. For a discussion of the default behavior in this instance, see the section Formatting the Axis.
displays as many consecutive ID variables as possible in the presence of an ID statement. In the absence of this option, the default displays all of the variables or none if this is not possible.
specifies the starting time for the time axis of the chart. The default value is the smallest value of the times being plotted unless the logic options are invoked without the NOEXTRANGE option in the CHART statement. For a discussion of the default behavior in this instance, see the section Formatting the Axis.
specifies the smallest interval to be identified on the chart. For example, if MININTERVAL=DAY, then one day is represented on the chart by scale (see the SCALE= option) number of columns. The default value of the MININTERVAL= option is chosen on the basis of the formats of the times being plotted, as explained in the section Specifying the MININTERVAL= Option. See also the section Page Format for a further explanation of how to use the MININTERVAL= option in conjunction with the SCALE= option.
suppresses displaying an identifying job number for each activity. By default, the job number is displayed to the left of the Gantt chart.
suppresses displaying the concise default legend at the bottom of each page of the Gantt chart. The NOLEGEND option is not effective in full-screen mode.
suppresses displaying the timenow label. By default, the label is displayed on the bottom border of the chart.
requests that finish times on the chart be increased by one padding unit. An exception to this is when a milestone is to be plotted. See the DUR= option for further information regarding this. The PADDING= option enables the procedure to mark the finish times as the end of the last time period instead of the beginning. Possible values for padding are NONE, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QTR, YEAR, DTSECOND, DTMINUTE, DTHOUR, DTWEEK, DTMONTH, DTQTR, or DTYEAR. The default value is chosen on the basis of the format of the times being plotted. See the section Specifying the PADDING= Option for further explanation of this option.
specifies an upper limit on the number of pages allowed for the Gantt chart. The default value of pages is 100. This option is useful for preventing a voluminous amount of output from being generated by a wrong specification of the MININTERVAL= or SCALE= option. This option is ignored in full-screen mode.
indicates the position of one or more vertical reference lines on the Gantt chart. The values allowed are constant values. Only those reference lines that fall within the scope of the chart are displayed.
In line-printer and full-screen modes, the reference lines are displayed using the character specified in the REFCHAR= option. In graphics mode, use the CREF=, LREF=, and LWIDTH= options to specify the color, style, and width of the reference lines.
specifies that the reference lines are to be labeled. The labels are formatted in the same way as the time axis labels and are placed along the bottom border of the Gantt chart at the appropriate points. If the reference lines are too numerous and the scale does not allow all the labels to be nonoverlapping, then some of the labels are dropped.
specifies the variable that contains the resource-constrained finish time of each activity in the Schedule data set. This option is not required if the default variable name S_FINISH is used.
specifies the variable that contains the resource-constrained start time of each activity in the Schedule data set. This option is not required if the default variable name S_START is used.
requests that scale number of columns on the chart represent one unit of mininterval where mininterval is the value of the MININTERVAL= option. In line-printer and graphics modes, the default value of the SCALE= option is 1 if the time axis of the chart is too wide to fit on one page. If the time axis fits on less than one page, then a default value is chosen that expands the time axis as much as possible but still fits the time axis on one page. In full-screen mode, the default value of the SCALE= option is always 1.
requests that skip number of lines be skipped between the plots of the schedules of two activities. The SKIP= option can take integer values between 0 and 4, inclusive. In graphics mode, 0 is not a valid value. The default value of the SKIP= option is 1.
strips all leading blanks from character ID variables. The default behavior is to preserve any leading blanks.
requests that a detailed description of all symbols and patterns that are used in the Gantt chart be displayed before the first page of the chart. In line-printer mode, this description includes examples of some strings that could occur in the body of the Gantt chart. The SUMMARY option is not supported in full-screen mode.
specifies formats for up to three rows of time-axis labeling. One time-axis row is displayed for each format specified. The formats control the rows of the time-axis from top to bottom. Missing formats yield a blank row.
specifies the position for the timenow line on the chart. If the value is invalid or set to missing, TIMENOW is set to be the time period that follows the maximum of all specified actual times. If there are no actual times, TIMENOW is set to be equal to the current date. The value of TIMENOW is written to the log.
The timenow line has precedence over all other variables and reference lines and is drawn only if it falls within the range of the chart axis. If TIMENOW is based on the maximum of the actual times, and the MAXDATE= option is not specified, then the range of the chart axis is increased, if necessary, to display the timenow line. The timenow line is labeled by default; the label is formatted in the same way as the time axis and is placed along the bottom border of the chart. The timenow line is displayed in line-printer and full-screen modes using the character specified by the TNCHAR= option (or T, if none is specified) in the CHART statement. In graphics mode, use the CTNOW=, LTNOW=, and WTNOW= options in the CHART statement to specify the color, style, and width of the timenow line. In the presence of a timenow line, the actual schedule for an activity with an actual start less than TIMENOW and a missing actual finish time is represented on the Gantt chart by a bar that begins at the actual start and ends at TIMENOW to indicate that the activity is in progress at TIMENOW. This behavior is consistent with the convention used by PROC CPM. A warning is also issued to the log in this case.
specifies that the tickmark labels of the Gantt chart axis are to be displayed using the format associated with the first plot variable appearing in the order E_START=, E_FINISH=, L_START=, L_FINISH=, A_START=, A_FINISH=, S_START=, S_FINISH=, B_START=, B_FINISH=. This format is also used for labeling any reference lines and the timenow line.
Note: An INFORMAT statement might be necessary to identify user-defined formats. This enables the GANTT procedure to recognize the data type of the start and finish times specified in the input data set.
The following options can appear in the CHART statement and are specifically for the purpose of producing Gantt charts in line-printer and full-screen modes.
defines the characters to be used for constructing the chart outlines and dividers. The value is a string 11 characters long that defines the two bar characters, vertical and horizontal, and the nine corner characters: upper left, upper middle, upper right, middle left, middle middle (cross), middle right, lower left, lower middle, and lower right. The default value of the FORMCHAR= option is '|----|+|---'. You can substitute any character or hexadecimal string to customize the chart appearance. Use an index list to specify which default form character each supplied character replaces, or replace the entire default string by specifying the full 11 character replacement string with no index list. For example, change the four corners to asterisks by using
formchar(3 5 9 11)= '****'
Specifying the following produces charts with no outlines or dividers.
formchar=' ' (11 blanks)
If you route your output to an IBM 6670 printer that uses an extended font (typestyle 27 or 225) with input character set 216, it is recommended that you specify
formchar='FABFACCCBCEB8FECABCBBB'X
If you use a printer with a TN (text) print train, it is recommended that you specify the following:
formchar='4FBFACBFBC4F8F4FABBFBB'X
specifies the symbol to be used for drawing the connecting line described in the HCONNECT option. The default character is - . This is a line-printer option and is not valid in conjunction with the GRAPHICS option. For corresponding graphics options, see the LHCON= and CHCON= options described later in this section under “Graphics Options.”
indicates the character to display for holidays. Note that PROC GANTT displays only those holidays that fall within the duration or the slack time of an activity. The default character used for representing holidays is ! .
defines a string eight characters long that identifies nonblank characters to be used for drawing the schedule. The first two symbols are used to plot the schedule of an activity with positive total float. The first symbol denotes the duration of such an activity while the second symbol denotes the slack present in the activity’s schedule. The third symbol is used to plot the duration of a critical activity (with zero total float). The next two symbols are used to plot the schedule of a supercritical activity (one with negative float). Thus, the fourth symbol is used to plot the negative slack of such an activity starting from the late start time (to early start time), and the fifth symbol is used to plot the duration of the activity (from early start to early finish). The sixth symbol is used to plot the actual schedule of an activity if the A_START and A_FINISH variables are specified. The seventh symbol is used to plot the resource-constrained schedule of an activity if the S_START and S_FINISH variables are specified. The eighth symbol is used to plot the baseline schedule of an activity if the B_START and B_FINISH variables are specified. The default value of the JOINCHAR= option is '-.=-*-*_' .
indicates the character to display for the milestone symbol. If this option is not used, the letter M is used. In the event that another milestone or a character representing a start or finish time is to be plotted in this column, the OVERLAPCH= character is used.
indicates the overprint character to be displayed when more than one of the symbols in SYMCHAR='string' or MILECHAR='character' are to be plotted in the same column. The default character is * .
indicates the character to be displayed if one of the variables specified in the CHART statement is to be plotted in the same column as one of the start or finish times. If no OVPCHAR= option is given, the 'at' symbol (@) is used. Note that if one of the E_START, E_FINISH, L_START, L_FINISH, A_START, A_FINISH, S_START, S_FINISH, B_START, or B_FINISH times coincides with another, the overprint character to be displayed can be specified separately using the OVERLAPCH= option.
indicates the character to display for reference lines. If no REFCHAR= option is given, the vertical bar (|) is used. If a time variable value is to be displayed in the column where a REF= value goes, the plotting symbol for the time variable is displayed instead of the REFCHAR= value. Similarly, the HOLICHAR= symbol has precedence over the REFCHAR= value.
defines the symbols to be used for plotting the early start, late start, early finish, late finish, actual start and finish, resource-constrained start and finish, and baseline start and finish times, in that order. The default value is '<<>>**<>[]'. If any of the preceding symbols coincide with one another or with the milestone symbol, the symbol plotted is the one specified in the OVERLAPCH= option (or *, if none is specified). If the actual, resource-constrained, and baseline schedules are not plotted on the chart, you can specify only the first four symbols. If fewer than the required number of symbols are specified, nonspecified symbols are obtained from the default string.
indicates the character to display for the timenow line. If this option is not used, the letter T is used.
The following describes the interpretation of the CHART specification in graphics mode. Note that the GANTT procedure is not supported with the ActiveX or Java series of devices on the GOPTIONS statement.
As before, the CHART statement controls the format of the Gantt chart and specifies additional variables (other than the early, late, actual, resource-constrained, and baseline start and finish times) to be plotted on the chart. The same forms for the specification of CHART variables (as in the line-printer and full-screen version) are allowed, although the interpretation is somewhat different. Each form of specification is repeated here with a corresponding description of the interpretation. Note that the symbols for any activity are plotted on a line above the one corresponding to that activity. In addition to plotting the required symbol, PROC GANTT draws a vertical line below the symbol in the same color as the symbol. The length of the line is the same as the height of the bars (referred to as bar height) that represent the durations of the activities on the Gantt chart. This line helps identify the exact position of the plotted value. See also the section Special Fonts for Project Management and Decision Analysis for information on a special set of symbols that are suitable for representing CHART variables on a Gantt chart.
indicates that each variable is to be plotted using symbols specified in SYMBOL statements. The ith variable in the list is plotted using the plot symbol, color, and font specified in the ith SYMBOL statement. The height specified in the SYMBOL statement is multiplied by the bar height to obtain the height of the symbol that is plotted. Thus, if H=0.5 in the first SYMBOL statement, and the bar height is 5% of the screen area, then the first symbol is plotted with a height of 2.5%. For example, suppose the following two SYMBOL statements are in effect:
SYMBOL1 V=STAR C=RED H=1; SYMBOL2 V=V C=GREEN H=0.5 F=GREEK;
Then, the following statement
CHART SDATE FDATE;
causes values of SDATE
to be plotted with a red star that is as high as each bar and the values of FDATE
with an inverted green triangle that is half as high as the bar height. See the section Using SYMBOL Statements for further information on using the SYMBOL statement.
indicates that each variable is to be plotted using the symbol specified. The symbol must be a single character enclosed in quotes. The font used for the symbol is the same as the font used for the text.
indicates that each variable in parentheses is to be plotted using the symbol associated with that group. The symbol must be a single character enclosed in single quotes. For example, the following statement
CHART (ED SD)='*' (FD LD)='+';
plots the values of variables in the first group using an asterisk (*) and the values of variables in the second group using a plus sign (+).
A single CHART statement can contain requests in more than one of these forms.
Note: It is not necessary to specify a CHART statement if only default values are used to draw the Gantt chart.
The following options can appear in the CHART statement specifically for the production of high-resolution graphics quality Gantt charts.
specifies that the height of the actual schedule bar be h cellheights. The value of h is restricted to be a positive real number. The default bar height is one cellheight. This specification will override a BARHT= specification. In the event that the actual schedule bar corresponds to the logic bar (using the LEVEL= option), the value is ignored and the default value is used instead. Any non-working days corresponding to this schedule bar are also drawn using the same height as the schedule bar unless the HBARHT= option is specified.
specifies that the actual schedule bar be offset d cellheights from its default position. A value of zero corresponds to the default position. The direction of increase is from top to bottom. This specification will override a BAROFF= specification. In the event that the actual schedule bar corresponds to the logic bar (specified using the LEVEL= option), the value is ignored and the default value is used instead. Any non-working days corresponding to this schedule bar are drawn using the offset of the schedule bar unless the HBAROFF= option is specified.
specifies the variable identifying the names of the nodes representing activities in the Schedule data set. This option is required when the precedence information is specified using the AON format. The variable can be either numeric or character in type. If the PRECDATA= option is specified, then this variable must also exist in the Precedence data set and have identical type and length.
specifies the input data set that contains the appropriate Annotate variables for the purpose of adding text and graphics to the Gantt chart. The data set specified must be an Annotate-type data set. See also the section Annotate Processing for information specifically on annotate processing with the GANTT procedure.
The ANNOTATE= data set specified in a CHART statement is used only for the Gantt chart created by that particular CHART statement. You can also specify an ANNOTATE= data set in the PROC GANTT statement, which provides “global” Annotate information to be used for all Gantt charts created by the procedure.
causes PROC GANTT to use the specification for the AOA format for producing a Logic Gantt chart when the precedence information has been specified in both AOA format (TAIL= and HEAD= options) and AON format (ACTIVITY=, SUCCESSOR=, and, optionally, LAG= options). The default behavior is to use the AON format.
specifies that the height of all the schedule bars be h cellheights. The value of h is restricted to be a positive real number. The default value is one cellheight. This specification can be overridden for each schedule type by specifying the bar height option appropriate for that schedule type. If a Logic Gantt chart is produced, the specified bar height is ignored for the logic bar (specified using the LEVEL= option) and the default bar height of one cellheight is used for it instead. All non-working days corresponding to a schedule bar are drawn using the height of the schedule bar unless the HBARHT= option is specified.
specifies that all the schedule bars be offset d cellheights from their default positions. A value of zero corresponds to the default positions. The direction of increase is from top to bottom. This specification can be overridden for each schedule type by specifying the bar offset option that is appropriate for that schedule type. If a Logic Gantt chart is produced, the specified bar offset is ignored for the logic bar (specified using the LEVEL= option) and the default bar offset of zero used instead.
specifies that the height of the baseline schedule bar be h cellheights. The value of h is restricted to be a positive real number. The default bar height is one cellheight. This specification overrides a BARHT= specification. In the event that the baseline schedule bar corresponds to the logic bar (using the LEVEL= option), the value is ignored and the default value is used instead. Any non-working days corresponding to this schedule bar are also drawn using the same height as the schedule bar unless the HBARHT= option is specified.
specifies that the baseline schedule bar be offset d cellheights from its default position. A value of zero corresponds to the default position. The direction of increase is from top to bottom. This specification overrides a BAROFF= specification. In the event that the baseline schedule bar corresponds to the logic bar (specified using the LEVEL= option), the value is ignored and the default value is used instead. Any non-working days corresponding to this schedule bar are drawn using the offset of the schedule bar unless the HBAROFF= option is specified.
positions the bottom of the Gantt chart at the bottom of the page, just above the footnotes. This option is ignored if you specify the TOP or TJUST option.
specifies the color to use for displaying axes for the Gantt chart. The default color depends on the GOPTIONS statement and the GSTYLE system option; see the section ODS Style Templates for more information.
specifies the color to use for filling the axis area. If the CFRAME= option is not specified and the GSTYLE system option is not in effect, then the axis area is not filled. If the GSTYLE system option is in effect, then the default color depends on the current ODS style template; see the section ODS Style Templates for more information. The CFRAME= option is ignored if the NOFRAME option is specified.
specifies the width of the axis area as a percentage of the total Gantt chart width in the chart that would be produced if you had a page large enough to contain the entire chart without compression. The Gantt procedure rescales the chart so the axis area with is p% of the virtual chart width and the text area width is (100-p)% of the virtual chart width.
This option gives you the capability to generate Gantt charts that are consistent in their appearance. In the event that the chart fits on a single page, it is possible to get a smaller chart than had the CHARTWIDTH= option not been specified. You can use the FILL option in this case if you wish to use the entire page.
specifies the color to use for drawing the horizontal connecting lines. The default color depends on the GOPTIONS statement and the GSTYLE system option; see the section ODS Style Templates for more information.
specifies the color to use for drawing the milestone symbol on the chart. If the CMILE= option is not specified, the default color of the milestones follows the rules for coloring the bars of the relevant schedule. For example, the milestone depicting a critical activity is drawn with the color of the fill pattern used for critical activities. For an activity with slack, the early start and late start milestone are drawn with the color of the fill pattern used for the duration and the slack time of a noncritical activity, respectively. You can also control the color at the activity level by using a PATTERN variable.
specifies that the Gantt chart be drawn on the number of output pages determined by the HPAGES= and VPAGES= options. If the HPAGES= option is not specified, the procedure assumes a default of HPAGES=1. If the VPAGES= option is not specified, the procedure assumes a default of VPAGES=1. The COMPRESS option does not attempt to maintain the aspect ratio of the Gantt chart. To maintain the aspect ratio of the Gantt chart, use the PCOMPRESS option instead.
specifies the color to use for drawing the precedence connections. The default color depends on the GOPTIONS statement and the GSTYLE system option; see the section ODS Style Templates for more information.
specifies the color to use for drawing vertical reference lines on the chart. The default color depends on the GOPTIONS statement and the GSTYLE system option; see the section ODS Style Templates for more information.
specifies the color to use for displaying text that appears on the chart, including variable names or labels, tickmark values, values of ID variables, and so on. The default color depends on the GOPTIONS statement and the GSTYLE system option; see the section ODS Style Templates for more information.
names the columns of activity text to be displayed using the color of the PATTERN variable when one exists or from the fill pattern from a particular schedule bar.
A missing value for a PATTERN variable results in the default text color being used. The default text color is the value of the CTEXT= option.
In the absence of a PATTERN variable, the activity text color is the color of the fill pattern indicating the duration of the schedule identified by the PATLEVEL= option. If PATLEVEL=EARLY or PATLEVEL=LATE, the color depends on the status of the activity. Colors for critical duration, supercritical duration, and normal duration are used depending on whether the activity is critical, supercritical, or noncritical, respectively. If more than one level is specified, the first in order of appearance on the Gantt chart is used, that is, in order EARLY, LATE, ACTUAL, RESOURCE, BASELINE.
Possible values for the CTEXTCOLS= option are shown in the following table.
Value |
Interpretation |
ZONE |
ZONE variable column |
JOBNUM |
Job number column |
ID |
ID variable columns |
FLAG |
Status flag column |
ALL |
All of the above (default) |
specifies the color to use for drawing the timenow line on the chart. The default color depends on the GOPTIONS statement and the GSTYLE system option; see the section ODS Style Templates for more information.
specifies the color to use for drawing the horizontal zone lines that demarcate the different zones on the chart. The default color depends on the GOPTIONS statement and the GSTYLE system option; see the section ODS Style Templates for more information.
specifies a descriptive string, up to 40 characters in length, that appears in the description field of the master menu of PROC GREPLAY. If the DESCRIPTION= option is omitted, the description field contains a description assigned by PROC GANTT.
specifies that the height of the early/late schedule bar be h cellheights. The value of h is restricted to be a positive real number. The default bar height is one cellheight. This specification overrides a BARHT= specification. In the event that the early/late schedule bar corresponds to the logic bar (using the LEVEL= option), the value is ignored and the default value is used instead. Any non-working days corresponding to this schedule bar are also drawn using the same height as the schedule bar unless the HBARHT=option is specified.
specifies that the early/late schedule bar be offset d cellheights from its default position. A value of zero corresponds to the default position. The direction of increase is from top to bottom. This specification overrides a BAROFF= specification. In the event that the early/late schedule bar corresponds to the logic bar (specified using the LEVEL= option), the value is ignored and the default value is used instead. Any non-working days corresponding to this schedule bar are drawn using the offset of the schedule bar unless the HBAROFF= option is specified.
specifies the font to use for displaying job numbers, ID variables, legend, labels on the time axis, and so forth. The default font depends on the GOPTIONS statement and the GSTYLE system option; see the section ODS Style Templates for more information.
specifies the font to use for drawing the milestone symbol on the chart. To select a symbol from the special symbol table, set FMILE=NONE or leave it unspecified. If the FMILE= option is specified without a corresponding VMILE= option, the value of the FMILE= option is ignored, and the default milestone symbol, a filled diamond, is used instead. A warning is issued to the log in this instance.
See also the section Special Fonts for Project Management and Decision Analysis for information on a special set of symbols that are suitable for representing milestones on a Gantt chart.
specifies that all non-working days be displayed with a bar which is h cellheights high. The default behavior is to use the same height as that of the schedule bar.
specifies that the bars which represent non-working days be offset d cellheights from their default positions. The default behavior is to use the same offset as that of the schedule bar.
specifies the variable (either character or numeric) in the Schedule data set that contains the name of the node that represents the finish of the activity. This option is required when the precedence information is specified using the AOA format.
specifies that the height for all text in PROC GANTT, excluding TITLE and FOOTNOTE statements, be h times the value of HTEXT=, the default text height specified in the GOPTIONS statement of SAS/GRAPH. The value of h is a positive real number; the default value is 1.0.
To illustrate, suppose you have the specification HEIGHT=0.6 in the CHART statement and the following GOPTIONS statement:
GOPTIONS htext = 2 in;
Then the height for all text in PROC GANTT is 0.6 x 2 in = 1.2 in.
If the value of HTEXT= is not specified in a GOPTIONS statement, then the text height is determined by the font size attribute of the GraphDataText element of the current ODS style template. See the section ODS Style Templates for more information about ODS styles.
For each activity, all text corresponding to the JOB, FLAG, and ID variables is displayed at a depth of d cells from the top of the first bar corresponding to the activity, where d is the value of the HTOFF= option. The default value of d is 1.0. Furthermore, the text strings do not overwrite one another and skip, the value of the SKIP= option, is not increased to accommodate a large text height. Subject to the preceding restrictions, PROC GANTT calculates the maximum allowable value for text height as the height occupied by (skip + the number of different schedule bars drawn per activity) blank lines. Specifically, this is the height between like bars corresponding to consecutive activities. If the specified text height exceeds this value, the height is truncated to the maximum allowable value and a warning is issued to the log. This option enables you to enlarge the text to at least the height occupied by all of the schedule bars, making it easier to read. This is especially useful when the value of the VPOS= option is very large, and several schedule bars are plotted for each activity. It also provides easier identification of the activity corresponding to a given schedule bar.
specifies the height in cells of the milestone symbol. The height is a positive real number; the default value is 1.0.
specifies that the Gantt chart is to be produced using h horizontal pages. This, however, may not be possible due to intrinsic constraints on the output. For example, the GANTT procedure requires that every horizontal page represent at least one activity. Thus, the number of horizontal pages can never exceed the number of activities in the project. Subject to such inherent constraints, the GANTT procedure attempts to use the specified value for the HPAGES= option; if this fails, it uses h as an upper bound. The exact number of horizontal pages used by the Gantt chart is given in the _ORGANTT macro variable.
The appearance of the chart with respect to the HPAGES= option is also influenced by the presence of other related procedure options. The HPAGES= option performs the task of determining the number of vertical pages in the absence of the VPAGES= option. If the COMPRESS or PCOMPRESS option is specified in this scenario, the chart uses one vertical page; if neither option is specified, the number of vertical pages is computed to display as much of the chart as possible in a proportional manner.
specifies that the line upon which all activity text rests, also referred to as the font baseline, is positioned at a depth of d cells below the top of the first bar. The default value of d is 1.0. The value of the HTOFF= option can be any nonnegative real number less than the (skip + the number of different schedule bars per activity - 1). A value of 0 positions text on the line corresponding to the top of the first bar. Assigning the maximum value corresponds to positioning text directly above the bar reserved for CHART variables of the next activity on the page. If a value larger than the maximum is specified, PROC GANTT truncates this value to the maximum and issues a warning to the log. Furthermore, if the HEIGHT= and HTOFF= values cause activity text to overwrite the text headings, PROC GANTT reduces the HTOFF= value accordingly and issues a warning to the log.
specifies the variable that links observations in the Label data set (label definitions) to observations in the Schedule data set (activities). This variable must exist in both the Schedule data set and the Label data set and be identical in type and length. The variable can be either numeric or character in type. The linking can be a 1-1, 1-many, many-1, or many-many relationship. The linking can be used to extract positional information as well as the text string information from the Schedule data set for an observation in the Label data set when such information cannot be retrieved from the relevant variables in the Label data set.
If the _Y variable does not exist or its value is missing, the vertical coordinate for a label’s placement position is determined from the activities that are linked to it and their relative positions on the activity axis of the Gantt chart. A value of -1 for _Y implies linking of the label to every activity (assuming data values are used). This is equivalent to specifying the LABVAR= option in the CHART statement and linking every activity to the label. Note that any Label data set observation with dual linkage definitions is ignored. That is, an observation with _Y equal to -1 and with a nonmissing value for the LABVAR= variable is ignored.
The following rules apply to label definitions in the Label data set that are linked to activities in the Schedule data set:
If the _X variable does not exist in the Label data set or its value is missing, the horizontal coordinate is extracted from the Schedule data set using the _XVAR variable.
If the _LABEL variable does not exist in the Label data set or its value is missing, the text string is determined from the Schedule data set using the _LVAR variable.
specifies the rule to use for laying out labels that are defined in the Label data set. Valid values for rule are PAGECLIP and FRAMCLIP. PAGECLIP displays a label at the specified location and clips any part of the label that runs off the page. A value of FRAMCLIP differs from PAGECLIP in that it clips all labels with data value coordinates that run off the frame of the Gantt chart. The default value for rule is PAGECLIP.
splits labels that are defined in the Label data set wherever the split character appears. By default, if there are embedded blanks, the GANTT procedure attempts to split strings at suitable blanks so that the resulting lines are equal in length. To suppress the default splitting when using strings embedded with blanks, specify a dummy character not used in the labeling.
specifies the variables identifying the lag types of the precedence relationships between an activity and its successors. Each SUCCESSOR variable is matched with the corresponding LAG variable; that is, for a given observation, the ith LAG variable defines the relationship between the activities specified by the ACTIVITY variable and the ith SUCCESSOR variable. The LAG variables must be character type and their values are expected to be specified as one of FS, SS, SF, FF, which denote 'Finish-to-Start', 'Start-to-Start', 'Start-to-Finish', 'Finish-to-Finish', respectively. You can also use the keyword_duration_calendar specification used by PROC CPM although PROC GANTT uses only the keyword information and ignores the lag duration and the lag calendar. If no LAG variables exist or if an unrecognized value is specified for a LAG variable, PROC GANTT interprets the lag as a 'Finish-to-Start' type. If the PRECDATA= option is specified, the LAG variables are assumed to exist in the Precedence data set; otherwise, they are assumed to exist in the Schedule data set.
displays the Gantt chart left-justified with the left edge of the page. This option has priority over the RIGHT or RJUST option. Note that when displaying a Gantt chart in graphics mode, the chart is centered in both horizontal and vertical directions in the space available after accounting for titles, footnotes, and notes. The chart justification feature enables you to justify the chart in the horizontal and vertical directions with the page boundaries.
specifies the schedule bar to use for drawing the precedence connections. The default value of LEVEL= is 1, which corresponds to the topmost bar.
specifies the line style (1 – 46) to be used for drawing the horizontal connecting line produced by the HCONNECT option described earlier in this section. Possible values for linetype are
1 |
solid line (the default value when LHCON= is omitted) |
2 – 46 |
various dashed lines. |
For the corresponding line-printer option, see the HCONCHAR= option described earlier in this section.
specifies the line style (1 – 46) to use for drawing the precedence connections. The default line style is 1, a solid line.
specifies the line style (1 – 46) to use for drawing the reference lines. The default line style is 1, a solid line. For the corresponding line-printer option, see the REFCHAR= option described earlier.
specifies the line style (1 – 46) to use for drawing the timenow line. The default line style is 1, a solid line.
specifies the line width to be used for drawing lines, other than the timenow line and precedence connection lines, used in the Gantt chart. The default width is 1.
specifies the line style (1 – 46) to use for drawing the horizontal zone lines which demarcate the different zones on the chart. The default line style is 1, a solid line.
Figure 8.5: Valid Line Styles
specifies the maximum allowable distance, in number of columns, that a local vertical can be positioned from its minimum offset to avoid overlap with a global vertical. The value of the MAXDISLV= option must be greater than or equal to 0.1; the default value is 1. For the definitions of global and local verticals, see the section Specifying the Logic Options.
specifies the minimum inter-distance, in number of columns, of any two global verticals to prevent overlap. The value of the MININTGV= option must be greater than or equal to 0.1; the default value is 0.75.
specifies the minimum offset, in number of columns, of a global vertical from the end of the bar with which it is associated. The value of the MINOFFGV= option must be greater than or equal to 0.1; the default value is 1.
specifies the minimum offset, in number of columns, of a local vertical from the end of the bar with which it is associated. The value of the MINOFFLV= option must be greater than or equal to 0.1; the default value is 1.
where 'string' specifies a descriptive string, up to eight characters long, that appears in the name field of the master menu of the GREPLAY procedure. If you omit the NAME= option, the name field of the master menu contains the name of the procedure.
specifies the number of jobs that should be displayed on a single page. This option overrides the VPAGES= option.
suppresses the arrowhead when drawing the precedence connections.
suppresses the automatic extension of the chart axis range when drawing a Logic Gantt chart and neither the MINDATE= nor MAXDATE= option is specified.
suppresses drawing the vertical boundaries to the left and right of the Gantt chart; only the top axis and a parallel line at the bottom are drawn. If this option is not specified, the entire chart area is framed.
suppresses numbering the pages of a multipage Gantt chart. This is the default behavior. To number the pages of a multipage Gantt chart on the upper right-hand corner of each page, use the PAGENUM option.
suppresses the use of the PATTERN variable for filling the schedule bars. The default fill patterns are used instead. Typically, this option is used when you want to color the activity text using the CTEXTCOLS= option but leave the bars unaffected by the PATTERN variable.
suppresses the display of the time portion of the axis tickmark label when the value of MININTERVAL is DTDAY. When MININTERVAL=DTDAY, the time axis tickmarks are labeled with three lines, the first indicating the month, the second indicating the day, and the third indicating the time. This option effectively lowers the first two lines by a line and drops the third line altogether.
suppresses displaying the ZONE variable column that is automatically done in the presence of a zone variable.
specifies the number of tickmarks that should be displayed on the first horizontal page of the Gantt chart. The number of tickmarks on the remaining horizontal pages is determined by the page width and the columns of text that are to be displayed (ZONE, IDs, flag, and so forth). The page width is determined to be the minimum width necessary to fit the first page. If the IDPAGES option is specified, the number of tickmarks is the same as that specified by the NTICKS= option. This option overrides the HPAGES= option.
displays the value of the ZONE variable in the ZONE variable column only for activities that begin a new zone. A blank string is displayed for all other activities.
numbers the pages of the Gantt chart on the top right-hand corner of the page if the chart exceeds one page. The numbering scheme is from left to right, top to bottom.
specifies the different schedule bar levels to fill using the PATTERN variable. By default, all of the schedule bar levels for an activity are filled using the pattern defined by the PATTERN variable. Note that holiday and non-working days are not filled with this pattern.
Possible values for the PATLEVEL= option and their actions are shown in the following table.
Value |
Interpretation |
EARLY |
Early/Late schedule durations |
LATE |
Early/Late schedule durations |
ACTUAL |
Actual schedule durations |
RESOURCE |
Resource schedule duration |
BASELINE |
Baseline schedule duration |
ALL |
All of the above (default) |
In the absence of a PATTERN variable, this option defines the schedule type that determines the color for the activity text columns (ZONE variable, ID variable, Job number, Critical Flag), which are identified with the CTEXTCOLS= option. In this case, only one schedule type is used, namely the first one appearing in the order EARLY, LATE, ACTUAL, RESOURCE, BASELINE.
specifies an integer variable in the Schedule data set that identifies the pattern for filling the schedule bars and coloring the milestones. The default PATTERN variable name is _PATTERN. If the value of the PATTERN variable is missing for a particular activity, or if there is no PATTERN variable, the different schedule bars and milestones for the activity are drawn using the corresponding default patterns given in Table 8.7. The procedure uses the defined or default pattern to fill all the schedule bars and color all the milestones associated with the activity, except for holidays and non-working days. Use the PATLEVEL= option to restrict the application of the defined pattern to selected schedule bar levels.
When plotting split activities, you have the additional capability of overriding the defined pattern at the segment level by specifying a value for the PATTERN variable for the schedule data set observation representing the segment. Setting it to missing results in inheriting the PATTERN variable value from the observation for the same activity with a missing SEGMT_NO. For example, setting PATTERN=SEGMT_NO in the CHART statement when using split activities results in each segment using a different pattern.
Note that, if the value of the PATTERN variable is n for a particular activity, the GANTT procedure uses the specifications in the nth generated PATTERN definition, not the specifications in the PATTERN n statement.
The chart legend and summary, when displayed, indicate the default patterns that identify the different schedule types represented on the Gantt chart as listed in Table 8.7. Since the PATTERN variable overrides these values at the activity level, you must be careful in interpreting the summary and legend when using a PATTERN variable, especially if any of the specified pattern definitions overlap with one of the default patterns.
specifies that every output page of the Gantt chart is to be produced maintaining the original aspect ratio of the Gantt chart. The number of output pages is determined by the HPAGES= and VPAGES= options. In the absence of the HPAGES= and VPAGES= options, the PCOMPRESS option displays the Gantt chart on a single page.
specifies that the height of the resource-constrained schedule bar be h cellheights. The value of h is restricted to be a positive real number. The default bar height is one cellheight. This specification overrides a BARHT= specification. In the event that the resource-constrained schedule bar corresponds to the logic bar (using the LEVEL= option), the value is ignored and the default value is used instead. Any non-working days corresponding to this schedule bar are also drawn using the same height as the schedule bar unless the HBARHT= option is specified.
specifies that the resource-constrained schedule bar be offset d cellheights from its default position. A value of zero corresponds to the default position. The direction of increase is from top to bottom. This specification overrides a BAROFF= specification. In the event that the resource-constrained schedule bar corresponds to the logic bar (specified using the LEVEL= option), the value is ignored and the default value is used instead. Any non-working days corresponding to this schedule bar are drawn using the offset of the schedule bar unless the HBAROFF= option is specified.
displays the Gantt chart right-justified with the right edge of the page. This option is ignored in the presence of the LEFT or LJUST option.
causes PROC GANTT to terminate in the event that a valid AOA or AON specification exists, and an error occurs either in the logic system (memory allocation, data structure creation, and so on) or simply due to bad data (missing values for the ACTIVITY, TAIL, HEAD variables, and so on). The default behavior is to attempt drawing the chart without the precedence connections.
specifies the variables identifying the names of the immediate successors of the node specified by the ACTIVITY variable. This option is required when the precedence information is specified in the AON format. These variables must have the same type as the ACTIVITY variable. If the PRECDATA= option has been specified, the SUCCESSOR variables are assumed to exist in the Precedence data set; otherwise, they are assumed to exist in the Schedule data set.
specifies the variable in the Schedule data set that contains the name of the node that represents the start of the activity. This option is required when the precedence information is specified using the AOA format. The variable can be either numeric or character in type.
positions the top of the Gantt chart at the top of the page, just below the titles. This option has priority over the BOTTOM or BJUST option.
specifies a plot symbol from the font specified in the FMILE= option to be used as the milestone symbol on the chart. If the FMILE= option is set to NONE or is not specified, then the milestone symbol is the symbol specified by the VMILE= option in the special symbol table . The default milestone symbol is a filled diamond.
Specifies that the Gantt chart is to be produced using v vertical pages. This, however, may not be possible due to intrinsic constraints on the output. For example, the GANTT procedure requires that every vertical page represent at least one tickmark. Thus, the number of vertical pages can never exceed the number of tickmarks in the axis. Subject to such inherent constraints, the GANTT procedure attempts to use the specified value for the VPAGES= option; if this fails, it uses v as an upper bound. The exact number of vertical pages used by the Gantt chart is provided in the _ORGANTT macro variable.
The appearance of the chart with respect to the VPAGES= option is also influenced by the presence of other related procedure options. The VPAGES= option performs the task of determining the number of horizontal pages in the absence of the HPAGES= option. If the COMPRESS or PCOMPRESS option is specified in this scenario, the chart uses one horizontal page. If neither the COMPRESS nor PCOMPRESS option is specified, the number of horizontal pages is computed in order to display as much of the chart as possible in a proportional manner.
specifies the character variable in the schedule data set that identifies an HTML page for each activity. The procedure generates an HTML image map using this information for all the schedule bars, milestones, and ID variables corresponding to an activity.
specifies the line width to use for drawing the precedence connections. The default width is 1.
specifies the line width to use for drawing the timenow line. The default width is 4.
specifies the line width to use for drawing the horizontal zone lines which demarcate the different zones on the chart. The default linewidth is 1.
names the variable in the Schedule data set that is used to separate the Gantt chart into zones. This option enables you to produce a zoned Gantt chart. The GANTT procedure does not sort the Schedule data set and processes the data in the order it appears in the Schedule data set. A change in the value of the zone variable establishes a new zone. By default, the GANTT procedure displays a ZONE variable column before the ID variable columns. You can suppress this column using the NOZONECOL option. The GANTT procedure also draws a horizontal line demarcating zones. By default, the line spans the entire chart in the horizontal direction, both inside and outside the axis area. You can control the span of this line using the ZONESPAN= option. You can also adjust the vertical offset of the line from its default position by using the ZONEOFFSET= option. In addition, you can also control the graphical attributes associated with this line such as color, style, and width using the CZONE=, LZONE=, and WZONE= options, respectively.
specifies the offset in cellheights of the zone line from its default position of 0.5 cell height above the top of the first schedule bar for the first activity in the zone. The default value of d is 0. The direction of increase is from top to bottom.
specifies the span of the horizontal zone line that is drawn at the beginning of each new zone. Valid values for 'name' are LEFT, RIGHT, ALL, and NONE. The value of LEFT draws a line that spans the width of the columns of text that appear on the left hand side of the Gantt chart. The value of RIGHT draws a line that spans the width of the axis area which appears on the right-hand side of the chart. The value of ALL draws a line spanning both the preceding regions while the value of NONE suppresses the line altogether. The default value is ALL.