I have a container with a set of charts in it. I have some buttons that set a variable to show or hide some of these charts. When a chart is hidden via the show condition, the tab for that chart is still visible in the container. How can I resolve this?
Afaik it is not possible to hide the tabs of a container. Why are you using a container anyway if you're already showing/hiding charts with the show condition?
So it's a little bit tricky to explain. I need to use two variables to determine whether a chart is visible. So on the left I have a row of buttons that control one variable, called MetricsCategory, and along the top there's another row of buttons that controls a varaible MetricsAudience.
So let's say MetricsCategory is Sales. We have a number of sales related charts that we want to show, but if MetricsAudience is Management, we want to show a different set of sales charts than if it were say SalesRep. So I have a set of say 5 Sales charts, and SalesRep may want to see 1-3, but Management just wants to see 2-5. So my idea was to use a container with the show condition of MetricsCategory = Sales, and then have each chart show condition be visible based on the audience.
The problem is managing the real estate. If I have a set of 5 Sales charts that are visible or hidden depending on the audience, how do I know where they should be placed? If they're all next to each other, there will be gaps. I won't know how to dynamically control the layout. I was hoping that a container would just collapse everything into tabs. Does that make sense?
The container object is primitive - there is very little customization available on it. You can still achieve this with show conditional in each chart. You can put all 5 charts on top of each other, and set variables accordingly. Remember that when you want to, for example, activate chart 1, you have to deactivate charts 2, 3, 4, and 5 by way of Action->Set Variable. So each chart will have 5 Set Variable actions.
Then you need to note down the Windows login names of each person viewing your document, then show conditional based on their windows login names using the function OSuser().
For example, for your Sales people charts, show conditional on
OSUser() returns the windows login name in the form of domain\username.
Either way, having all 5 charts on top of each other doesn't make sense if I need to display multiple at a time. The problem is how do I dynamically lay out charts depending on the variable. Or do I just have to make copies of the same chart and make different layouts for each audience?
Yes you can alternatively create 2 sheets, one with show conditional to all Sales people using OSuser(), the other with Management. The management won't see the Sales sheet, and vice versa.
You could create a different sheet for each layout. You don't have to make 'hard' copies of the charts. Keep the ctrl+shift keys pressed down and drag the chart to another location or another sheet. That way you created a 'linked' copy of the object. Any change in any one of the linked objects will be reflected in all of them as they're 'views' of the same object.