| Quintiq file version 2.0 | 
| Component ListSalesDemand | 
| { | 
|   #keys: '[124112.0.87250426]' | 
|   BaseType: 'List' | 
|   Children: | 
|   [ | 
|     #child: ColumnTitles1 | 
|     Component popupList1 | 
|     { | 
|       #keys: '[124112.0.87251704]' | 
|       BaseType: 'popupList' | 
|       Children: | 
|       [ | 
|         Component PopupParent | 
|         { | 
|           #keys: '[514.0.129466]' | 
|           BaseType: 'PopupParent' | 
|           IsDerived: true | 
|           Children: | 
|           [ | 
|             Component Menu1 { #keys: '[124112.0.97099749]' BaseType: 'Menu' Properties: [ Separator: true ] } | 
|             Component MenuNewSalesDemand { #keys: '[124112.0.98252854]' BaseType: 'Menu' Properties: [ Image: 'DOCUMENT_NEW' Shortcut: 'Ins' Text: 'New...' ] } | 
|             Component MenuEditSalesDemand { #keys: '[124112.0.98256074]' BaseType: 'Menu' Properties: [ BindDoubleClick: true Image: 'EDITOBJECT' Shortcut: 'Enter' Text: 'Edit...' ] } | 
|             Component MenuDeleteSalesDemand { #keys: '[124112.0.98336038]' BaseType: 'Menu' Properties: [ Image: 'GARBAGE' Shortcut: 'Del' Text: 'Delete' ] } | 
|             Component MenuCopySalesDemand { #keys: '[124112.0.98338562]' BaseType: 'Menu' Properties: [ Image: 'COPY' Shortcut: 'Ctrl+O' Text: 'Copy...' ] } | 
|             Component Menu3 { #keys: '[124808.2.297670793]' BaseType: 'Menu' Properties: [ Separator: true ] } | 
|             Component MenuFilter | 
|             { | 
|               #keys: '[104128.0.40995014]' | 
|               BaseType: 'MenuFilter' | 
|               IsDerived: true | 
|               Children: | 
|               [ | 
|                 Component MenuFIlterByProducts { #keys: '[127710.1.1040937920]' BaseType: 'Menu' Properties: [ Checked: true Checkmark: true Text: 'Products' ] } | 
|                 Component MenuFIlterByStockingPoints { #keys: '[127710.1.1040938249]' BaseType: 'Menu' Properties: [ Checked: true Checkmark: true Text: 'Stocking points' ] } | 
|                 Component menuSeparator { #keys: '[127710.1.1040938403]' BaseType: 'Menu' Properties: [ Separator: true ] } | 
|                 Component MenuFIlterBySalesSegments { #keys: '[127710.1.1041242093]' BaseType: 'Menu' Properties: [ Checked: true Checkmark: true Text: 'Sales segments' ] } | 
|               ] | 
|               Properties: | 
|               [ | 
|                 ModeledStringList ChildOrdering | 
|                 { | 
|                   c: MenuFIlterByProducts | 
|                   c: MenuFIlterByStockingPoints | 
|                   c: MenuFIlterBySalesSegments | 
|                   c: menuSeparator | 
|                   c: menuEditFilter | 
|                 } | 
|               ] | 
|             } | 
|             Component menuSeparator224 { #keys: '[121072.0.320451659]' BaseType: 'Menu' Properties: [ Separator: true ] } | 
|             Component MenuAdjustQuantity { #keys: '[121072.0.320452042]' BaseType: 'Menu' Properties: [ Image: 'Edit' Shortcut: 'Ctrl+J' Text: 'Ad&just quantity...' ] } | 
|             Component MenuMergeSalesDemands { #keys: '[121072.0.320453247]' BaseType: 'Menu' ViewSecurity: 'SalesDemandPostponement' Properties: [ Image: 'SCROLL_DELETE' Shortcut: 'Ctrl+M' Text: '&Merge' ] } | 
|           ] | 
|           Properties: | 
|           [ | 
|             ModeledStringList ChildOrdering | 
|             { | 
|               c: MenuActions | 
|               c: MenuFilter | 
|               c: menuListQuintiqSetQuantor | 
|               c: Menu1 | 
|               c: MenuNewSalesDemand | 
|               c: MenuEditSalesDemand | 
|               c: MenuDeleteSalesDemand | 
|               c: MenuCopySalesDemand | 
|               c: menuSeparator224 | 
|               c: MenuAdjustQuantity | 
|               c: Menu3 | 
|               c: MenuMergeSalesDemands | 
|             } | 
|           ] | 
|         } | 
|       ] | 
|       Properties: | 
|       [ | 
|         PosX: 35 | 
|         PosY: 60 | 
|       ] | 
|     } | 
|     Component GUIDataExtractorSalesDemand | 
|     { | 
|       #keys: '[124112.0.87253130]' | 
|       BaseType: 'GUIDataExtractor' | 
|       Properties: | 
|       [ | 
|         Component: 'DataHolderSalesDemandsToDisplay' | 
|         DataType: 'structured[Forecast]' | 
|         PosX: 5 | 
|         PosY: 30 | 
|         Transformation: 'Elements' | 
|       ] | 
|     } | 
|     Component GUIDataSetLevelSalesDemand | 
|     { | 
|       #keys: '[124112.0.87253131]' | 
|       BaseType: 'GUIDataSetLevel' | 
|       Properties: | 
|       [ | 
|         DataExtractor: 'GUIDataExtractorSalesDemand' | 
|         PosX: 35 | 
|         PosY: 30 | 
|         SortCriteria: 'SalesSegment_MP.Name;Product_MP.Name;StockingPoint_MP.Name;StartDate' | 
|       ] | 
|     } | 
|     Component DataHolderSalesDemands | 
|     { | 
|       #keys: '[130256.0.410760559]' | 
|       BaseType: 'DataHolder' | 
|       Databinding: 'structured[Forecast]*' | 
|       Children: | 
|       [ | 
|         Component GUIDataExtractorSDFromChildProducts | 
|         { | 
|           #keys: '[130256.0.410762079]' | 
|           BaseType: 'GUIDataExtractor' | 
|           Properties: | 
|           [ | 
|             Component: 'DataHolderChildProducts' | 
|             DataType: 'structured[Product_MP]' | 
|             PosX: 21 | 
|             PosY: 63 | 
|             Transformation: 'Elements.SalesDemand.astype(Forecast)' | 
|           ] | 
|         } | 
|         Component GUIDataExtractorSDFromChildSalesSegments | 
|         { | 
|           #keys: '[130256.0.410764633]' | 
|           BaseType: 'GUIDataExtractor' | 
|           Properties: | 
|           [ | 
|             Component: 'DataHolderChildSalesSegments' | 
|             DataType: 'structured[SalesSegment_MP]' | 
|             PosX: 88 | 
|             PosY: 66 | 
|             Transformation: 'Elements.SalesDemand.astype(Forecast)' | 
|           ] | 
|         } | 
|         Component GUIDataExtractorSDFromChildStockingPoints | 
|         { | 
|           #keys: '[127710.1.1963575572]' | 
|           BaseType: 'GUIDataExtractor' | 
|           Properties: | 
|           [ | 
|             Component: 'DataHolderChildStockingPoints' | 
|             DataType: 'structured[StockingPoint_MP]' | 
|             PosX: 44 | 
|             PosY: 98 | 
|             Transformation: 'Elements.SalesDemand.astype(Forecast)' | 
|           ] | 
|         } | 
|       ] | 
|       Properties: | 
|       [ | 
|         Description: 'Filtered forecasts based on DataHolderChildSalesSegments and DataHolderChildPISPs' | 
|         PosX: 293 | 
|         PosY: 248 | 
|         ModeledStringList ChildOrdering | 
|         { | 
|           c: GUIDataExtractorSDFromChildProducts | 
|           c: GUIDataExtractorSDFromChildSalesSegments | 
|           c: GUIDataExtractorSDFromChildStockingPoints | 
|         } | 
|       ] | 
|     } | 
|     Component DataHolderInvalidSalesForecast | 
|     { | 
|       #keys: '[145488.2.360586107]' | 
|       BaseType: 'DataHolder' | 
|       Databinding: 'structured[Forecast]*' | 
|       Children: | 
|       [ | 
|         Component GUIDataExtractorInvalidForecast | 
|         { | 
|           #keys: '[145488.2.360586307]' | 
|           BaseType: 'GUIDataExtractor' | 
|           Properties: | 
|           [ | 
|             DataSet: 'MacroPlan' | 
|             DataType: 'MacroPlan' | 
|             FixedFilter: 'not object.IsValidData()' | 
|             PosX: 54 | 
|             PosY: 53 | 
|             Transformation: 'SalesDemand.astype(Forecast)' | 
|           ] | 
|         } | 
|       ] | 
|       Properties: | 
|       [ | 
|         Description: 'Filtered forecasts with invalid data' | 
|         PosX: 219 | 
|         PosY: 248 | 
|       ] | 
|     } | 
|     Component DataHolderSalesDemandsToDisplay | 
|     { | 
|       #keys: '[145488.2.360586529]' | 
|       BaseType: 'DataHolder' | 
|       Databinding: 'structured[Forecast]*' | 
|       Children: | 
|       [ | 
|         Component GUIDataExtractorValid | 
|         { | 
|           #keys: '[145488.2.360586651]' | 
|           BaseType: 'GUIDataExtractor' | 
|           Properties: | 
|           [ | 
|             Component: 'DataHolderSalesDemands' | 
|             DataType: 'structured[Forecast]' | 
|             PosX: 60 | 
|             PosY: 60 | 
|             Transformation: 'Elements' | 
|           ] | 
|         } | 
|         Component GUIDataExtractorInvalid | 
|         { | 
|           #keys: '[145488.2.360586673]' | 
|           BaseType: 'GUIDataExtractor' | 
|           Properties: | 
|           [ | 
|             Component: 'DataHolderInvalidSalesForecast' | 
|             DataType: 'structured[Forecast]' | 
|             PosX: 41 | 
|             PosY: 96 | 
|             Transformation: 'Elements' | 
|           ] | 
|         } | 
|       ] | 
|       Properties: | 
|       [ | 
|         Description: 'Combination of filtered valid and invalid forecasts to display on the list' | 
|         MergeStyle: 'Unite' | 
|         PosX: 251 | 
|         PosY: 191 | 
|         ModeledStringList ChildOrdering | 
|         { | 
|           c: GUIDataExtractorValid | 
|           c: GUIDataExtractorInvalid | 
|         } | 
|       ] | 
|     } | 
|   ] | 
|   Properties: | 
|   [ | 
|     AutoDrag: true | 
|     BackgroundColor: 'Window' | 
|     ContextMenu: 'popupList1' | 
|     FullRowSelect: true | 
|     ScrollOnHighlight: true | 
|     SelectOnHighlighted: true | 
|     ModeledStringList ChildOrdering | 
|     { | 
|       c: ColumnTitles1 | 
|       c: popupList1 | 
|       c: GUIDataExtractorSalesDemand | 
|       c: GUIDataSetLevelSalesDemand | 
|       c: DataHolderSalesDemands | 
|       c: DataHolderInvalidSalesForecast | 
|       c: DataHolderSalesDemandsToDisplay | 
|     } | 
|   ] | 
|   ResponseDefinitions: | 
|   [ | 
|     DelegatedResponseDefinition OnClick id:Responsedef_ListSalesDemand_Menu_OnClick | 
|     { | 
|       #keys: '[124112.0.87253132]' | 
|       Initiator: 'Menu' | 
|       IsInherited: false | 
|       ResponseType: 'OnClick' | 
|       Arguments: | 
|       [ | 
|         ResponseDefinitionArgument selection | 
|         { | 
|           #keys: '[124112.0.87253133]' | 
|           Binding: 'this.Selection()' | 
|         } | 
|       ] | 
|     } | 
|     DelegatedResponseDefinition OnClick id:Responsedef_ListSalesDemand_GUIButtonBase_OnClick | 
|     { | 
|       #keys: '[124112.0.87253161]' | 
|       Initiator: 'GUIButtonBase' | 
|       IsInherited: false | 
|       ResponseType: 'OnClick' | 
|       Arguments: | 
|       [ | 
|         ResponseDefinitionArgument selection | 
|         { | 
|           #keys: '[124112.0.87253162]' | 
|           Binding: 'this.Selection()' | 
|         } | 
|       ] | 
|     } | 
|   ] | 
| } |