Creating A Custom Lookup in Dynamics AX That Filters Across Multiple Fields

by | Updated August 15, 2016 | Development, Dynamics AX

The normal item lookup in Dynamics AX is fine for finding items when you know part of the Item number or Search name. But, what if we have item information in a related table?

Custom Lookup in Dynamics AX


We want to create a custom lookup in Dynamics AX that displays fields from a related table, and allows us to filter records by typing into a search box. Start by creating a regular custom lookup form. Instead of standard data sources, we will use a query as the data source for our form. This will allow us to more easily filter our results. Add a text box and a button above the grid; this will serve as our filter box.

When opened, the form now looks like this:

Creating a Custom Lookup in Dynamics AX

The first problem we encounter is that a normal lookup form will disappear whenever a record is selected. We want to break this behavior and force the user to either click the select button or double click the desired record so that the user is able to use the filter box.

The following code implements this change:


Override the clicked method on the Select button:


Override the doubleClicked method on the grid:


The canSelect variable is a flag that allows us to cancel the form closing that would normally happen when the user clicks on something.

Now for the interesting part.  When the user types a value into the filter box, we want to filter the grid to show all records where any field starts with the entered value.  To do this, we are going to use the addQueryFilter method on the query.  This will allow us to add a WHERE clause to the query that will match multiple fields and OR the results together.  By applying a normal filter we are only able to AND the results.

I also must point out that a query filter applied in this manner differs from the normal Range applied to a QueryBuildDataSource in that it’s applied after the data sources are joined. This can produce unexpected results when your tables are linked with an Outer join.


The last thing to do is add a timer to automatically apply the filter 1 second after the user stops typing.

In the class declaration of the form, add a constant for the timeout:  *Remember that the timeout is specified in milliseconds.

Override the clicked method on the SearchValue button to apply the filter when it is clicked:

Add a method to the SearchValue button to apply the filter:


Finally, override the textChanged method to start the timer whenever the text box value changes:


Now when we type “Microsoft” into the filter we find all records with a field that starts with that string:
Custom Lookup in Dynamics AX



Related Posts


Submit a Comment

Your email address will not be published. Required fields are marked *

Upcoming Events


01jul11:00 am12:00 pmConfab Live with Stoneridge – Dataverse Virtual Entities

14jul12:00 pm12:30 pmBeyond Reporting - What Business Intelligence Can Do For Your Agribusiness

15jul10:00 am11:00 amMastering the Production Floor

21jul10:00 am10:30 amThe Modern Manufacturer: Manufacturing Software in the Real World

21jul12:00 pm1:00 pmIs it Worth it to Upgrade to Dynamics 365 Finance and Supply Chain Management? - Everything AX Users Need to Consider

28jul10:00 am10:30 amLot Management for Batch Manufacturers in Life Sciences, Chemical and Food

28jul2:00 pm2:30 pmConsiderations for Successful Testing Plans for Major Releases of Dynamics 365 Finance and Supply Chain Management

29jul11:00 am12:00 pmConfab Live with Stoneridge – Integration Strategies for End User Success


04aug2:00 pm2:30 pmSimplifying Payroll and HR Management with ADP Workforce Now

10aug(aug 10)8:00 am11(aug 11)11:00 amPower BI for Dynamics 365 - Online Workshop

11aug10:00 am10:30 amThe Modern Manufacturer - Enterprise Asset Management

11aug12:00 pm12:30 pmBusiness Intelligence with Dynamics 365 Finance and Supply Chain Management – Game Changing Insights and Analytics

11aug2:00 pm2:30 pmUsing Technology to Manage Complex Sales Pricing, Commission, and Rebate Programs

18aug10:00 am11:00 amTop Five Reasons Why NOW is the Right Time to Move from Salesforce to Dynamics 365 Customer Engagement

18aug10:00 am12:00 pmIntro to Power BI for Dynamics 365 Business Central – Online Workshop

18aug12:00 pm1:00 pmSolving the Biggest Challenges in Agribusiness Through Innovation and Technology

About Stoneridge
Stoneridge Software is a unique Microsoft Gold Partner, with emphasis on partner. With specialties in Microsoft Dynamics 365, Microsoft Dynamics AX, Microsoft Dynamics NAV, Microsoft Dynamics GP and Microsoft Dynamics CRM, we focus on attracting the most knowledgeable experts in the field to our team, and prioritize delivering stellar solutions with maximum impact for your business. At Stoneridge, we are deeply committed to your results. Each engagement is met with a dedicated team, ready to provide thorough, tailored, and expert service. Based in Minnesota, we intentionally “step into your shoes,” wherever you are. We focus on what you care about, and develop trusting, long-term relationships with our clients.

Subscribe To Our Blog

Sign up to get periodic updates on the latest posts.

Thank you for subscribing!