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 ); 
 | 
  *] 
 | 
} 
 |