Quintiq file version 2.0
Component GanttChartDemandSupplyGroup
{
  #keys: '[108486.0.1858741403]'
  BaseType: 'GanttChart'
  Children:
  [
    Component menuGanttChart1
    {
      #keys: '[108486.0.1858741432]'
      BaseType: 'popupGanttchart'
      Children:
      [
        Component PopupParent
        {
          #keys: '[514.0.555535]'
          BaseType: 'PopupParent'
          IsDerived: true
          Children:
          [
            Component MenuLegend { #keys: '[108486.0.1858741433]' BaseType: 'Menu' Properties: [ Image: 'COLORS' Shortcut: 'Ctrl+L' Text: 'Legend...' ] }
            Component Menu4 { #keys: '[108486.0.1858741434]' BaseType: 'Menu' Properties: [ Separator: true ] }
            Component MenuShowSupply { #keys: '[108486.0.1858741435]' BaseType: 'Menu' Properties: [ BindDoubleClick: true Image: 'ELEMENT_INTO' Shortcut: 'Enter' Text: 'Show supplies...' ] }
            Component MenuShowDemandsSupplies { #keys: '[108486.0.1858741437]' BaseType: 'Menu' Properties: [ Checkmark: true HasMemory: true Image: 'EXCHANGE' Shortcut: 'Alt+V' Text: 'Show demands / supplies...' ] }
            Component Menu2 { #keys: '[108486.0.1858741438]' BaseType: 'Menu' Properties: [ Separator: true ] }
            Component MenuEditInventorySpecification { #keys: '[108486.0.1858741440]' BaseType: 'Menu' ViewSecurity: 'InventorySpecifications' Properties: [ Image: 'AVERAGE' Shortcut: 'Alt+X' Text: 'Edit inventory specification...' ] }
            Component MenuNewInventorySupply { #keys: '[108486.0.1858741439]' BaseType: 'Menu' ViewSecurity: 'InventorySupplies' Properties: [ Image: 'CUBES_BLUE' Shortcut: 'Alt+Y' Text: 'New inventory supply...' ] }
            Component MenuResetManualPlan { #keys: '[108486.0.1858741436]' BaseType: 'Menu' Properties: [ Image: 'trash' Shortcut: 'Alt+O' Text: 'Reset locked plan' ] }
            Component MenuShowUpstreamProcesses { #keys: '[108486.0.1858741441]' BaseType: 'Menu' Properties: [ Image: 'FOLDER_INTO' Shortcut: 'Alt+U' Text: 'Show upstream processes...' ] }
            Component Menu8 { #keys: '[110880.5.885591929]' BaseType: 'Menu' Properties: [ Separator: true ] }
            Component MenuShowInventorySupply { #keys: '[110880.5.885594662]' BaseType: 'Menu' ViewSecurity: 'InventorySupplies' Properties: [ Image: 'FOLDER_CUBES' Shortcut: 'Alt+Z' Text: 'Show inventory supplies...' ] }
            Component MenuCreateSalesDemands { #keys: '[110880.8.28704079]' BaseType: 'Menu' Properties: [ Image: 'NOTE_NEW' Shortcut: 'Alt+S' Text: 'Create sales demands' ] }
            Component MenuShowTrip { #keys: '[110880.9.1045609448]' BaseType: 'Menu' ViewSecurity: 'TransportationPlanning' Properties: [ Image: 'TRUCK_RED' Shortcut: 'Alt+Enter' Text: 'Show trips...' ] }
            Component MenuNewTrips { #keys: '[110880.9.1054559210]' BaseType: 'Menu' ViewSecurity: 'TransportationPlanning' Properties: [ Image: 'TRUCK_RED' Shortcut: 'Alt+N' Text: 'New trip...' ] }
            Component Menu11 { #keys: '[110880.9.1109559449]' BaseType: 'Menu' Properties: [ Separator: true ] }
            Component MenuResetOptimizerPlan { #keys: '[121036.0.697343425]' BaseType: 'Menu' Properties: [ Image: 'trash' Shortcut: 'Alt+Ctrl+O' Text: 'Reset optimizer plan' ] }
            Component Menu12 { #keys: '[121036.0.697344163]' BaseType: 'Menu' Properties: [ Separator: true ] }
            Component MenuEditIDisaggregationFactor { #keys: '[124808.0.2146091868]' BaseType: 'Menu' ViewSecurity: 'AggregatedPlanning' Properties: [ Image: 'CHEST' Shortcut: 'Alt+W' Text: 'Edit disaggregation factor...' ] }
            Component Menu3 { #keys: '[122872.1.834488800]' BaseType: 'Menu' Properties: [ Separator: true ] }
            Component MenuSmartPlan { #keys: '[122872.1.834494014]' BaseType: 'Menu' Properties: [ Image: 'COMPONENT_GREEN' Shortcut: 'Alt+P' Text: 'Smart plan...' ] }
            Component MenuSmartPlanRows { #keys: '[124808.2.525193060]' BaseType: 'Menu' Properties: [ Image: 'COMPONENT_GREEN' Shortcut: 'Alt+Ctrl+P' Text: 'Smart plan rows...' ] }
            Component MenuFilterByProductionSteps
            {
              #keys: '[127710.1.746503869]'
              BaseType: 'Menu'
              Children:
              [
                Component MenuFilterByUpstreamProducts id:MenuFilterByUpstreamProducts_971 { #keys: '[127710.1.746503870]' BaseType: 'Menu' Properties: [ Checkmark: true HasMemory: true Text: 'Filter by upstream products' Tooltip: 'Filter the product planning chart to only show the products that are in the upstream supply chain of the selected product' ] }
                Component MenuFilterByDownstreamProducts { #keys: '[127710.1.746503871]' BaseType: 'Menu' Properties: [ Checkmark: true HasMemory: true Image: 'FUNNEL_DOWN' Text: 'Filter by downstream products' Tooltip: 'Filter the product planning chart to only show the products that are in the downstream supply chain of the selected product' ] }
              ]
              Properties:
              [
                Image: 'FUNNEL'
                Text: 'Filter by production steps'
                ModeledStringList ChildOrdering
                {
                  c: MenuFilterByUpstreamProducts_971
                  c: MenuFilterByDownstreamProducts
                }
              ]
            }
            Component MenuShowDownstreamProcesses { #keys: '[127710.1.746514886]' BaseType: 'Menu' Properties: [ Image: 'FOLDER_INTO' Shortcut: 'Alt+D' Text: 'Show downstream processes...' ] }
            Component MenuLock { #keys: '[121072.0.288128772]' BaseType: 'Menu' Properties: [ Image: 'LOCK' Shortcut: 'Alt+L' Text: 'Lock' ] }
            Component MenuUnlock { #keys: '[121072.0.288129740]' BaseType: 'Menu' Properties: [ Image: 'LOCK_OPEN' Shortcut: 'Alt+Ctrl+L' Text: 'Unlock' ] }
            Component MenuEditStockingPointCapacity { #keys: '[121072.0.289591101]' BaseType: 'Menu' Properties: [ Image: 'Edit' Shortcut: 'Alt+Ctrl+C' Text: 'Edit stocking point capacity...' ] }
          ]
          Properties:
          [
            ModeledStringList ChildOrdering
            {
              c: MenuActions
              c: MenuFilter
              c: MenuFilterByProductionSteps
              c: MenuNavigation
              c: MenuLegend
              c: Menu4
              c: MenuSmartPlan
              c: MenuSmartPlanRows
              c: MenuLock
              c: MenuUnlock
              c: Menu3
              c: MenuShowDemandsSupplies
              c: MenuShowSupply
              c: MenuNewTrips
              c: MenuShowTrip
              c: MenuNewInventorySupply
              c: MenuShowInventorySupply
              c: Menu12
              c: MenuResetManualPlan
              c: MenuResetOptimizerPlan
              c: Menu2
              c: MenuEditStockingPointCapacity
              c: MenuEditIDisaggregationFactor
              c: MenuEditInventorySpecification
              c: Menu11
              c: MenuCreateSalesDemands
              c: Menu8
              c: MenuShowUpstreamProcesses
              c: MenuShowDownstreamProcesses
            }
          ]
        }
      ]
      Properties:
      [
        PosX: 44
        PosY: 57
        SizePosition: 'lt81 107 37 63'
      ]
    }
    Component menuGanttChartRows1
    {
      #keys: '[108486.0.1858741420]'
      BaseType: 'popupGanttchartRows'
      Children:
      [
        Component PopupParent id:PopupParent_1
        {
          #keys: '[530.0.59473]'
          BaseType: 'PopupParent'
          IsDerived: true
          Children:
          [
            Component MenuSortGanttChartRows
            {
              #keys: '[104128.0.40951323]'
              BaseType: 'MenuSortGanttChartRows'
              IsDerived: true
              Children:
              [
                Component menuGCRMoveToTop { #keys: '[104128.0.40961065]' BaseType: 'menuGCRMoveToTop' IsDerived: true ResponseDefinitions: [ ResponseDefinition OnClick id:Responsedef_GanttChartDemandSupplyGroup_menuGCRMoveToTop_OnClick
                    {
                      #keys: '[104220.0.341400416]'
                      IsInherited: false
                      ResponseType: 'OnClick'
                      Arguments:
                      [
                        ResponseDefinitionArgument row
                        {
                          #keys: '[104220.0.341404843]'
                          Binding: 'GanttChartDemandSupplyGroup.ContextMenuRowObject()'
                        }
                      ]
                    }
                  ] }
                Component menuGCRMoveUp { #keys: '[104128.0.40963528]' BaseType: 'menuGCRMoveUp' IsDerived: true ResponseDefinitions: [ ResponseDefinition OnClick id:Responsedef_GanttChartDemandSupplyGroup_menuGCRMoveUp_OnClick
                    {
                      #keys: '[104220.0.341445251]'
                      IsInherited: false
                      ResponseType: 'OnClick'
                      Arguments:
                      [
                        ResponseDefinitionArgument row
                        {
                          #keys: '[104220.0.341445252]'
                          Binding: 'GanttChartDemandSupplyGroup.ContextMenuRowObject()'
                        }
                      ]
                    }
                  ] }
                Component menuGCRMoveDown { #keys: '[104128.0.40966471]' BaseType: 'menuGCRMoveDown' IsDerived: true ResponseDefinitions: [ ResponseDefinition OnClick id:Responsedef_GanttChartDemandSupplyGroup_menuGCRMoveDown_OnClick
                    {
                      #keys: '[104220.0.341473288]'
                      IsInherited: false
                      ResponseType: 'OnClick'
                      Arguments:
                      [
                        ResponseDefinitionArgument row
                        {
                          #keys: '[104220.0.341474697]'
                          Binding: 'GanttChartDemandSupplyGroup.ContextMenuRowObject()'
                        }
                      ]
                    }
                  ] }
                Component menuGCRMoveToBottom { #keys: '[104128.0.40968902]' BaseType: 'menuGCRMoveToBottom' IsDerived: true ResponseDefinitions: [ ResponseDefinition OnClick id:Responsedef_GanttChartDemandSupplyGroup_menuGCRMoveToBottom_OnClick
                    {
                      #keys: '[104220.0.341517322]'
                      IsInherited: false
                      ResponseType: 'OnClick'
                      Arguments:
                      [
                        ResponseDefinitionArgument row
                        {
                          #keys: '[104220.0.341518731]'
                          Binding: 'GanttChartDemandSupplyGroup.ContextMenuRowObject()'
                        }
                      ]
                    }
                  ] }
                Component MenuEditDisplayIndex { #keys: '[112610.0.975197348]' BaseType: 'Menu' Properties: [ Image: 'UP_DOWN_QUESTION' Text: 'Edit display index...' ] }
              ]
              Properties:
              [
                ModeledStringList ChildOrdering
                {
                  c: MenuEditDisplayIndex
                  c: MenuSortGanttChartRows1
                  c: Menu2_1
                  c: menuGCRMoveToTop
                  c: menuGCRMoveUp
                  c: menuGCRMoveDown
                  c: menuGCRMoveToBottom
                }
              ]
            }
            Component MenuFilter id:MenuFilter_1
            {
              #keys: '[104128.0.41519836]'
              BaseType: 'MenuFilter'
              IsDerived: true
              Children:
              [
                Component MenuFIlterByProducts { #keys: '[127710.1.1026457799]' BaseType: 'Menu' Properties: [ Checked: true Checkmark: true Text: 'Products' ] }
                Component MenuFIlterByStockingPoints { #keys: '[127710.1.1026458341]' BaseType: 'Menu' Properties: [ Checked: true Checkmark: true Text: 'Stocking points' ] }
                Component menuSeparator160 { #keys: '[127710.1.1026458945]' BaseType: 'Menu' Properties: [ Separator: true ] }
                Component MenuFIlterByPeriods { #keys: '[131438.0.418823075]' BaseType: 'Menu' Properties: [ Checked: true Checkmark: true Text: 'Periods' ] }
              ]
              Properties:
              [
                ModeledStringList ChildOrdering
                {
                  c: menuEditFilter
                  c: MenuFIlterByProducts
                  c: MenuFIlterByStockingPoints
                  c: MenuStoredFilters
                  c: MenuFIlterByPeriods
                  c: menuSeparator160
                  c: MenuClearFilter
                  c: Menu_1
                  c: menuHideGanttchartRow
                  c: MenuUnhideAllRows
                  c: Menu1_1
                  c: menuShowAllGanttChartRows
                }
              ]
            }
            Component MenuLegend id:MenuLegend_1 { #keys: '[108486.0.1858741423]' BaseType: 'Menu' Properties: [ Image: 'COLORS' Shortcut: 'Ctrl+L' Text: 'Legend...' ] }
            Component MenuHideDSUnusedRows { #keys: '[108486.0.1858741421]' BaseType: 'Menu' Properties: [ Checkmark: true Text: 'Hide unused rows' ] }
            Component MenuHideBalancedRows { #keys: '[108486.0.1858741422]' BaseType: 'Menu' Properties: [ Checkmark: true Text: 'Hide balanced rows' ] }
            Component MenuPegDemandsToSupplies { #keys: '[108486.1.1592764257]' BaseType: 'Menu' ViewSecurity: 'Pegging' Properties: [ Image: 'STEP' Text: 'Peg demands to supplies' ] }
            Component Menu6 { #keys: '[108486.2.918953401]' BaseType: 'Menu' Properties: [ Separator: true ] }
            Component Menu7 { #keys: '[108486.2.918961293]' BaseType: 'Menu' Properties: [ Separator: true ] }
            Component MenuShowAllProducts { #keys: '[110880.5.1650587154]' BaseType: 'Menu' Properties: [ Image: 'NAVIGATE_DOWN2' Text: 'Show all products' ] }
            Component MenuHideAllProducts { #keys: '[110880.5.1650590454]' BaseType: 'Menu' Properties: [ Image: 'NAVIGATE_RIGHT2' Text: 'Hide all products' ] }
            Component MenuShowHideProducts { #keys: '[110880.5.1650593219]' BaseType: 'Menu' Properties: [ BindDoubleClick: true Text: 'Show / Hide products' ] }
            Component MenuShowDashboard { #keys: '[110880.5.1891685043]' BaseType: 'Menu' Properties: [ Checkmark: true HasMemory: true Text: 'Show dashboard' ] }
            Component Menu5 { #keys: '[110880.6.379876597]' BaseType: 'Menu' Properties: [ Separator: true ] }
            Component MenuShowSystemUserInfo { #keys: '[110880.7.1048250042]' BaseType: 'Menu' Properties: [ Checkmark: true HasMemory: true Text: 'Use user configuration' ] }
            Component Menu9 { #keys: '[110880.9.773576316]' BaseType: 'Menu' Properties: [ Separator: true ] }
            Component MenuShowSuppliedByOperations { #keys: '[110880.9.785598573]' BaseType: 'Menu' Properties: [ Checked: true Checkmark: true HasMemory: true Text: 'Show supplied by operations' ] }
            Component MenuShowTransportedByLanes { #keys: '[110880.9.785600688]' BaseType: 'Menu' ViewSecurity: 'TransportationPlanning' Properties: [ Checked: true Checkmark: true HasMemory: true Text: 'Show transported by lanes' ] }
            Component Menu10 { #keys: '[112884.1.1412508372]' BaseType: 'Menu' Properties: [ Separator: true ] }
            Component MenuSmartPlanForGanttChartRows { #keys: '[124808.2.276335699]' BaseType: 'Menu' Properties: [ Image: 'COMPONENT_GREEN' Shortcut: 'Alt+P' Text: 'Smart plan...' ] }
            Component Menu13 { #keys: '[124808.2.276335891]' BaseType: 'Menu' Properties: [ Separator: true ] }
            Component MenuToggleIsNegativeInventoryAllowed { #keys: '[124808.2.617171315]' BaseType: 'Menu' Properties: [ Checkmark: true Image: 'CHECKEDCHECKBOX' Text: 'Allow negative inventory' Tooltip: 'Allows negative inventory on this product in stocking point.' ] }
          ]
          Properties:
          [
            ModeledStringList ChildOrdering
            {
              c: MenuFilter_1
              c: MenuSortGanttChartRows
              c: MenuLegend_1
              c: Menu6
              c: MenuSmartPlanForGanttChartRows
              c: Menu13
              c: MenuShowAllProducts
              c: MenuHideAllProducts
              c: MenuShowHideProducts
              c: Menu5
              c: MenuHideDSUnusedRows
              c: MenuHideBalancedRows
              c: Menu7
              c: MenuShowTransportedByLanes
              c: MenuShowSuppliedByOperations
              c: Menu9
              c: MenuToggleIsNegativeInventoryAllowed
              c: MenuPegDemandsToSupplies
              c: Menu10
              c: MenuShowDashboard
              c: MenuShowSystemUserInfo
            }
          ]
        }
      ]
      Properties:
      [
        PosX: 15
        PosY: 55
        SizePosition: 'lt10 36 100 126'
      ]
    }
    Component ChartMarkingStartOfPlanningHorizon
    {
      #keys: '[108486.0.1858741442]'
      BaseType: 'ChartMarking'
      Properties:
      [
        MarkPosition: 'guard(MacroPlan.StartOfPlanning(), DateTime::Now())'
        PosX: 114
        PosY: 57
        SizePosition: 'lt141 167 39 65'
      ]
    }
    Component NavigationToolbar
    {
      #keys: '[108486.0.1858741448]'
      BaseType: 'NavigationToolbar'
      GBLayout
      {
        Type: 'internal[GBLayoutDefinition]'
        Columns:
        [
          GBFlow.Column { grow: 0 id: 439 parent: 0 }
          GBFlow.Column { grow: 0 id: 135 parent: 0 }
          GBFlow.Column { grow: 128 id: 1 parent: 0 }
        ]
        Elements:
        [
          GBElement
          {
            Component => /dpNavigationPanel
            Position { startcolumn: 1 startrow: 2 endcolumn: 1 endrow: 2 }
          }
          GBElement
          {
            Component => ImageFilterBy889
            Position { startcolumn: 135 startrow: 2 endcolumn: 135 endrow: 488 }
          }
          GBElement
          {
            Component => ImageWarningSizing
            Position { startcolumn: 439 startrow: 2 endcolumn: 439 endrow: 488 }
          }
        ]
        Gaps: [ left: 5 right: 5 top: 0 bottom: 0 inner: 5 ]
        Rows:
        [
          GBFlow.Row { grow: 0 id: 2 parent: 0 }
          GBFlow.Row { grow: 128 id: 488 parent: 0 }
        ]
      }
      Children:
      [
        #child: dpNavigationPanel
        Component ImageFilterBy889
        {
          #keys: '[127710.1.1041563478]'
          BaseType: 'Image'
          Properties:
          [
            Image: 'FUNNEL'
            Tooltip: 'Filter the Product planning Gantt chart based on the selection in the navigation panel.'
            Transparent: true
          ]
        }
        Component ImageWarningSizing
        {
          #keys: '[136770.0.52937006]'
          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:
      [
        Priority: 3
        Size: 32
        ModeledStringList ChildOrdering
        {
          c: dpNavigationPanel
          c: ImageFilterBy889
          c: ImageWarningSizing
        }
      ]
    }
    Component Font
    {
      #keys: '[108486.0.1858741447]'
      BaseType: 'Font'
      Properties:
      [
        Bold: true
        FontName: 'Arial Black'
        Italic: true
        PosX: 77
        PosY: 57
        Size: 9
        SizePosition: 'lt112 138 38 64'
        Underlined: true
      ]
    }
    Component DataHolderUpstreamPISPs
    {
      #keys: '[112884.1.670130849]'
      BaseType: 'DataHolder'
      Databinding: 'structured[ProductInStockingPoint_MP]*'
      Properties:
      [
        PosX: 17
        PosY: 26
        ShowName: true
      ]
    }
    #child: GanttChartRowDefinitionStockingPoint
    Component UserConfigurableInformation
    {
      #keys: '[112884.1.975332292]'
      BaseType: 'UserConfigurableInformation'
      Properties:
      [
        Identification: 'Historical period'
        ObjectBackgroundColor: 'ColorScheme.Period_HistoricalPeriods'
        ObjectType: 'Period_MP'
        PosX: 87
        PosY: 105
        SizePosition: 'lt106 132 89 115'
      ]
    }
    Component UserConfigurableInformationStockingPointInPeriod
    {
      #keys: '[112884.1.975332541]'
      BaseType: 'UserConfigurableInformation'
      Properties:
      [
        Identification: 'Stocking point in period'
        ObjectBackgroundColor: 'White'
        ObjectText: 'VALUE( MacroPlan::GetDisplayValue( object.InventoryLevelEnd() )  )'
        ObjectType: 'StockingPointInPeriod'
        PosX: 52
        PosY: 139
        SizePosition: 'lt50 76 117 143'
        TooltipText:
        [*
          <table>
          <tr>
          <td><b>Unit of measurement </b></td>
          <td>VALUE( object..StockingPoint_MP().UnitOfMeasure_MP().Name() )</td>
          </tr>
          </table>
          <hr>
          <table>
          <tr>
          <td><font color="#0000FF"><b>Inventory end (quantity)</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.TotalInventoryHoldingCost()) </td>
          </tr>
          <tr><td>Inventory end (days)</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.DemandQuantity())</font></td>
          </tr>
          
          </br>
          
          <tr>
          <td><b>Inventory start </b></td>
          <td>VALUE(object.Previous().InventoryLevelEnd())</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>Target inventory level </b></td>
          <td>VALUE(object.TargetInventoryLevel())</td>
          </tr>
          </table>
        *]
      ]
    }
    Component UserConfigurableInformationPISP
    {
      #keys: '[112884.1.975332797]'
      BaseType: 'UserConfigurableInformation'
      Properties:
      [
        Identification: 'Product'
        ObjectText: 'VALUE( object.IndentationSymbol() ) VALUE( object.Product_MP().Name() )  VALUE( object.ImgIsExcluded() )'
        ObjectType: 'ProductInStockingPoint_MP'
        PosX: 91
        PosY: 137
        SizePosition: 'lt28 54 3 29'
        TooltipText:
        [*
          <table>
          <tr><td><b>Product</b></td><td>VALUE(object.Product_MP().Name())</td></tr>
          <tr><td><b>Unit of measurement</b></td><td>VALUE(object.UnitOfMeasureName())</td></tr>
          <tr><td><b>Supplied by</b></td><td>VALUE(object.ImgIsTransportedByLane())VALUE(object.ImgIsSuppliedByOperation())</td></tr>
          </table>
        *]
      ]
    }
    Component UserConfigurableInformationStockingPointSystem
    {
      #keys: '[112884.1.975333042]'
      BaseType: 'UserConfigurableInformation'
      Properties:
      [
        CanConfigure: false
        Identification: 'Stocking point'
        ObjectText: '<b>VALUE("▼  "+object.Name() ) </b>  VALUE(object.ImgIsBottleneck())'
        ObjectType: 'StockingPoint_MP'
        PosX: 54
        PosY: 181
        SizePosition: 'lt27 53 3 29'
        TooltipText:
        [*
          <table>
          <tr><td><b>Stocking point</b></td><td>VALUE(object.Name())</td></tr>
          <tr><td><b>Unit of measurement</b></td><td>VALUE(object.UnitOfMeasureName())</td></tr>
          </table>
        *]
      ]
    }
    Component UserConfigurableInformationStockingPointUser
    {
      #keys: '[112884.1.975333309]'
      BaseType: 'UserConfigurableInformation'
      Properties:
      [
        Identification: 'Stocking point'
        ObjectText: '<b>VALUE(object.Name()) </b> VALUE(object.ImgIsBottleneck())'
        ObjectType: 'StockingPoint_MP'
        PosX: 91
        PosY: 181
        SizePosition: 'lt27 53 3 29'
        TooltipText:
        [*
          <table>
          <tr><td><b>Stocking point</b></td><td>VALUE(object.Name())</td></tr>
          <tr><td><b>Unit of measurement</b></td><td>VALUE(object.UnitOfMeasureName())</td></tr>
          </table>
        *]
      ]
    }
    Component GUIDataExtractorStockingPointsForProductPlanning
    {
      #keys: '[127710.1.1026450441]'
      BaseType: 'GUIDataExtractor'
      Properties:
      [
        Component: 'DataHolderChildStockingPoints'
        DataType: 'structured[StockingPoint_MP]'
        PosX: 138
        PosY: 141
        Transformation: 'Elements'
      ]
    }
    Component UserConfigurableInformationPISPIP
    {
      #keys: '[133968.0.459325563]'
      BaseType: 'UserConfigurableInformation'
      Properties:
      [
        Identification: 'Product in stocking point in period'
        ObjectBackgroundColor: 'White'
        ObjectText: 'VALUE( object.ImgHasManualDecision() )VALUE( object.ImgHasFeedback() )VALUE( MacroPlan::GetDisplayValue( ifexpr( object.HasFulfilledAllDemand(), object.InventoryLevelEnd(), ifexpr( object.ChildOfProductDimension( relsize ) > 0, -object.GetUnfulfilledQuantity(), ( object.SupplyQuantity() - object.GetDemandQuantity() - object.OptimizerReservedQuantity() ) ) ) ) )'
        ObjectType: 'ProductInStockingPointInPeriod'
        PosX: 50
        PosY: 98
        SizePosition: 'lt50 76 89 115'
        TooltipText:
        [*
          <table>
          <tr>
          <td><b>Unit of measurement </b></td>
          <td>VALUE( object.ProductInStockingPoint_MP().UnitOfMeasure_MP().Name() )</td>
          </tr>
          </table>
          <hr>
          <table>
          <td><font color="#0000FF"><b>Inventory end (quantity)</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>Inventory end (days)</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( MacroPlan::GetDisplayValue( object.InventoryLevelStartPISPIP().InventoryLevelEnd() ) )</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>
        *]
      ]
    }
  ]
  Properties:
  [
    BackgroundColor: 'ButtonHighlight'
    ContextMenu: 'menuGanttChart1'
    FastSynchronization: true
    NavigationRangeManager:
    [*
      {
        Name := '1 Day'
        Interval := 2
        Count := 1
        Offset := 0
        Interval := 1
        Count := 2
        Offset := 0
        IntervalStartType := 2
        Item := 0
      }
      {
        Name := '2 Days'
        Interval := 2
        Count := 2
        Offset := 0
        Interval := 1
        Count := 2
        Offset := 0
        IntervalStartType := 2
        Item := 0
      }
      {
        Name := '4 Days'
        Interval := 2
        Count := 4
        Offset := 0
        Interval := 1
        Count := 2
        Offset := 0
        IntervalStartType := 2
        Item := 0
      }
      {
        Name := '1 Week'
        Interval := 3
        Count := 1
        Offset := 0
        Interval := 1
        Count := 2
        Offset := 0
        IntervalStartType := 3
        Item := 0
      }
      {
        Name := '2 Weeks'
        Interval := 3
        Count := 2
        Offset := 0
        Interval := 2
        Count := 1
        Offset := 0
        IntervalStartType := 3
        Item := 0
      }
      {
        Name := '4 Weeks'
        Interval := 3
        Count := 4
        Offset := 0
        Interval := 2
        Count := 1
        Offset := 0
        IntervalStartType := 3
        Item := 0
      }
      {
        Name := '1 Month'
        Interval := 4
        Count := 1
        Offset := 0
        Interval := 2
        Count := 2
        Offset := 0
        IntervalStartType := 4
        Item := 1
      }
      {
        Name := '3 Months'
        Interval := 4
        Count := 3
        Offset := 0
        Interval := 3
        Count := 1
        Offset := 0
        IntervalStartType := 4
        Item := 1
      }
      {
        Name := '6 Months'
        Interval := 4
        Count := 6
        Offset := 0
        Interval := 3
        Count := 1
        Offset := 0
        IntervalStartType := 4
        Item := 1
      }
      {
        Name := '1 Year'
        Interval := 5
        Count := 1
        Offset := 0
        Interval := 3
        Count := 1
        Offset := 0
        IntervalStartType := 6
        Item := 1
      }
      {
        Name := '5 Years'
        Interval := 5
        Count := 5
        Offset := 0
        Interval := 4
        Count := 1
        Offset := 0
        IntervalStartType := 6
        Item := 1
      }
    *]
    RowContextMenu: 'menuGanttChartRows1'
    RowLines: true
    ScaleHeight: 22
    ScrollOnHighlight: true
    SizePosition: 'ss0 0 0 0'
    StatusbarTimeFormat: 'D2-M2-Y'
    ModeledStringList ChildOrdering
    {
      c: menuGanttChartRows1
      c: menuGanttChart1
      c: NavigationToolbar
      c: ChartMarkingStartOfPlanningHorizon
      c: UserConfigurableInformationStockingPointInPeriod
      c: UserConfigurableInformationPISP
      c: UserConfigurableInformationStockingPointSystem
      c: UserConfigurableInformation
      c: Font
      c: UserConfigurableInformationStockingPointUser
      c: GanttChartRowDefinitionStockingPoint
      c: DataHolderUpstreamPISPs
      c: GUIDataExtractorStockingPointsForProductPlanning
      c: UserConfigurableInformationPISPIP
    }
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_GanttChartDemandSupplyGroup_Menu_OnClick
    {
      #keys: '[11660.0.111672756]'
      Initiator: 'Menu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[11660.0.111672757]'
          Binding: 'GanttChartDemandSupplyGroup.Selection()'
        }
        ResponseDefinitionArgument row
        {
          #keys: '[11660.0.111672764]'
          Binding: 'this.ContextMenuRowObject()'
        }
      ]
    }
    DelegatedResponseDefinition OnClick id:Responsedef_GanttChartDemandSupplyGroup_GUIButtonBase_OnClick
    {
      #keys: '[11660.0.111672771]'
      Initiator: 'GUIButtonBase'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[11660.0.111672772]'
          Binding: 'this.Selection()'
        }
        ResponseDefinitionArgument row
        {
          #keys: '[11660.0.111672779]'
          Binding: 'this.ContextMenuRowObject()'
        }
      ]
    }
  ]
}
