One thing you could try as an alternative to locking/unlocking based on conditionals:
You can right click on the object/(s) that display way too much data if it is activated, click on properties. Click on the layout tab, and on the right hand side in about the middle under show, click on conditional. Then enter in the criteria for when you want for the object to be shown. When the criteria is not met, it will not display at all.
When the users has no selection, the function getCurrentSelections() will return null.
So, in the show condition of the sheet ( Sheet Properties -> General tab -> Show sheet, you can write:
but this condition may not be as robust as you need it.
You can make a count in a field to determine if it is appropriate to calculate your object. (e.g., count( INVOICE_ID))
Then, you condition would be:
= count(INVOICE_ID) < 100000
Instead of the show condition, in a chart you can create a calculation condition:
Chart Properties -> General Tab -> Calculation condition.
The advantage is that you can set a message (same tab-> error messages -> Calculation condition unfulfilled) where you can put something like: "Please, make some selection...'" etc
Hope this helps,