This is a very interesting requirement. I dont think its possible with section access/application to control field access since they are only for data filteration. But its definetly possible to do.
I assume that only one product is selected at all times (If more than one is possible, you need to explain if to show/hide Gross margin field when both are selected). Secondly I also assume that Gross Margin, Sales, Volume are field names in the document on which metrics are created. With this I can propose a solution for your problem. Create variables like vGrsMrgnDisp = Only([Gross Margin]), one each for your metric. In the document where ever gross margin is there, replace the field with if(vGrsMrgnDisp=1,GrossMargin). It can be easily done using expression overview (CTRL+ALT+E), find and replace.
I know this is not a direct way but is a sure possiblity.
Hope this helps,
First of all thanks for your time and comments.
You are spot on with your second assumption. Gross Margin, Sales, Volume are, fields in the application.
I'm afraid that, your first assumptoin is wrong. But that is 'cause I didnt explaing correctly I guess. There can be multiple product for a single user and none are selected initially. The table above says the following.
Lets take the case of user JERRY. In this particular case the user has access to all the gross marign, sales and volume for product aaa, while has no access to any of the fields for product zzz. That is when the user JERRY logs in the gross marigin, volume and sales charts should be plotted for values correspoding to only aaa, without any selections and so it goes for alll the users.
But I'll try the way you said with the variables and let you know.
We had such kind of requirement where some are interested in only Purchase Order Quantity for particular Division and where as another want to see the Request Quantity for the same division.
How we handled is denormalized the fact table and we had transaction type field and it has Purchase and Request as value in it.
Now we placed section access for the transaction type. So the filter is applied for the person when he log in.