cancel
Showing results for 
Search instead for 
Did you mean: 

Can we toggle between different Scaling (in thousand or Billion) for measure in SAC

0 Kudos

Hello Community,

We have a requirement where a set of user needs to see the report in thousands scaling and other set of user needs to see the same report in Billions. Is there a way for the user to select the scaling in the report without using the designer ( i.e. using the View mode). And as a developer we don't want to duplicate the report and calculated measures.

View Entire Topic
Susanne_Helbig
Product and Topic Expert
Product and Topic Expert
0 Kudos

Dear vijayadhayalan,

this is possible within an analytic application or can be realized with the new story2.0 by using a popup and script.

Create a popup like in the screenshot above.
Create a script variable (I called it UserSettingsScaleUnit)
Create a function (I called it getFormatting), with the following code:

switch (Popup_Settings_ScaleUnit.getSelectedKey()){
case 'DEFAULT':UserSettingScaleUnit = NumberFormatScaleUnit.Default;break
case 'UNFORMATTED':UserSettingScaleUnit = NumberFormatScaleUnit.Unformatted;break
case 'THOUSAND':UserSettingScaleUnit = NumberFormatScaleUnit.Thousand;break
case 'MILLION':UserSettingScaleUnit = NumberFormatScaleUnit.Million;break
case 'BILLION':UserSettingScaleUnit = NumberFormatScaleUnit.Billion;break
case 'AUTO':UserSettingScaleUnit = NumberFormatScaleUnit.AutoFormatted;break
}
switch (Popup_Settings_ScaleFormat.getSelectedKey()) {
case 'DEFAULT':UserSettingScaleFormat = NumberFormatScaleFormat.Default;break
case 'LONG':UserSettingScaleFormat = NumberFormatScaleFormat.Long;break
case 'SHORT':UserSettingScaleFormat = NumberFormatScaleFormat.Short;break
}
switch (Popup_Settings_DisplayUnit.getSelectedKey()){
case 'DEFAULT':UserSettingDisplayUnit = NumberFormatDisplayUnit.Default;break
case 'ROW':UserSettingDisplayUnit = NumberFormatDisplayUnit.Row;break
case 'COLUMN':UserSettingDisplayUnit = NumberFormatDisplayUnit.Column;break
case 'CELL':UserSettingDisplayUnit = NumberFormatDisplayUnit.Cells;break
}
switch (Popup_Settings_SignDisplay.getSelectedKey()){
case 'DEFAULT':UserSettingSignDisplay = NumberFormatSignDisplay.Default;break
case 'MINUS':UserSettingSignDisplay = NumberFormatSignDisplay.MinusAsPrefix;break
case 'PLUSMINUS':UserSettingSignDisplay = NumberFormatSignDisplay.PlusMinusAsPrefix;break
case 'PARENTHESES':UserSettingSignDisplay = NumberFormatSignDisplay.MinusAsParentheses;break
}

The script which will be triggered when clicking OK:

Utils.getFormatting();
Table_1.getNumberFormat().setScaleUnit(UserSettingScaleUnit);

If you want to apply the other settings as well

Then you can use:

Table_1.getNumberFormat().setScaleFormat(UserSettingScaleFormat);
Table_1.getNumberFormat().setDisplayUnit(UserSettingDisplayUnit);
Table_1.getNumberFormat().setSignDisplay(UserSettingSignDisplay);

I hope this helps.

Best regards
Susanne

axel_
Participant

If you ask me this should be possible via widget menu (in view mode) and should not require coding. Quite sad that SAC cannot do this. The old school tools (e.g. BEX Web) can do it ...

Best regards,

Axel

Susanne_Helbig
Product and Topic Expert
Product and Topic Expert
0 Kudos

I'm absolutely with you! But as long this option is missing, this can be a workaround.

pawelwiejkut
Active Participant
0 Kudos

Susanne, is this available in the new story ? It worked for us before, now we have upgraded to the 2024.8.8 and it stopped. I have found this: https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/2d00f5ff0c9245a99a9df...