Quintiq file version 2.0 #parent: #root Method SetDefaultValue () id:Method_DialogCreateEditProduct_SetDefaultValue { #keys: '[135040.0.213300467]' Body: [* // Set default + init dialog dialogInstance := DataHolderDialogData.Data().WrappedInstance(); isNew := isnull( dialogInstance ); // Extract the parent product by filtering out the descendents of the selected products in order to prevent circularity products := construct( Product_MPs ); if( isNew or dialogInstance.IsLeaf() ) // Is leaf { products := selectset( MacroPlan, Product_MP, p, true ); currentScope := DataHolderDialogDatas.Data(); products := products.Difference( currentScope ); } else if( not dialogInstance.HasParent() ) // Is root level { products := selectset( MacroPlan, RootProduct, p, p <> dialogInstance ); } else // Has Parent and Child { allProducts := selectset( MacroPlan, Product_MP, p, p <> dialogInstance ); myChildren := selectset( dialogInstance, AllChildren.AsChildren, c, true ); products := allProducts.Difference( myChildren ); } DataHolderParentProductSelection.Data( products.Copy() ); *] }