on 2022 Oct 28 4:12 PM
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.
Request clarification before answering.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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, 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...
| User | Count |
|---|---|
| 17 | |
| 8 | |
| 8 | |
| 6 | |
| 4 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.