| Quintiq file version 2.0 | 
| #parent: TabPageGeneral/DataHolderProduct | 
| Response OnCreated () id:Response_TabPageGeneral_DataHolderProduct_OnCreated | 
| { | 
|   #keys: '[106810.1.80242690]' | 
|   Body: | 
|   [* | 
|     // Extract the parent product by filtering out the descendents of the selected products in order to prevent circularity | 
|     data := Dialog.Data().WrappedInstance(); | 
|     isNew := isnull( data ); | 
|     products := null( Product_MPs, owning ); | 
|      | 
|     if( isNew | 
|         or data.IsLeaf() ) // Is leaf | 
|     { | 
|       products := selectset( MacroPlan, Product_MP, p, true ); | 
|       currentScope := DataHolderEditingProduct.Data(); | 
|        | 
|       products := products.Difference( currentScope ); | 
|     } | 
|     else if( not data.HasParent() ) // Is root level | 
|     { | 
|       products := selectset( MacroPlan, RootProduct, p, p <> data ); | 
|     } | 
|     else // Has Parent and Child | 
|     { | 
|       allProducts := selectset( MacroPlan, Product_MP, p, p <> data ); | 
|       myChildren := selectset( data, AllChildren.AsChildren, c, true ); | 
|      | 
|       products := allProducts.Difference( myChildren ); | 
|     } | 
|      | 
|     this.Data( products.Copy() ); | 
|   *] | 
|   DefinitionID: 'Responsedef_GUIComponent_OnCreated' | 
|   Precondition: | 
|   [* | 
|     return not isnull( MacroPlan ); | 
|   *] | 
| } |