<Grid>
   <Cfg id="Slack" NoVScroll="1" IdChars="0123456789" NumberId="1" Undo="1" SuppressCfg="1"/>
   <Cfg DefaultDate="1/1/2010"/>
   <LeftCols>
      <C Name="id" Type="Int" CanEdit="0"/>
      <C Name="START" Type="Date"/>
      <C Name="DUR" Type="Float"/>
      <C Name="COMP" Type="Float"/>
      <C Name="DES" Type="Text" />
      <C Name="SLACK" Type="Float" CanEdit="0" />
      <C Name="ES" Type="Date" />
      <C Name="LF" Type="Date" />
   </LeftCols>
   <Cols>
      <C Name="GANTT" Type="Gantt"
         GanttDataUnits="d" GanttUnits="d" GanttWidth="16"
         GanttDescendants="DES" GanttSlack="SLACK"
         GanttStart="START" GanttDuration="DUR" GanttComplete="COMP"
         GanttMinStart="ES" GanttMaxEnd="LF"
         GanttEndLast="1" GanttLeft="1" GanttRight="2"
         GanttHeader1="d#%d"
         GanttObject="Main,Flow,Run"
         GanttBase="1/1/2010"
         />
   </Cols>
   <Def>
      <!-- Changes columns to show Run bar instead of the main bar -->
      <!-- This way is used just to show all the features in one grid -->
      <D Name="DEFRUN"
         Spanned="1" DURType="Text"
         GANTTGanttRun="DUR" GANTTGanttRunStart="START" GANTTGanttRunComplete="COMP"
         GANTTGanttRunSave="4"
         GANTTGanttStart="" GANTTGanttDuration=""
         />
   </Def>
   <Body>
      <B>
         <I id="0"/>
         <I id="1" START="1/1/2010" DUR="2" DES="2" COMP="50"/>
         <I id="2" START="1/3/2010" DUR="2" DES="3"/>
         <I id="3" START="1/5/2010" DUR="2" DES="6"/>
         <I id="4" START="1/1/2010" DUR="3" COMP="100" DES="5"/>
         <I id="5" START="1/4/2010" DUR="4" COMP="50" DES="6"/>
         <I id="6" 
            Spanned="1" STARTRange="1" STARTSpan="2"
            GANTTGanttFlow="START" GANTTGanttFlowComplete="COMP" 
            GANTTGanttStart="" GANTTGanttDuration=""
            START="1/8/2010~1/8/2010;1/10/2010~1/11/2010" DES="7"
            />
         <I id="7" START="1/12/2010" DUR="2"/>
         <I id="8" START="1/9/2010" DUR="2" DES="7"/>
         <I id="9" START="1/7/2010" DUR="2" LF="1/9/2010" DES="8"/>
         <I id="10" START="1/5/2010" DUR="2" ES="1/5/2010" DES="9"/>
         <I id="11" START="1/1/2010" DUR="2" DES="10"/>
         <I id="12" START="1/1/2010" DUR="5" DES="13" COMP="70"/>
         <I id="13" START="1/6/2010" DUR="4" DES="14"/>
         <I id="14" START="1/10/2010" DUR="0"/>
         <I Def="DEFRUN" id="15" START="1/1/2010" DUR="2,,box 1;1,;2,,box 2" DES="16" COMP="50"/>
         <I Def="DEFRUN" id="16" START="1/7/2010" DUR="2,,box 3;1,,4" DES="17" ES="1/7/2010" COMP="40"/>
         <I Def="DEFRUN" id="17" START="1/10/2010" DUR="2,,box 5;1,;1,,6" DES="18"/>
         <I Def="DEFRUN" id="18" START="1/14/2010" DUR="0,milestone"/>
      </B>
   </Body>
   <Solid>
      <Topbar Space="0" Cells="Base,Finish,Min,Err,Sep,Crit"
         BaseType='Date' BaseCanEdit='1' BaseWidth='65' BaseUndo='1'
         BaseLabel='Baseline'
         BaseFormula='Grid.GetGanttBase()'
         BaseOnChange='Grid.SetGanttBase(Value,2);'
         BaseHtmlPrefixFormula='Grid.Cols.GANTT.GanttBase===""?"&lt;span style=&apos;color:gray;&apos;>":"&lt;span>"'
         BaseHtmlPostfix='&lt;/span>'
         BaseTip='Starting date of the whole project.&lt;br>No task should start before it.&lt;br>It is also used when correcting dependencies.'

         FinishType='Date' FinishCanEdit='1' FinishWidth='65' FinishUndo='1' FinishLeft='2'
         FinishLabel='Finish date'
         FinishFormula='Grid.GetGanttFinish()'
         FinishOnChange='Grid.SetGanttFinish(Value);'
         FinishHtmlPrefixFormula='Grid.Cols.GANTT.GanttFinish===""?"&lt;span style=&apos;color:gray;&apos;>":"&lt;span>"'
         FinishHtmlPostfix='&lt;/span>'
         FinishTip='Finish date of the whole project.&lt;br>If grayed, it is calculated from the last task.&lt;br>It is used to calculate critical path.'

         MinType='Enum' MinLabel='Minimal slack' MinCanEdit='1' MinWidth='30' MinLeft='5' MinEnum='|-2|-1|0|1|2|3|4|5'
         MinFormula='Grid.Cols.GANTT.GanttMinSlack' 
         MinOnChange='Grid.RefreshGanttSlack(1,Value); Grid.SaveCfg();'
         MinTip='Minimal value for the Slack to be included in critical path'

         ErrType='Enum' ErrLabel='Error slack' ErrCanEdit='1' ErrWidth='30' ErrLeft='5' ErrEnum='|-2|-1|0|1|2|3|4|5'
         ErrFormula='Grid.Cols.GANTT.GanttErrSlack'
         ErrOnChange='Grid.RefreshGanttSlack(1,null,Value); Grid.SaveCfg();'
         ErrTip='Slack lower than this value will be marked as error'

         SepType='Bool' SepLabelRight='Separate slack' SepCanEdit='1' SepLeft='2'
         SepFormula='Grid.Cols.GANTT.GanttSeparateSlack?1:0'
         SepOnChange='Grid.Cols.GANTT.GanttSeparateSlack = Value; Grid.RefreshGanttSlack(); Grid.SaveCfg();'
         SepTip='If set, calculates finish date separately for every independent group of tasks&lt;br>and creates critical path for every such group&lt;br>In this case is the project finish ignored'

         CritType='Bool' CritNoColor='1' CritCanEdit='1' CritLeft='5'
         CritLabelRight='Show critical path only'
         CritOnChange='Grid.SetFilter("Crit",Value?"SLACK!==&apos;&apos; &amp;&amp; SLACK&lt;=Grid.Cols.GANTT.GanttMinSlack &amp;&amp; COMP!=100":"")'
         />
   </Solid>
   <Header SortIcons="2" id="id" START="Start" DUR="Duration" COMP="%" DES="Descendants" SLACK="Slack" ES="Early Start" LF="Late End"/>
</Grid>
