Gary P
Active Member
Hey guys,
We have a custom application on power forms called Part Inquiry. In part inquiry, the user enters in a part number/branch and hits find. They can then see sales orders, purchase orders, and all kinds of information on a part. It is one of our most popular applications. I want to make it faster.
The power form has seven subforms that each have a grid on them. To save space, each subform is shown in a tab; meaning the user only sees one of these subforms at a time. When the user hits find on the parent, each subform runs a find on the first page of its grid and returns the number of records it found to the parent. If records were found, I show a notification to the user. If there are no records, I hide the notification. This way, the user can see instantly if there are sales orders, purchase orders, quotes, etc for a part without having to look at each tab.
The problem with this is that you can imagine doing seven finds takes more time than doing one, especially since the user is only viewing one grid at a time. However, the user needs to see that notification, and doesn't like looking at each tab to see if its grid is populated.
What I want to do is when the user clicks find, get that notification to the user in the fastest way possible, and only load in the grid they are looking at. Because there are numerous filter fields and QBE columns on each subform, the only reasonable way I can think of to do this reliably is to just check and see if even one record will populate into the grid. Then use that to show or hide the notification. Then I can only populate the grid the user is looking at, and populate each grid when the user selects that tab.
I have a way of telling the subform whether it is loading its grid or only checking for the presence of one record. The difficulty I have is in finding a way to tell the grid to stop running the find routine when a record has been found. The Suppress Find function only appears to work before the Find has begun processing. Once the find process has begun, I can't find a way to get out of it until the full page has been populated.
Any insights?
We have a custom application on power forms called Part Inquiry. In part inquiry, the user enters in a part number/branch and hits find. They can then see sales orders, purchase orders, and all kinds of information on a part. It is one of our most popular applications. I want to make it faster.
The power form has seven subforms that each have a grid on them. To save space, each subform is shown in a tab; meaning the user only sees one of these subforms at a time. When the user hits find on the parent, each subform runs a find on the first page of its grid and returns the number of records it found to the parent. If records were found, I show a notification to the user. If there are no records, I hide the notification. This way, the user can see instantly if there are sales orders, purchase orders, quotes, etc for a part without having to look at each tab.
The problem with this is that you can imagine doing seven finds takes more time than doing one, especially since the user is only viewing one grid at a time. However, the user needs to see that notification, and doesn't like looking at each tab to see if its grid is populated.
What I want to do is when the user clicks find, get that notification to the user in the fastest way possible, and only load in the grid they are looking at. Because there are numerous filter fields and QBE columns on each subform, the only reasonable way I can think of to do this reliably is to just check and see if even one record will populate into the grid. Then use that to show or hide the notification. Then I can only populate the grid the user is looking at, and populate each grid when the user selects that tab.
I have a way of telling the subform whether it is loading its grid or only checking for the presence of one record. The difficulty I have is in finding a way to tell the grid to stop running the find routine when a record has been found. The Suppress Find function only appears to work before the Find has begun processing. Once the find process has begun, I can't find a way to get out of it until the full page has been populated.
Any insights?