I admit it. I love SmartLists in Microsoft Dynamics GP. Some folks even call me a “SmartList guru.” And I realized the other day that I’m a bit of a SmartList snob, because I think it’s important when you create a SmartList to take the time to add those simple finishing touches which make a GP user’s job that much easier.
So I thought I would share a few SmartList tips which are like the whipped cream and cherry on top of a delightful sundae. I’ll use Microsoft Dynamics Human Resources & Payroll for my examples (the bullet points).
1) If a table field is the code when users are accustomed to seeing the description, then left join the setup tables for the code to show the description in the SmartList (either in addition to the code or instead of the code).
- The Payroll Master table (Employee Maintenance window) shows the Division, Department, Position, and Location codes. Join the setup tables for each of these fields to show the description.
- The Payroll Master table shows the Supervisor ID and the Supervisor Setup table stores the Employee ID of the supervisor. But a user might want to look up all employees who have a certain supervisor and they know that supervisor’s name. So you can first join the Supervisor Setup to the employee’s Payroll Master table by the Supervisor Code. Then join the Payroll Master table to the Supervisor Setup by the Supervisor’s Employee ID in order to get the first and last name of the supervisor.
2) If you do Tip #1, then only include the needed fields. Unmark the Display checkboxes for the other fields.
- If you’re linking the Payroll Department Setup, the user probably does not want the Change By or Change Date for this setup. Even if you just have it as Display and not Default, including it clutters their view when they try to add a column for a Favorite.
3) If you do Tip #1 and include both the code and description in the SmartList, then change the Display Name to indicate which field is the Code and which is the Description. That way if they search by that field, they quickly know how to distinguish each.
- Change the Department field in Payroll Master to Department Code. And change the Description field in Payroll Department Setup to Department Description, Department Name or just Department.
4) If a table has a column that is a different name than the way the field is displayed in the window, then rename it.
- Hire Date and Adjusted Hire Date in the window are Start Date and Ben Adj Date in the table. Change the Display name for each so that users will easily find what they’re looking for.
5) If a window includes certain fields that the table does not, and someone wants a SmartList that pertains to that window, consider joining the necessary tables.
- The Payroll Master table has the Address Code but not the address fields. If each employee only has the Primary Address, you can join the Address Master table by the Employee ID and Address Code.
6) Be aware that joining tables may create multiple rows per subject where there was previously only one, which may warrant using Restrictions or creating separate SmartLists with and without the additional information.
- If you join the HR_Injury_Costs table to the HR_Injury table, you will see one row per Invoice Number where before there was only one row per Case Number. So you may need to create one SmartList without the Costs that only shows one row per Case and another with the Costs.
7) Use the blue arrow to Set Field Options, like displaying ‘1/1/1900’ as blank.
8) At the very least, set up the Default Go To so that when the user double clicks on a specific row, it will open the relevant window with the critical fields filled in (Open Form > Set a field value and run the field script). Even better, set up multiple Go Tos with each window that is relevant to this SmartList.
- There are 4 HR Benefit windows (Health Insurance, Life Insurance, Miscellaneous, and Retirement Plans), 1 Payroll Deduction window, and 1 Payroll Benefit window. While the default Go To might be the Payroll Deduction, making a Go To for all 6 makes it easy for the user to access each window as necessary.

