I have a simple app which is quite specific to my work, but generally speaking it allows users to query data for a certain 'ticket' by setting a few parameters using combo boxes/text fields, and then hit a Submit button which fetches results from a database and displays them in a grid.
The data is time-sensitive and is arranged in date order with the most recent data at the top. A feature of the app is to 'zoom in' on a specific time-slice within the data, and so I have created 2 custom time-picker controls for start-time/end-time which when edited, dynamically filters the rows in the grid, so that only the data within the timeslice is shown.
I then thought it would be good to incorporate the time-slice start/end times into the actual database query, so that the query would only return the data within the timeslice, as this would improve query times and loads drastically, but this is causing problems with usability, as the timeslice needs to be updated or reset each time the user wants to refresh the data, or query for a different ticket, otherwise the filter would still apply.
The easy option is to remove the timeslice from the query altogether, and incur the big loading times on each and every refresh of data for a certain ticket.
But I was wondering if anyone has come across a similar problem or if anyone has any ideas for keeping the timeslice filter in the query but making it obvious when it needs to be updated/reset etc.
UPDATE: Bit more background - the data on these 'tickets' is collected in real-time, hence, once the user makes an initial query at time T, they are very likely to want to query the same ticket again at T + 1 and so on at T + N, to ensure they are getting the most up to date data. Here is a scenario to explain my usability problem:
- At time T, the user queries ticket id: 1 and gets ALL data.
- They use the timepickers to set a time slice which filters out other data.
- A couple of minutes later, some event occurs that may affect the status of ticket 1, so the user wants to update their data.
- Problem The time-slice has been set, and is part of the query, so the user will only see the data they had previously.
- I need to explain to the user to either manually reset the time-slice, or make the end-time some arbitrary time in the future, so that the query will capture any new rows.
This last point is the problem, its not obvious to the user that they have to reset the time-slice on each new request, also it feels fiddly to have to do this, so I need some kind of visual indicator, to alert them, OR some clever way of detecting that this is merely an update query rather than a load everything query and automatically change the query.
If a user wants to query a ticket with a different id, I can automatically reset the time-slice when the user edits the textbox which sets the id.