Many people want the user to be able to click an area of a report and have items in the report be shown based on this interaction.
For example, I might want to toggle between a table view and a chart view of some data.
The way to do this is to use a report parameter in combination with a drill-through link back to the same report. Once you have this infarstructure, you can use an expression to drive the 'Hidden' property of a report item. If you have one or two items to show/hide you can probably do this inline.
However, if you have many items, the logic is complex, or the logic needs to be repeated across reports, it would be better to centralize the logic so you can better maintain your reports.
The way to do this is to put your visibility expression in a function. You can then call the function using the Code.FunctionName syntax where you normally would have put your visibility expression.
Take care, and best luck