Quintiq file version 2.0
|
#parent: #root
|
Method PanelSearchProducts () id:Method_ApplicationLibMacroPlanner_PanelSearchProducts
|
{
|
#keys: '[113694.2.1027230159]'
|
Body:
|
[*
|
// Search products by string, highlight & select the instances in the list.
|
if( not isnull( MacroPlan ) )
|
{
|
ApplicationLibMacroPlanner.SetFilters(); // to retain the checkbox filters
|
filter := GUIDataSetLevelProducts.FixedFilter();
|
|
if( EditorSearchProduct.Text() <> '' )
|
{
|
products := MacroPlan.GetProductsByName( EditorSearchProduct.Text() );
|
|
if( products.Size() < 1000 ) // Performance cap
|
{
|
DataHolderProducts.Data( products.Copy() );
|
|
// Using recursive IsParentin filter is very expensive, so we add the parent to the dataholder and do a simpel exists filter
|
productswithparents := Product_MP::GetAllParents( products );
|
productswithparents := productswithparents.Union( products );
|
DataHolderSearchProduct.Data( productswithparents.Copy() );
|
|
filter := filter + ' and exists( dataholdersearchproduct, Elements, e, e = object ) '; // to retain the checkbox filters
|
}
|
}
|
GUIDataSetLevelProducts.FixedFilter( filter );
|
}
|
*]
|
}
|