Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method SetDefaultDisplayIndexForUnit 
 | 
{ 
 | 
  Description: 'Set default display index for unit' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Level-order traversal of Unit hierarchy 
 | 
    // Start with root units, sorted by name 
 | 
    queue := selectsortedset( this, Unit, unit, isnull( unit.Parent() ), unit.Name() ); 
 | 
    i := 0; 
 | 
    while( queue.Size() > 0 ) 
 | 
    { 
 | 
      // Get leading unit 
 | 
      unit := queue.Element( 0 ); 
 | 
      unit.DisplayIndexForExcel( i ); 
 | 
      i++; 
 | 
     
 | 
      // Add child units to the queue, sorted by name 
 | 
      childunits := selectsortedset( unit, Child, child, true, child.Name() ); 
 | 
      traverse( childunits, Elements, child ) 
 | 
      { 
 | 
        queue.Add( child ); 
 | 
      } 
 | 
      // Remove leading unit from queue 
 | 
      queue.Remove( unit ); 
 | 
    } 
 | 
  *] 
 | 
} 
 |