| 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 | 
|     } | 
|   ] | 
| } |