In Perspective, because of the potential for disruptively extreme workloads on the gateway, I tend to not use query bindings when there are multiple parameters to bind that are under user control. Instead, I track when changes are made that render the current data stale, and update the UI to show that, while also enabling a "refresh" or "repoll" button that will run the appropriate query by script. While running, such a script also disables all user inputs and makes an indeterminate progress bar visible. When the scripted query returns, the bar is hidden again, and UI items re-enabled (now showing the fresh data).
@Aiasa21 , it really isn't a "problem". You are modifying 2 or 3 distinct properties of the XY Chart individually...hence the multiple queries. This is by design. If you don't want this behavior, script the changes to update the properties at the same time. De-couple the bindings you have and add a submit button to do the changes in one shot. This is a common approach in many user interfaces to select your dates and any other options, then once you are ready...hit Go!.
That's the point of this discussion. If you have a user-editable "end time" control, and you have an expression that computes an appropriate start time (fixed interval, whatever), even though the two properties change a few microseconds apart, Perspective still fires the query twice. (Vision does not.)
As @pturmel say, you can't using a query binding on the data sources.
In my opinion you can see it as a problem if in the years you are not use to push a button to refresh the data. If I add a button I'm 100% that this will be a problem because with the "old" scada you didn't do this even if should be so simple push it... And I understand this.. We should revamp the Scada so to make things better, simpler and smarter.
Anyway as I said, at the moment I will use a workaround with a dropdown but as @pturmel said this doesn't happen in Vision so will be great add an option to prevent this thing when happen in maybe 50ms, so everyone can decided how to manage the binding refresh.
I understand now. Perhaps leveraging a property change script and looking at the "origin" could help. Bind the user-editable end time along with the start time expression to some custom properties...and based on the origin, update another set of start/end properties that the XY Chart is bound to. Then you'll get 1 refresh.
@Aiasa21 , you'd have to do some testing to figure out which "origin" you want to ignore and which one should capture the current end and start times to write to the final properties. Messy, but you won't have to change your user interface.