PDA

View Full Version : Delay when returning from drill down.



FrankValcarcel
17-Jun-2015, 03:21 PM
If a list is constrained and it takes a while to load this penalty is paid each time you zoom into a record and come back.

1. Is it possible to NOT refresh the list when you come back from a zoom? In the case of static data there is no risk of change in the list.

2. Where do I hook in with SetActionMode to put up the wait message while he list rebuilds?

John Tuohy
17-Jun-2015, 07:54 PM
Not really a solution but what happens if you add this to the returning list:

Procedure RefreshListFromDD
End_Procedure

-John

FrankValcarcel
17-Jun-2015, 09:00 PM
Seemed to work on one view but not the other.
fv

John Tuohy
18-Jun-2015, 11:20 AM
So how are these views you are returning to different. I assume they are both select views (lists). How are you returning to them? Is this a Cancel operation (e.g., selecting the prior item in the breadcrumb control or sending NavigateCancel) or a Close operation (sending NavigateClose)?

-John

FrankValcarcel
18-Jun-2015, 11:41 AM
In both cases I am click either the back arrow or the prior item in the breadcrumb. I think the delay is that view being returned is still regenerating the list. Where can I set a SetActionMode to popup a please wait box while a list is being reloaded?

John van Houten
19-Jun-2015, 03:52 AM
Hi Frank,

Regarding SetActionMode this is kind of an advanced tool that allows you to mark a particular call that the client makes to a particular object on the server, and when that call is made to that object the client will...

1. lock the browser interface
2. show a "waiting..." message (or a busy cursor)

In your case the problem is identifying what call is being made to what object when you have your delay. It is worth repeating, you cannot mark messages that the server sends from one DF object to another, you can only mark published messages that the client sends to the server.

The way to figure out what message you can tap into for your particular problem is to put a breakpoint inside cWebApp - CallAction and look at what messages the client is sending to the server when loading your view.

The view's OnLoad is one message, and it looks like a good candidate, until you discover that it is only sent the first time that the view is loaded and it is not sent when you navigate back up the breadcrumb stack.

There is only really one message that is sent to the server every time that you click on the breadcrumb to return to a view: that is the breadcrumb's OnSelect message. So if you add this to your breadcrumb object...



Procedure OnLoad
Send SetActionMode (RefProc(OnSelect)) scModeProgress "Loading..."
End_Procedure


This tells the client that every time it needs to send OnSelect to the Server it should show the "Loading..." message until the call is processed. But now it will do this for every view that you navigate back to via the breadcrumb so it might not be an ideal solution to your problem but it will do what you were asking.

regards John van Houten
Data Access Corporation