yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Quintiq file version 2.0
#parent: #root
Method OptimizeScopeThinQueue
{
  Description: 'Optimize the thin queue; try to empty as much as possible and make sure to first use lower IDs.'
  TextBody:
  [*
    queue := NumberVector::Construct( this.ScopeThinQueue() );
    queue.SortAscending();
    next := this.NextScopeThinID();
    
    for( i := queue.Size() - 1; i >= 0; i-- )
    {
      if( queue.Get( i ) + 1 = next )
      {
        next--;
        queue.Resize( i );
      }
      else
      {
        // Skip
        i := 0;
      }
    }
    
    queue.SortDescending();
    this.ScopeThinQueue( queue.AsBinaryValue() );
    this.NextScopeThinID( next );
  *]
}