| Quintiq file version 2.0 | 
| #parent: #root | 
| Method Generate ( | 
|   OfflinePlanArchiveSearch search, | 
|   Strings products, | 
|   Strings units | 
| ) | 
| { | 
|   TextBody: | 
|   [* | 
|     // 甄兰鸽 Jun-25-2024 (created) | 
|     info( '-----------Search start-------' ); | 
|     table                   := selectobject( this,InterfaceDataset.OfflinePlanArchiveVersion, report, not report.IsShow() ); | 
|     //清空之前存储的显示数据 | 
|     aopcolumns              := selectuniquevalues(  table, Column, aopcolumn, aopcolumn.StartDate() >= search.StartDate() and aopcolumn.StartDate() <= search.EndDate(), aopcolumn.StartDate() );//aopcolumn.TimeUnit() = search.TimeUnit() and  | 
|     this.Clear( aopcolumns ); | 
|     traverse( table, Row, row, ( units.Size() = 0 or units.Find( row.ProductionLine() ) > -1 ) and ( products.Size() = 0 or products.Find( row.Name() ) > -1 ) ){ | 
|        | 
|       showrow               := selectobject( this, Row, showrow, showrow.Name() = row.Name() and showrow.Unit() = search.Unit() ); | 
|       if( isnull( showrow ) ){ | 
|         showrow             := this.Row( relnew, Name := row.Name(), ProductID := row.ProductID(), Unit := search.Unit() ); | 
|       } | 
|       traverse( this, Column, column ){ | 
|         cells               := selectset( row, Cell, cell, cell.Column().StartDate() >= column.StartDate() and cell.Column().StartDate() <= column.EndDate() );//cell.Column().TimeUnit() = Translations::MP_GlobalParameters_Day() and  | 
|          | 
|     //  traverse( row, Cell, cell, cell.Column().TimeUnit() = search.TimeUnit() ){ | 
|     //    column              := selectobject( this, Column, column, column.ColumnName() = cell.Column().ColumnName() ); | 
|         if( not isnull( column ) ){ | 
|           showcell          := selectobject( showrow, Cell, showcell, showcell.Column() = column ); | 
|           if( isnull( showcell ) ){ | 
|             showcell        := showrow.Cell( relnew, Quantity := 0, ActualProductionQty := 0 ); | 
|             column.Cell( relinsert, showcell ); | 
|           } | 
|           qty               := sum( cells, Elements, cell, cell.Quantity() ); | 
|           actqty            := sum( cells, Elements, cell, cell.ActualProductionQty() ); | 
|           showcell.Quantity( qty + showcell.Quantity() ); | 
|           showcell.ActualProductionQty( actqty + showcell.ActualProductionQty() ); | 
|     //      if( search.TimeUnit() = Translations::MP_GlobalParameters_Day() ){ | 
|             showcell.Order( cells.Element( 0 ).Order() ); | 
|             showcell.OrderNr( cells.Element( 0 ).OrderNr() ); | 
|     //      } | 
|         } | 
|       } | 
|     } | 
|     info( '-----------Search end-------' ); | 
|   *] | 
| } |