Quintiq file version 2.0 
 | 
#root 
 | 
#parent: LibMacroPlannerTCUI 
 | 
OrphanComponent FormProductPlanningMatrix 
 | 
{ 
 | 
  #keys: '[127710.1.818301225]' 
 | 
  Accessibility: 'Extensible' 
 | 
  BaseType: 'Form' 
 | 
  GBLayout 
 | 
  { 
 | 
    Type: 'internal[GBLayoutDefinition]' 
 | 
    Columns: 
 | 
    [ 
 | 
      GBFlow.Column { grow: 0 id: 366 parent: 0 } 
 | 
      GBFlow.Column { grow: 0 id: 617 parent: 0 } 
 | 
      GBFlow.Column { grow: 0 id: 256 parent: 0 } 
 | 
      GBFlow.Column { grow: 0 id: 285 parent: 0 } 
 | 
      GBFlow.Column { grow: 16 id: 891 parent: 0 } 
 | 
      GBFlow.Column { grow: 128 id: 261 parent: 0 } 
 | 
    ] 
 | 
    Elements: 
 | 
    [ 
 | 
      GBElement 
 | 
      { 
 | 
        Component => MatrixEditorProductPlanning 
 | 
        Position { startcolumn: 366 startrow: 185 endcolumn: 261 endrow: 185 } 
 | 
      } 
 | 
      GBElement 
 | 
      { 
 | 
        Component => CheckBoxFilterByProductLevel 
 | 
        Position { startcolumn: 285 startrow: 438 endcolumn: 285 endrow: 438 } 
 | 
      } 
 | 
      GBElement 
 | 
      { 
 | 
        Component => StringSelectionProductLevel 
 | 
        Position { startcolumn: 891 startrow: 438 endcolumn: 891 endrow: 438 } 
 | 
      } 
 | 
      GBElement 
 | 
      { 
 | 
        Component => ButtonShowStartOfPlanningHorizon 
 | 
        Position { startcolumn: 617 startrow: 438 endcolumn: 617 endrow: 438 } 
 | 
      } 
 | 
      GBElement 
 | 
      { 
 | 
        Component => ImageFilterBy889 
 | 
        Position { startcolumn: 256 startrow: 438 endcolumn: 256 endrow: 438 } 
 | 
      } 
 | 
      GBElement 
 | 
      { 
 | 
        Component => ImageWarningSizing 
 | 
        Position { startcolumn: 366 startrow: 438 endcolumn: 366 endrow: 438 } 
 | 
      } 
 | 
    ] 
 | 
    Gaps: [ left: 0 right: 0 top: 0 bottom: 0 inner: 5 ] 
 | 
    Rows: 
 | 
    [ 
 | 
      GBFlow.Row { grow: 0 id: 438 parent: 0 } 
 | 
      GBFlow.Row { grow: 128 id: 185 parent: 0 } 
 | 
    ] 
 | 
  } 
 | 
  Children: 
 | 
  [ 
 | 
    Component MatrixEditorProductPlanning 
 | 
    { 
 | 
      #keys: '[127710.1.818312567]' 
 | 
      BaseType: 'MatrixEditor' 
 | 
      GBLayout 
 | 
      { 
 | 
        Type: 'internal[GBLayoutDefinition]' 
 | 
        Gaps: [ left: 5 right: 5 top: 5 bottom: 5 inner: 5 ] 
 | 
      } 
 | 
      Children: 
 | 
      [ 
 | 
        Component AttributeContextMenu 
 | 
        { 
 | 
          #keys: '[127710.1.818312568]' 
 | 
          BaseType: 'popupMatrixEditorAttributeHeader' 
 | 
          Children: 
 | 
          [ 
 | 
            Component PopupParent 
 | 
            { 
 | 
              #keys: '[124988.0.211591097]' 
 | 
              BaseType: 'PopupParent' 
 | 
              IsDerived: true 
 | 
              Children: 
 | 
              [ 
 | 
                Component MenuFilter 
 | 
                { 
 | 
                  #keys: '[127710.1.1040933440]' 
 | 
                  BaseType: 'Menu' 
 | 
                  Children: 
 | 
                  [ 
 | 
                    Component MenuFIlterByProducts { #keys: '[127710.1.1040933441]' BaseType: 'Menu' Properties: [ Checked: true Checkmark: true Text: 'Products' ] } 
 | 
                    Component MenuFIlterByStockingPoints { #keys: '[127710.1.1040933442]' BaseType: 'Menu' Properties: [ Checked: true Checkmark: true Text: 'Stocking points' ] } 
 | 
                    Component MenuFIlterByPeriodsAttribute { #keys: '[131438.0.418831676]' BaseType: 'Menu' Properties: [ Checked: true Checkmark: true Text: 'Periods' ] } 
 | 
                  ] 
 | 
                  Properties: 
 | 
                  [ 
 | 
                    Image: 'FUNNEL' 
 | 
                    Text: 'Filter' 
 | 
                    ModeledStringList ChildOrdering 
 | 
                    { 
 | 
                      c: MenuFIlterByProducts 
 | 
                      c: MenuFIlterByStockingPoints 
 | 
                      c: MenuFIlterByPeriodsAttribute 
 | 
                    } 
 | 
                  ] 
 | 
                } 
 | 
              ] 
 | 
              Properties: 
 | 
              [ 
 | 
                ModeledStringList ChildOrdering 
 | 
                { 
 | 
                  c: MenuEditRepresesntation 
 | 
                  c: menuSeparator279 
 | 
                  c: MenuFilter 
 | 
                  c: MenuSUbtotal 
 | 
                } 
 | 
              ] 
 | 
            } 
 | 
          ] 
 | 
          Properties: 
 | 
          [ 
 | 
            PosX: 136 
 | 
            PosY: 181 
 | 
          ] 
 | 
        } 
 | 
        Component menuMatrixEditorCell 
 | 
        { 
 | 
          #keys: '[127710.1.818312569]' 
 | 
          BaseType: 'popupMatrixEditor' 
 | 
          Children: 
 | 
          [ 
 | 
            Component PopupParent id:PopupParent_1 
 | 
            { 
 | 
              #keys: '[107036.0.311161801]' 
 | 
              BaseType: 'PopupParent' 
 | 
              IsDerived: true 
 | 
              Children: 
 | 
              [ 
 | 
                Component menuSeparator694 { #keys: '[127710.1.828509803]' BaseType: 'Menu' Properties: [ Separator: true ] } 
 | 
                Component MenuSmartPlan { #keys: '[127710.1.829788744]' BaseType: 'Menu' Properties: [ Image: 'COMPONENT_GREEN' Shortcut: 'Alt+P' Text: 'Smart plan...' ] } 
 | 
                Component MenuReset { #keys: '[127710.1.830274473]' BaseType: 'Menu' Properties: [ Image: 'trash' Shortcut: 'Del' Text: 'Reset' ] } 
 | 
                Component MenuLock { #keys: '[121072.0.288277152]' BaseType: 'Menu' Properties: [ Image: 'LOCK' Shortcut: 'Alt+L' Text: 'Lock' ] } 
 | 
                Component MenuUnlock { #keys: '[121072.0.288277402]' BaseType: 'Menu' Properties: [ Image: 'LOCK_OPEN' Shortcut: 'Alt+Ctrl+L' Text: 'Unlock' ] } 
 | 
                Component menuSeparator852 { #keys: '[130238.0.374686170]' BaseType: 'Menu' Properties: [ Separator: true ] } 
 | 
                Component MenuAdvance 
 | 
                { 
 | 
                  #keys: '[130238.0.374686506]' 
 | 
                  BaseType: 'Menu' 
 | 
                  Children: 
 | 
                  [ 
 | 
                    Component MenuNewInventorySupply { #keys: '[130238.0.374687363]' BaseType: 'Menu' ViewSecurity: 'InventorySupplies' Properties: [ Image: 'CUBES_BLUE' Shortcut: 'Alt+Y' Text: 'New inventory supply...' ] } 
 | 
                    Component MenuEditInventorySpecification { #keys: '[130238.0.374687782]' BaseType: 'Menu' ViewSecurity: 'InventorySpecifications' Properties: [ Image: 'AVERAGE' Shortcut: 'Alt+X' Text: 'Edit inventory specification...' ] } 
 | 
                    Component MenuCreateSalesDemand { #keys: '[130238.0.374688159]' BaseType: 'Menu' Properties: [ Image: 'NOTE_NEW' Shortcut: 'Alt+S' Text: 'Create sales demand...' ] } 
 | 
                    Component menuSeparator575 { #keys: '[130238.0.374688389]' BaseType: 'Menu' Properties: [ Separator: true ] } 
 | 
                    Component MenuAllowNegativeInventory { #keys: '[130238.0.374915913]' BaseType: 'Menu' Properties: [ Image: 'CUBE_BLUE' Shortcut: 'Alt+N' Text: 'Allow negative inventory' ] } 
 | 
                    Component MenuDisallowNegativeInventory { #keys: '[130238.0.374916245]' BaseType: 'Menu' Properties: [ Image: 'CUBE_YELLOW' Shortcut: 'Alt+Ctrl+N' Text: 'Disallow negative inventory' ] } 
 | 
                    Component menuSeparator268 { #keys: '[130238.0.374916476]' BaseType: 'Menu' Properties: [ Separator: true ] } 
 | 
                    Component MenuEditComment { #keys: '[133706.0.592791681]' BaseType: 'Menu' Properties: [ Image: 'TEXT_MARKED' Shortcut: 'Alt+E' Text: 'Edit not&e...' ] } 
 | 
                    Component menuSeparator725 { #keys: '[133706.0.592792372]' BaseType: 'Menu' Properties: [ Separator: true ] } 
 | 
                    Component MenuNewActual { #keys: '[136856.0.990456556]' BaseType: 'Menu' Properties: [ Image: 'SHAPE_CIRCLE' Shortcut: 'Alt+A' Text: 'New actual...' ] } 
 | 
                  ] 
 | 
                  Properties: 
 | 
                  [ 
 | 
                    Text: 'Advanced' 
 | 
                    ModeledStringList ChildOrdering 
 | 
                    { 
 | 
                      c: MenuNewInventorySupply 
 | 
                      c: MenuNewActual 
 | 
                      c: MenuEditInventorySpecification 
 | 
                      c: menuSeparator575 
 | 
                      c: MenuAllowNegativeInventory 
 | 
                      c: MenuDisallowNegativeInventory 
 | 
                      c: menuSeparator268 
 | 
                      c: MenuEditComment 
 | 
                      c: menuSeparator725 
 | 
                      c: MenuCreateSalesDemand 
 | 
                    } 
 | 
                  ] 
 | 
                } 
 | 
                Component MenuSmartPlanRow { #keys: '[130238.0.384087853]' BaseType: 'Menu' Properties: [ Image: 'COMPONENTS' Shortcut: 'Alt+Ctrl+P' Text: 'Smart plan row...' ] } 
 | 
                Component MenuLegend { #keys: '[130076.0.811622717]' BaseType: 'Menu' Properties: [ Image: 'COLORS' Text: 'Legend...' ] } 
 | 
                Component MenuActions 
 | 
                { 
 | 
                  #keys: '[107054.0.263260024]' 
 | 
                  BaseType: 'MenuActions' 
 | 
                  IsDerived: true 
 | 
                  Properties: 
 | 
                  [ 
 | 
                    ModeledStringList ChildOrdering 
 | 
                    { 
 | 
                      c: menuExportList 
 | 
                      c: MenuCopy 
 | 
                      c: MenuPaste 
 | 
                      c: menuSeparator_1 
 | 
                      c: MenuConfigureMatrixEditor 
 | 
                      c: MenuChangeAttribute 
 | 
                      c: MenuEditRepresentation 
 | 
                    } 
 | 
                  ] 
 | 
                } 
 | 
              ] 
 | 
              Properties: 
 | 
              [ 
 | 
                ModeledStringList ChildOrdering 
 | 
                { 
 | 
                  c: MenuActions 
 | 
                  c: Menu 
 | 
                  c: menuSeparator694 
 | 
                  c: MenuSmartPlan 
 | 
                  c: MenuSmartPlanRow 
 | 
                  c: MenuLock 
 | 
                  c: MenuUnlock 
 | 
                  c: MenuReset 
 | 
                  c: menuSeparator852 
 | 
                  c: MenuAdvance 
 | 
                  c: MenuLegend 
 | 
                } 
 | 
              ] 
 | 
            } 
 | 
          ] 
 | 
          Properties: 
 | 
          [ 
 | 
            PosX: 53 
 | 
            PosY: 175 
 | 
          ] 
 | 
        } 
 | 
        Component GUIDataExtractor 
 | 
        { 
 | 
          #keys: '[127710.1.818312574]' 
 | 
          BaseType: 'GUIDataExtractor' 
 | 
          Properties: 
 | 
          [ 
 | 
            DataSet: 'MacroPlan' 
 | 
            DataType: 'MacroPlan' 
 | 
            FixedFilter: 'object.ProductInStockingPoint_MP().IsUsed()' 
 | 
            PosX: 5 
 | 
            PosY: 30 
 | 
            Transformation: 'Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod' 
 | 
          ] 
 | 
        } 
 | 
        Component popupScaleView 
 | 
        { 
 | 
          #keys: '[127710.1.818316484]' 
 | 
          BaseType: 'popupScaleView' 
 | 
          Children: 
 | 
          [ 
 | 
            Component PopupParent id:PopupParent_2 
 | 
            { 
 | 
              #keys: '[107036.0.337329115]' 
 | 
              BaseType: 'PopupParent' 
 | 
              IsDerived: true 
 | 
              Children: 
 | 
              [ 
 | 
                Component MenuSubtotal 
 | 
                { 
 | 
                  #keys: '[107036.0.2002902351]' 
 | 
                  BaseType: 'MenuSubtotal' 
 | 
                  IsDerived: true 
 | 
                  Children: 
 | 
                  [ 
 | 
                    Component MenuCount id:MenuCount_1 { #keys: '[107036.0.2002903591]' BaseType: 'MenuCount' IsDerived: true } 
 | 
                    Component MenuSum id:MenuSum_1 { #keys: '[107036.0.2002904543]' BaseType: 'MenuSum' IsDerived: true } 
 | 
                    Component MenuAverage id:MenuAverage_1 { #keys: '[107036.0.2002905513]' BaseType: 'MenuAverage' IsDerived: true } 
 | 
                    Component MenuStdDev id:MenuStdDev_1 { #keys: '[107036.0.2002908342]' BaseType: 'MenuStdDev' IsDerived: true } 
 | 
                    Component MenuRemoveSubtotal id:MenuRemoveSubtotal_1 { #keys: '[107036.0.2004963099]' BaseType: 'MenuRemoveSubtotal' IsDerived: true } 
 | 
                  ] 
 | 
                  Properties: 
 | 
                  [ 
 | 
                    ModeledStringList ChildOrdering 
 | 
                    { 
 | 
                      c: MenuCount_1 
 | 
                      c: MenuSum_1 
 | 
                      c: MenuAverage_1 
 | 
                      c: MenuMin 
 | 
                      c: MenuMax 
 | 
                      c: MenuStdDev_1 
 | 
                      c: Menu_1 
 | 
                      c: MenuRemoveSubtotal_1 
 | 
                    } 
 | 
                  ] 
 | 
                } 
 | 
              ] 
 | 
            } 
 | 
          ] 
 | 
          Properties: 
 | 
          [ 
 | 
            PosX: -2 
 | 
            PosY: -1 
 | 
          ] 
 | 
        } 
 | 
        Component MatrixEditorRows 
 | 
        { 
 | 
          #keys: '[127710.1.819572710]' 
 | 
          BaseType: 'GUIScaleView' 
 | 
          Children: 
 | 
          [ 
 | 
            Component GUIDataExtractorMatrixRow 
 | 
            { 
 | 
              #keys: '[127710.1.819572711]' 
 | 
              BaseType: 'GUIDataExtractor' 
 | 
              Properties: 
 | 
              [ 
 | 
                Component: 'DataHolderUsedPISP' 
 | 
                DataType: 'structured[ProductInStockingPoint_MP]' 
 | 
                PosX: 5 
 | 
                PosY: 30 
 | 
                Transformation: 'Elements' 
 | 
              ] 
 | 
            } 
 | 
            Component UserConfigurableInformationPISP 
 | 
            { 
 | 
              #keys: '[127710.1.820300549]' 
 | 
              BaseType: 'UserConfigurableInformation' 
 | 
              Properties: 
 | 
              [ 
 | 
                Identification: 'Row: Product in stocking point' 
 | 
                ObjectText: 'VALUE( object.IndentationSymbol() ) VALUE( object.Name() )' 
 | 
                ObjectType: 'ProductInStockingPoint_MP' 
 | 
                PosX: 57 
 | 
                PosY: 82 
 | 
                TooltipText: 'Tooltip test 123' 
 | 
              ] 
 | 
            } 
 | 
          ] 
 | 
          Properties: 
 | 
          [ 
 | 
            PosX: 5 
 | 
            PosY: 70 
 | 
            SortCriteria: "datamember:'Product_MP.DisplayIndex';datamember:'Name'" 
 | 
            ModeledStringList ChildOrdering 
 | 
            { 
 | 
              c: GUIDataExtractorMatrixRow 
 | 
              c: UserConfigurableInformationPISP 
 | 
            } 
 | 
          ] 
 | 
        } 
 | 
        Component RowViewContextMenu 
 | 
        { 
 | 
          #keys: '[127710.1.819572712]' 
 | 
          BaseType: 'popupScaleView' 
 | 
          Children: 
 | 
          [ 
 | 
            Component PopupParent id:PopupParent_4 
 | 
            { 
 | 
              #keys: '[107036.0.337329115]' 
 | 
              BaseType: 'PopupParent' 
 | 
              IsDerived: true 
 | 
              Children: 
 | 
              [ 
 | 
                Component MenuSort id:MenuSort_2 { #keys: '[107036.0.337333420]' BaseType: 'MenuSort' IsDerived: true Properties: [ Text: '&Sort rows...' ] } 
 | 
                Component MenuSubtotal id:MenuSubtotal_2 
 | 
                { 
 | 
                  #keys: '[107036.0.2002902351]' 
 | 
                  BaseType: 'MenuSubtotal' 
 | 
                  IsDerived: true 
 | 
                  Children: 
 | 
                  [ 
 | 
                    Component MenuCount id:MenuCount_3 { #keys: '[107036.0.2002903591]' BaseType: 'MenuCount' IsDerived: true } 
 | 
                    Component MenuSum id:MenuSum_3 { #keys: '[107036.0.2002904543]' BaseType: 'MenuSum' IsDerived: true } 
 | 
                    Component MenuAverage id:MenuAverage_3 { #keys: '[107036.0.2002905513]' BaseType: 'MenuAverage' IsDerived: true } 
 | 
                    Component MenuMin id:MenuMin_2 { #keys: '[107036.0.2002906456]' BaseType: 'MenuMin' IsDerived: true } 
 | 
                    Component MenuMax id:MenuMax_2 { #keys: '[107036.0.2002907419]' BaseType: 'MenuMax' IsDerived: true } 
 | 
                    Component MenuStdDev id:MenuStdDev_3 { #keys: '[107036.0.2002908342]' BaseType: 'MenuStdDev' IsDerived: true } 
 | 
                    Component MenuRemoveSubtotal id:MenuRemoveSubtotal_3 { #keys: '[107036.0.2004963099]' BaseType: 'MenuRemoveSubtotal' IsDerived: true } 
 | 
                  ] 
 | 
                  Properties: 
 | 
                  [ 
 | 
                    ModeledStringList ChildOrdering 
 | 
                    { 
 | 
                      c: MenuCount_3 
 | 
                      c: MenuSum_3 
 | 
                      c: MenuAverage_3 
 | 
                      c: MenuMin_2 
 | 
                      c: MenuMax_2 
 | 
                      c: MenuStdDev_3 
 | 
                      c: Menu_2 
 | 
                      c: MenuRemoveSubtotal_3 
 | 
                    } 
 | 
                  ] 
 | 
                } 
 | 
                Component MenuFilter438 
 | 
                { 
 | 
                  #keys: '[127710.1.1040931729]' 
 | 
                  BaseType: 'Menu' 
 | 
                  Children: 
 | 
                  [ 
 | 
                    Component MenuFIlterByProducts id:MenuFIlterByProducts_539 { #keys: '[127710.1.1040931730]' BaseType: 'Menu' Properties: [ Checked: true Checkmark: true Text: 'Products' ] } 
 | 
                    Component MenuFIlterByStockingPoints id:MenuFIlterByStockingPoints_799 { #keys: '[127710.1.1040931731]' BaseType: 'Menu' Properties: [ Checked: true Checkmark: true Text: 'Stocking points' ] } 
 | 
                    Component MenuFIlterByPeriods { #keys: '[131438.0.418825031]' BaseType: 'Menu' Properties: [ Checked: true Checkmark: true Text: 'Periods' ] } 
 | 
                  ] 
 | 
                  Properties: 
 | 
                  [ 
 | 
                    Image: 'FUNNEL' 
 | 
                    Text: 'Filter' 
 | 
                    ModeledStringList ChildOrdering 
 | 
                    { 
 | 
                      c: MenuFIlterByProducts_539 
 | 
                      c: MenuFIlterByStockingPoints_799 
 | 
                      c: MenuFIlterByPeriods 
 | 
                    } 
 | 
                  ] 
 | 
                } 
 | 
                Component MenuLegend393 { #keys: '[127238.0.1917278610]' BaseType: 'Menu' Properties: [ Image: 'COLORS' Text: 'Legend...' ] } 
 | 
                Component menuSeparator464 { #keys: '[127238.0.1917278685]' BaseType: 'Menu' Properties: [ Separator: true ] } 
 | 
              ] 
 | 
              Properties: 
 | 
              [ 
 | 
                ModeledStringList ChildOrdering 
 | 
                { 
 | 
                  c: MenuFilter438 
 | 
                  c: MenuSubtotal_2 
 | 
                  c: MenuSort_2 
 | 
                  c: menuSeparator464 
 | 
                  c: MenuLegend393 
 | 
                } 
 | 
              ] 
 | 
            } 
 | 
          ] 
 | 
          Properties: 
 | 
          [ 
 | 
            PosX: 4 
 | 
            PosY: 104 
 | 
          ] 
 | 
        } 
 | 
        Component MatrixEditorColumns 
 | 
        { 
 | 
          #keys: '[127710.1.819572713]' 
 | 
          BaseType: 'GUIScaleView' 
 | 
          Children: 
 | 
          [ 
 | 
            Component GUIDataExtractorMatrixColumn 
 | 
            { 
 | 
              #keys: '[127710.1.819572715]' 
 | 
              BaseType: 'GUIDataExtractor' 
 | 
              Properties: 
 | 
              [ 
 | 
                Component: 'DataHolderActivePeriods' 
 | 
                DataType: 'structured[Period_MP]' 
 | 
                PosX: 5 
 | 
                PosY: 30 
 | 
                Transformation: 'Elements' 
 | 
              ] 
 | 
            } 
 | 
            Component UserConfigurableInformationPeriod 
 | 
            { 
 | 
              #keys: '[127710.1.820829335]' 
 | 
              BaseType: 'UserConfigurableInformation' 
 | 
              Properties: 
 | 
              [ 
 | 
                Identification: 'Column: Period' 
 | 
                ObjectType: 'Period_MP' 
 | 
                PosX: 55 
 | 
                PosY: 57 
 | 
                TooltipText: 'Tooltip test 123' 
 | 
              ] 
 | 
            } 
 | 
          ] 
 | 
          Properties: 
 | 
          [ 
 | 
            PosX: 40 
 | 
            PosY: 70 
 | 
            SortCriteria: "datamember:'StartDate'" 
 | 
            ModeledStringList ChildOrdering 
 | 
            { 
 | 
              c: GUIDataExtractorMatrixColumn 
 | 
              c: UserConfigurableInformationPeriod 
 | 
            } 
 | 
          ] 
 | 
        } 
 | 
        Component ColumnViewContextMenu 
 | 
        { 
 | 
          #keys: '[127710.1.819572714]' 
 | 
          BaseType: 'popupScaleView' 
 | 
          Children: 
 | 
          [ 
 | 
            Component PopupParent id:PopupParent_5 
 | 
            { 
 | 
              #keys: '[107036.0.337329115]' 
 | 
              BaseType: 'PopupParent' 
 | 
              IsDerived: true 
 | 
              Children: 
 | 
              [ 
 | 
                Component MenuSort id:MenuSort_3 { #keys: '[107036.0.337333420]' BaseType: 'MenuSort' IsDerived: true Properties: [ Text: '&Sort columns...' ] } 
 | 
                Component MenuSubtotal id:MenuSubtotal_3 
 | 
                { 
 | 
                  #keys: '[107036.0.2002902351]' 
 | 
                  BaseType: 'MenuSubtotal' 
 | 
                  IsDerived: true 
 | 
                  Children: 
 | 
                  [ 
 | 
                    Component MenuCount id:MenuCount_4 { #keys: '[107036.0.2002903591]' BaseType: 'MenuCount' IsDerived: true } 
 | 
                    Component MenuSum id:MenuSum_4 { #keys: '[107036.0.2002904543]' BaseType: 'MenuSum' IsDerived: true } 
 | 
                    Component MenuAverage id:MenuAverage_4 { #keys: '[107036.0.2002905513]' BaseType: 'MenuAverage' IsDerived: true } 
 | 
                    Component MenuMin id:MenuMin_3 { #keys: '[107036.0.2002906456]' BaseType: 'MenuMin' IsDerived: true } 
 | 
                    Component MenuMax id:MenuMax_3 { #keys: '[107036.0.2002907419]' BaseType: 'MenuMax' IsDerived: true } 
 | 
                    Component MenuStdDev id:MenuStdDev_4 { #keys: '[107036.0.2002908342]' BaseType: 'MenuStdDev' IsDerived: true } 
 | 
                    Component MenuRemoveSubtotal id:MenuRemoveSubtotal_4 { #keys: '[107036.0.2004963099]' BaseType: 'MenuRemoveSubtotal' IsDerived: true } 
 | 
                  ] 
 | 
                  Properties: 
 | 
                  [ 
 | 
                    ModeledStringList ChildOrdering 
 | 
                    { 
 | 
                      c: MenuCount_4 
 | 
                      c: MenuSum_4 
 | 
                      c: MenuAverage_4 
 | 
                      c: MenuMin_3 
 | 
                      c: MenuMax_3 
 | 
                      c: MenuStdDev_4 
 | 
                      c: Menu_3 
 | 
                      c: MenuRemoveSubtotal_4 
 | 
                    } 
 | 
                  ] 
 | 
                } 
 | 
              ] 
 | 
              Properties: 
 | 
              [ 
 | 
                ModeledStringList ChildOrdering 
 | 
                { 
 | 
                  c: MenuSubtotal_3 
 | 
                  c: MenuSort_3 
 | 
                } 
 | 
              ] 
 | 
            } 
 | 
          ] 
 | 
          Properties: 
 | 
          [ 
 | 
            PosX: 47 
 | 
            PosY: 105 
 | 
          ] 
 | 
        } 
 | 
        Component DataHolderActivePeriodsProductPlanningMatrix 
 | 
        { 
 | 
          #keys: '[130256.0.413604009]' 
 | 
          BaseType: 'DataHolder' 
 | 
          Databinding: 'structured[Period_MP]*' 
 | 
          Children: 
 | 
          [ 
 | 
            Component GUIDataExtractorPeriods 
 | 
            { 
 | 
              #keys: '[130256.0.413604010]' 
 | 
              BaseType: 'GUIDataExtractor' 
 | 
              Properties: 
 | 
              [ 
 | 
                Component: 'DataHolderActivePeriods' 
 | 
                DataType: 'structured[Period_MP]' 
 | 
                PosX: 11 
 | 
                PosY: 10 
 | 
                Transformation: 'Elements' 
 | 
              ] 
 | 
            } 
 | 
          ] 
 | 
          Properties: 
 | 
          [ 
 | 
            Description: 'Periods selected on Periods navigation panel' 
 | 
            PosX: 583 
 | 
            PosY: 31 
 | 
          ] 
 | 
        } 
 | 
        Component GUITimerMoveToStartOfPlanning 
 | 
        { 
 | 
          #keys: '[130256.0.413964179]' 
 | 
          BaseType: 'GUITimer' 
 | 
          Properties: 
 | 
          [ 
 | 
            Interval: 300 
 | 
            PosX: 545 
 | 
            PosY: 30 
 | 
          ] 
 | 
        } 
 | 
        Component DataHolderProductPlanningMatrixSelection 
 | 
        { 
 | 
          #keys: '[132478.0.31031468]' 
 | 
          BaseType: 'DataHolder' 
 | 
          Databinding: 'structured[ProductInStockingPointInPeriod]*' 
 | 
          Children: 
 | 
          [ 
 | 
            Component GUIDataExtractor979 
 | 
            { 
 | 
              #keys: '[132478.0.31031721]' 
 | 
              BaseType: 'GUIDataExtractor' 
 | 
              Properties: 
 | 
              [ 
 | 
                Component: 'MatrixEditorProductPlanning' 
 | 
                DataType: 'ProductInStockingPointInPeriod' 
 | 
                PosX: 11 
 | 
                PosY: 14 
 | 
              ] 
 | 
            } 
 | 
          ] 
 | 
          Properties: 
 | 
          [ 
 | 
            PosX: 294 
 | 
            PosY: 75 
 | 
            ShowName: true 
 | 
          ] 
 | 
        } 
 | 
        Component UserConfigurableInformationPISPIP 
 | 
        { 
 | 
          #keys: '[132448.0.676875063]' 
 | 
          BaseType: 'UserConfigurableInformation' 
 | 
          Properties: 
 | 
          [ 
 | 
            Identification: 'Cell: PISPIP' 
 | 
            ObjectType: 'ProductInStockingPointInPeriod' 
 | 
            PosX: 54 
 | 
            PosY: 142 
 | 
            Precondition: 
 | 
            [* 
 | 
              // Workaround for generating binding to make matrix update cells when the attributes on which color depends changes. 
 | 
              (   true 
 | 
              or  object.HasUserCreatedSupply() 
 | 
              or  object.HasTotalSupplyUser() 
 | 
              or  object.HasProductionSupply() 
 | 
              or  object.ProductInStockingPoint_MP().IsNegativeInventoryAllowed() 
 | 
              or  object.HasFulfilledDependentDemand()  
 | 
              or  object.GetHasMisMatchAvailableUserSupply() 
 | 
              or  object.HasFulfilledSalesDemand() 
 | 
              ) 
 | 
            *] 
 | 
            TooltipText: 
 | 
            [* 
 | 
              <table> 
 | 
              <td><font color="#0000FF"><b>SYNONYM(object.InventoryLevelEnd())</b></font></td> 
 | 
              <td><font color="#0000FF">VALUE( MacroPlan::GetDisplayValue( object.InventoryLevelEnd() ) )</font></td> 
 | 
              <td></td> 
 | 
              <td><b>Inventory holding cost </b></td> 
 | 
              <td>VALUE(object.TotalBaseInventoryHoldingCost())</td> 
 | 
              <td>VALUE( ifexpr( object.IsLeaf(), '[' + object.TotalBaseInventoryHoldingCostPerQuantity().Format('N(Dec(2))') + object.ProductInStockingPoint_MP().StockingPoint_MP().Currency_MP().Symbol()  + '/' + object.ProductInStockingPoint_MP().UnitOfMeasure_MP().Name() + ']', '' ) ) </td> 
 | 
              </tr> 
 | 
              <tr><td>SYNONYM(object.StockLevelInDays())</td><td>VALUE(object.StockLevelInDays())</td></tr> 
 | 
              <tr> 
 | 
              <td><font color="#088A08"><b>Total supply </b></font></td> 
 | 
              <td><font color="#088A08">VALUE(object.SupplyQuantity())</font></td> 
 | 
              <td></td> 
 | 
              <td><font color="#FF8000"><b>Total demand </b><font></td> 
 | 
              <td><font color="#FF8000">VALUE(object.GetDemandQuantity())</font></td> 
 | 
              </tr> 
 | 
              <br> 
 | 
              <tr> 
 | 
              <td><b>Inventory start </b></td> 
 | 
              <td>VALUE( guard( MacroPlan::GetDisplayValue( object.GetDisplayInventoryStart() ), 0.0 ) )</td> 
 | 
              <td></td> 
 | 
              <td><b>Sales demand </b></td> 
 | 
              <td>VALUE(object.SalesDemandQuantity())</td> 
 | 
              </tr> 
 | 
               
 | 
              <tr> 
 | 
              <td><b>New supply </b></td> 
 | 
              <td>VALUE(object.NewSupplyQuantity())</td> 
 | 
              <td></td> 
 | 
              <td><b>Dependent demand </b></td> 
 | 
              <td>VALUE(object.DependentDemandQuantity())</td> 
 | 
              </tr> 
 | 
               
 | 
              <tr> 
 | 
              <td><b>Inventory supply </b></td> 
 | 
              <td>VALUE(object.InventorySupplyQuantity())</td> 
 | 
              <td></td> 
 | 
              <td><b>VALUE( ifexpr( object.TargetInventoryLevel() >= object.MinInventoryLevel() , 'Target inventory level', 'Minimum inventory level' ) ) </b></td> 
 | 
              <td>VALUE( ifexpr( object.TargetInventoryLevel() >= object.MinInventoryLevel() , object.TargetInventoryLevel(), object.MinInventoryLevel() ) )</td> 
 | 
              </tr> 
 | 
              </table> 
 | 
              VALUE(object.DisplayShelfLife() ) 
 | 
            *] 
 | 
          ] 
 | 
        } 
 | 
        Component DataHolderUsedPISP 
 | 
        { 
 | 
          #keys: '[127238.1.1586288534]' 
 | 
          BaseType: 'DataHolder' 
 | 
          Databinding: 'structured[ProductInStockingPoint_MP]*' 
 | 
          Children: 
 | 
          [ 
 | 
            Component GUIDataExtractor983 
 | 
            { 
 | 
              #keys: '[127238.1.1586288967]' 
 | 
              BaseType: 'GUIDataExtractor' 
 | 
              Properties: 
 | 
              [ 
 | 
                Component: 'DataHolderChildPISPs' 
 | 
                DataType: 'structured[ProductInStockingPoint_MP]' 
 | 
                FixedFilter: 'object.IsUsed()' 
 | 
                PosX: 41 
 | 
                PosY: 63 
 | 
                Transformation: 'Elements' 
 | 
              ] 
 | 
            } 
 | 
          ] 
 | 
          Properties: 
 | 
          [ 
 | 
            PosX: 217 
 | 
            PosY: 45 
 | 
          ] 
 | 
        } 
 | 
      ] 
 | 
      Properties: 
 | 
      [ 
 | 
        AllowMultipleAttributes: true 
 | 
        AllowUserAttributeChange: true 
 | 
        AttributeContextMenu: 'AttributeContextMenu' 
 | 
        Attributes: 'InventoryLevelStart;DependentDemandAndSalesDemandQuantity;InventorySupplyAndNewSupplyQuantity;InventoryLevelEnd;TargetInventoryLevel;StockLevelInDays' 
 | 
        Border: true 
 | 
        ColumnHeaderContextMenu: 'ColumnViewContextMenu' 
 | 
        ColumnHeaderPath: 'Start' 
 | 
        ColumnView: 'MatrixEditorColumns' 
 | 
        ColumnViewRelation: 'Period_MP' 
 | 
        ContextMenu: 'menuMatrixEditorCell' 
 | 
        DoubleBuffering: false 
 | 
        RowHeaderContextMenu: 'RowViewContextMenu' 
 | 
        RowHeaderPath: 'Name' 
 | 
        RowView: 'MatrixEditorRows' 
 | 
        RowViewRelation: 'ProductInStockingPoint_MP' 
 | 
        ModeledStringList ChildOrdering 
 | 
        { 
 | 
          c: AttributeContextMenu 
 | 
          c: menuMatrixEditorCell 
 | 
          c: GUIDataExtractor 
 | 
          c: popupScaleView 
 | 
          c: MatrixEditorRows 
 | 
          c: RowViewContextMenu 
 | 
          c: MatrixEditorColumns 
 | 
          c: ColumnViewContextMenu 
 | 
          c: DataHolderActivePeriodsProductPlanningMatrix 
 | 
          c: GUITimerMoveToStartOfPlanning 
 | 
          c: DataHolderProductPlanningMatrixSelection 
 | 
          c: UserConfigurableInformationPISPIP 
 | 
          c: DataHolderUsedPISP 
 | 
        } 
 | 
      ] 
 | 
      ResponseDefinitions: 
 | 
      [ 
 | 
        DelegatedResponseDefinition OnClick id:Responsedef_FormProductPlanningMatrix_MatrixEditor_Menu_OnClick 
 | 
        { 
 | 
          #keys: '[127710.1.818312570]' 
 | 
          Initiator: 'Menu' 
 | 
          IsInherited: false 
 | 
          ResponseType: 'OnClick' 
 | 
          Arguments: 
 | 
          [ 
 | 
            ResponseDefinitionArgument cell 
 | 
            { 
 | 
              #keys: '[127710.1.818312571]' 
 | 
              Binding: 'this.Selection()' 
 | 
            } 
 | 
          ] 
 | 
        } 
 | 
        DelegatedResponseDefinition OnClick id:Responsedef_FormProductPlanningMatrix_MatrixEditor_Menu_OnClick_19 
 | 
        { 
 | 
          #keys: '[127710.1.818312572]' 
 | 
          Initiator: 'Menu' 
 | 
          IsInherited: false 
 | 
          ResponseType: 'OnClick' 
 | 
          Arguments: 
 | 
          [ 
 | 
            ResponseDefinitionArgument objects 
 | 
            { 
 | 
              #keys: '[127710.1.818312573]' 
 | 
              Binding: 'this.SelectionObjects()' 
 | 
            } 
 | 
          ] 
 | 
        } 
 | 
        ResponseDefinition OnStartEdit id:Responsedef_FormProductPlanningMatrix_MatrixEditorProductPlanning_OnStartEdit 
 | 
        { 
 | 
          #keys: '[132448.0.53409359]' 
 | 
          IsInherited: false 
 | 
          ResponseType: 'OnStartEdit' 
 | 
          Arguments: 
 | 
          [ 
 | 
            ResponseDefinitionArgument newvalue 
 | 
            { 
 | 
              #keys: '[132448.0.53409652]' 
 | 
              Binding: 'this.Selection()' 
 | 
            } 
 | 
          ] 
 | 
        } 
 | 
      ] 
 | 
    } 
 | 
    #child: StringSelectionProductLevel 
 | 
    Component CheckBoxFilterByProductLevel 
 | 
    { 
 | 
      #keys: '[127710.1.821866707]' 
 | 
      BaseType: 'CheckBox' 
 | 
      Properties: 
 | 
      [ 
 | 
        HasMemory: 'ViewsAndSettings' 
 | 
        Text: 'Product level' 
 | 
      ] 
 | 
    } 
 | 
    Component DataHolderMatrixFrom 
 | 
    { 
 | 
      #keys: '[127710.1.837273364]' 
 | 
      BaseType: 'DataHolder' 
 | 
      Databinding: 'Period_MP' 
 | 
      Properties: 
 | 
      [ 
 | 
        PosX: 721 
 | 
      ] 
 | 
    } 
 | 
    Component DataHolderMatrixTo 
 | 
    { 
 | 
      #keys: '[127710.1.837275943]' 
 | 
      BaseType: 'DataHolder' 
 | 
      Databinding: 'Period_MP' 
 | 
      Properties: 
 | 
      [ 
 | 
        PosX: 696 
 | 
        PosY: 1 
 | 
      ] 
 | 
    } 
 | 
    Component ButtonShowStartOfPlanningHorizon 
 | 
    { 
 | 
      #keys: '[127710.1.845269079]' 
 | 
      BaseType: 'Button' 
 | 
      Properties: 
 | 
      [ 
 | 
        Image: 'CLOCK' 
 | 
        Tooltip: 'Go to planning start' 
 | 
      ] 
 | 
    } 
 | 
    Component ImageFilterBy889 
 | 
    { 
 | 
      #keys: '[127710.1.1041562540]' 
 | 
      BaseType: 'Image' 
 | 
      Properties: 
 | 
      [ 
 | 
        Image: 'FUNNEL' 
 | 
        Tooltip: 'Filter the Product planning matrix based on the selection in the navigation panel.' 
 | 
        Transparent: true 
 | 
      ] 
 | 
    } 
 | 
    Component ImageWarningSizing 
 | 
    { 
 | 
      #keys: '[136770.0.49615375]' 
 | 
      BaseType: 'Image' 
 | 
      Properties: 
 | 
      [ 
 | 
        Image: 'WARNING' 
 | 
        Tooltip: 'This form is read-only because the size of the dataset is violating the sizing parameters.<br>Please reduce the size of the dataset to regain functionality.<br>The sizing parameters can be found in Edit > Configuration > Sizing parameters.' 
 | 
        Transparent: true 
 | 
      ] 
 | 
    } 
 | 
  ] 
 | 
  Properties: 
 | 
  [ 
 | 
    Height: 475 
 | 
    Image: 'LINE-CHART' 
 | 
    IncludeInView: true 
 | 
    Title: 'Product planning matrix' 
 | 
    Width: 1012 
 | 
    ModeledStringList ChildOrdering 
 | 
    { 
 | 
      c: ButtonShowStartOfPlanningHorizon 
 | 
      c: CheckBoxFilterByProductLevel 
 | 
      c: DataHolderMatrixFrom 
 | 
      c: StringSelectionProductLevel 
 | 
      c: DataHolderMatrixTo 
 | 
      c: MatrixEditorProductPlanning 
 | 
      c: ImageFilterBy889 
 | 
      c: ImageWarningSizing 
 | 
    } 
 | 
  ] 
 | 
} 
 |