lazhen
2024-11-22 f244ae12e0b29ced1402f8c2eda462845fb20875
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
StaticMethod RefreshData (
  InterfaceDataset interface,
  MacroPlan macroPlan
)
{
  TextBody:
  [*
    //根据当前版本的装配上线计划
    interface.AssemblyOnlinePlanVersion( relflush );
    allunit                := AssemblyOnlinePlanVersion::GetDefaultAllUnit();
    name                   := AssemblyOnlinePlanVersion::GetDefaultName();//search                 :=
    interface.AssemblyOnlinePlanVersionSearch( relnew, Product := allunit, ProductionLine := allunit, Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );//, TimeUnit := Translations::MP_GlobalParameters_Day()
    table                  := selectobject( interface, AssemblyOnlinePlanVersion, version, not version.IsShow() );
    if( isnull( table ) ){
      table                := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name );
    }
    //showtable              := selectobject( interface, AssemblyOnlinePlanVersion, version, version.IsShow() );
    //if( isnull( showtable ) ){
    //  showtable               := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name, IsShow := true );
    //}
    aopcolumns             := selectuniquevalues(  macroPlan, NewAssemblyOnlinePlanColumn, aopcolumn, not exists( table, Column, column, column.StartDate() = aopcolumn.StartDate() ), aopcolumn.StartDate() );//, column.TimeUnit() = Translations::MP_GlobalParameters_Day()
    if( aopcolumns.Size() > 0 ){
      table.GenerateColumn( aopcolumns, false );
    }
    traverse( macroPlan, NewAssemblyOnlinePlanRow, aoprow, aoprow.Type() = '1' ){
      row                  := table.GetRow( aoprow );
      traverse( table, Column, column ){//, aopcolumns.Find( column.StartDate() ) > -1
        qty                := sum( aoprow, NewAssemblyOnlinePlanCell, aopcell, column.StartDate() <= aopcell.NewAssemblyOnlinePlanColumn().StartDate()
                                         and column.EndDate() >= aopcell.NewAssemblyOnlinePlanColumn().StartDate(), aopcell.Quantity() );
        
        cell               := selectobject( row, Cell, cell, cell.Column() = column );
        cell.Quantity( qty );
      }
    }
    //productids             := selectuniquevalues( table, Row, row, row.Name() );
    //productlines           := selectuniquevalues( table, Row, row, row.ProductionLine() );
    //showtable.Generate( search, productids, productlines );
  *]
}