haorenhui
2023-10-30 6d6cc10d9e8e242661da7fd655dec155a09d676c
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
31
32
33
34
35
36
37
38
39
40
41
Quintiq file version 2.0
#parent: #root
Method ParseRows
{
  TextBody:
  [*
    // yypsybs Jul-1-2023 (created)
    totalRows := 0;
    totalColumns := this.MatAttrSettingAndPlanStrategyDataColumn( relsize );
    
    if ( totalColumns > 0 ) {
      columnLongestList := maxset( this, MatAttrSettingAndPlanStrategyDataColumn, column, true, column.MatAttrSettingAndPlanStrategyDataCell( relsize ) );
      columnLongest := columnLongestList.First();
      totalRows := columnLongest.MatAttrSettingAndPlanStrategyDataCell( relsize );
      
      this.MatAttrSettingAndPlanStrategyDataRow( relflush );
      
      cells := construct( structured[MatAttrSettingAndPlanStrategyDataCell] );
      traverse ( this, MatAttrSettingAndPlanStrategyDataColumn, column ) {
        cells.Add( column.FirstCellInColumn() );
      }
      
      for ( i := 0; i < totalRows; i++ ) {
        assert( selectvalues( cells, Elements, c, true, c.MatAttrSettingAndPlanStrategyDataColumn().columnIndex() ).ToString( "" ) = 
                selectvalues( selectsortedset( cells, Elements, c, true, c.MatAttrSettingAndPlanStrategyDataColumn().columnIndex() ), Elements, c, true, c.MatAttrSettingAndPlanStrategyDataColumn().columnIndex() ).ToString( "" ),
                "Assertion error in MatAttrSettingAndPlanningStrategyDataTable::parseRows: Cells not sorted by column index" );
        row := this.MatAttrSettingAndPlanStrategyDataRow( relnew, rowNo := i );
        
        newCells := construct( structured[MatAttrSettingAndPlanStrategyDataCell] );
        
        traverse ( cells, Elements, c ) {
          row.MatAttrSettingAndPlanStrategyDataCell( relinsert, c );
          
          newCells.Add( c.NextCellInColumn() );
        }
        
        cells := &newCells;
      }
    }
  *]
}