Announcements
internal final class ABCEcoResProductDetailsExtendedHandler { [FormControlEventHandler(formControlStr(EcoResProductDetailsExtended, ABCProductStateFilter), FormControlEventType::SelectionChanged)] public static void ABCProductStateFilter_OnSelectionChanged(FormControl sender, FormControlEventArgs e) { FormComboBoxControl callerControl = sender as FormComboBoxControl; FormRun form = callerControl.formRun(); FormDataSource inventTable_ds = form.dataSource(formDataSourceStr(EcoResProductDetailsExtended, InventTable)); ABCEcoResProductDetailsExtendedFilterHelper::applyProductStateFilter(inventTable_ds, callerControl.selection()); } }
internal final class ABCEcoResProductDetailsExtendedFilterHelper { public static void applyProductStateFilter(FormDataSource _formDataSource, int selection) { QueryBuildDataSource inventTableDS, inventItemSetupDS; inventTableDS = SysQuery::findOrCreateDataSource(_formDataSource.query(), tableNum(InventTable)); inventTableDS.clearLinks(); switch (selection) { case ABCProductStateFilter::Active : inventItemSetupDS = inventTableDS.addDataSource(tableNum(ABCInventItemSetupStoppedUnion)); inventItemSetupDS.addLink(fieldNum(InventTable, ItemId), fieldNum(ABCInventItemSetupStoppedUnion, ItemId)); inventItemSetupDS.joinMode(JoinMode::NoExistsJoin); inventItemSetupDS.relations(false); break; case ABCProductStateFilter::StoppedInvent : inventItemSetupDS = inventTableDS.addDataSource(tableNum(InventItemInventSetupStopped)); inventItemSetupDS.addLink(fieldNum(InventTable, ItemId), fieldNum(InventItemInventSetupStopped, ItemId)); inventItemSetupDS.joinMode(JoinMode::ExistsJoin); inventItemSetupDS.relations(false); break; case ABCProductStateFilter::StoppedPurch : inventItemSetupDS = inventTableDS.addDataSource(tableNum(InventItemPurchSetupStopped)); inventItemSetupDS.addLink(fieldNum(InventTable, ItemId), fieldNum(InventItemPurchSetupStopped, ItemId)); inventItemSetupDS.joinMode(JoinMode::ExistsJoin); inventItemSetupDS.relations(false); break; case ABCProductStateFilter::StoppedSales : inventItemSetupDS = inventTableDS.addDataSource(tableNum(InventItemSalesSetupStopped)); inventItemSetupDS.addLink(fieldNum(InventTable, ItemId), fieldNum(InventItemSalesSetupStopped, ItemId)); inventItemSetupDS.joinMode(JoinMode::ExistsJoin); inventItemSetupDS.relations(false); break; case ABCProductStateFilter::All: break; } _formDataSource.executeQuery(); } }
internal final class ABCEcoResProductDetailsExtendedFilterHelper { public static void applyProductStateFilter(FormDataSource _inventTableQbds, ABCProductStateFilter _selection) { Query query = _inventTableQbds.query(); QueryBuildDataSource inventStoppedUnionDs = _query.dataSourceTable(tableNum(ABCInventItemSetupStoppedUnion)); QueryBuildDataSource inventStoppedDs = query.dataSourceTable(tableNum(InventItemInventSetupStopped)); QueryBuildDataSource purchStoppedDs = query.dataSourceTable(tableNum(InventItemPurchSetupStopped)); QueryBuildDataSource salesStoppedDs = query.dataSourceTable(tableNum(InventItemSalesSetupStopped)); // Disable all inventStoppedUnionDs.enabled(false); inventStoppedDs.enabled(false); salesStoppedDs.enabled(false); salesStoppedDs.enabled(false); // Enable just what you need switch (_selection) { case ABCProductStateFilter::Active: inventStoppedUnionDs.enabled(true); break; case ABCProductStateFilter::StoppedInvent: inventStoppedDs.enabled(true); break; case ABCProductStateFilter::StoppedPurch: purchStoppedDs.enabled(true); break; case ABCProductStateFilter::StoppedSales: salesStoppedDs.enabled(true); break; } _inventTableQbds.executeQuery(); } }
internal final class ABCEcoResProductDetailsExtendedFilterHelper { public static void applyProductStateFilter(FormDataSource _inventTableQbds, ABCProductStateFilter _selection) { QueryBuildDataSource inventStoppedUnionDs, inventStoppedDs, purchStoppedDs, salesStoppedDs; inventStoppedUnionDs = _inventTableQbds.queryBuildDataSource().addDataSource(tableNum(ABCInventItemSetupStoppedUnion)); inventStoppedUnionDs.addLink(fieldNum(InventTable, ItemId), fieldNum(ABCInventItemSetupStoppedUnion, ItemId)); inventStoppedUnionDs.joinMode(JoinMode::NoExistsJoin); inventStoppedDs = _inventTableQbds.queryBuildDataSource().addDataSource(tableNum(InventItemInventSetupStopped)); inventStoppedDs.addLink(fieldNum(InventTable, ItemId), fieldNum(InventItemInventSetupStopped, ItemId)); inventStoppedDs.joinMode(JoinMode::ExistsJoin); purchStoppedDs = _inventTableQbds.queryBuildDataSource().addDataSource(tableNum(InventItemPurchSetupStopped)); purchStoppedDs.addLink(fieldNum(InventTable, ItemId), fieldNum(InventItemPurchSetupStopped, ItemId)); purchStoppedDs.joinMode(JoinMode::ExistsJoin); salesStoppedDs = _inventTableQbds.queryBuildDataSource().addDataSource(tableNum(InventItemSalesSetupStopped)); salesStoppedDs.addLink(fieldNum(InventTable, ItemId), fieldNum(InventItemSalesSetupStopped, ItemId)); salesStoppedDs.joinMode(JoinMode::ExistsJoin); // Disable all inventStoppedUnionDs.enabled(false); inventStoppedDs.enabled(false); purchStoppedDs.enabled(false); salesStoppedDs.enabled(false); // Enable just what you need switch (_selection) { case ABCProductStateFilter::Active: inventStoppedUnionDs.enabled(true); break; case ABCProductStateFilter::StoppedInvent: inventStoppedDs.enabled(true); break; case ABCProductStateFilter::StoppedPurch: purchStoppedDs.enabled(true); break; case ABCProductStateFilter::StoppedSales: salesStoppedDs.enabled(true); break; } _inventTableQbds.executeQuery(); } }
Under review
Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.
Congratulations to our community stars!
Expanding mentorship, skilling, and AI innovation
These are the community rock stars!
Stay up to date on forum activity by subscribing.
André Arnaud de Cal... 405 Super User 2026 Season 1
Subra 374
Martin Dráb 218 Most Valuable Professional