欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SAP Fiori globalization实现原理之Number显示的格式原理 sapSAP云平台SAP Cloud PlatformSAP成都研究院Cloud 

程序员文章站 2022-06-13 17:36:06
...

You might observe the same number value but displayed with different format if you log on the same system with different user.

 

SAP Fiori globalization实现原理之Number显示的格式原理
            
    
    
        sapSAP云平台SAP Cloud PlatformSAP成都研究院Cloud 

 

The user with Decimal Notation setting ” ” will see the format “1.880,00” and setting “Y” will see “1 880,00”. What has happened under the hood?

 

SAP Fiori globalization实现原理之Number显示的格式原理
            
    
    
        sapSAP云平台SAP Cloud PlatformSAP成都研究院Cloud 

 

If you monitor the network tab in Chrome development tool when Fiori launchpad is initialized for the very beginning, you can find the http request below:

 

SAP Fiori globalization实现原理之Number显示的格式原理
            
    
    
        sapSAP云平台SAP Cloud PlatformSAP成都研究院Cloud 

 

The response contains the Defaults user setting stored in ABAP backend. The attribute “numberFormat” is related to the number format being displayed.

 

SAP Fiori globalization实现原理之Number显示的格式原理
            
    
    
        sapSAP云平台SAP Cloud PlatformSAP成都研究院Cloud 

 

In Configuration.js, the corresponding enumeration variable is defined for each type of number format.

 

SAP Fiori globalization实现原理之Number显示的格式原理
            
    
    
        sapSAP云平台SAP Cloud PlatformSAP成都研究院Cloud 

 

The main logic for number format is implemented in file NumberFormat.js. As the variable name has already given a good hint, the integer part and fraction part of 1880.00 are parsed and stored into the two variables separately.

 

SAP Fiori globalization实现原理之Number显示的格式原理
            
    
    
        sapSAP云平台SAP Cloud PlatformSAP成都研究院Cloud 

 

The logic of the following code:

(1) Since a number is displayed as several groups and each group consists of THREE digits, so in code 627, the position of group is calculated by MOD operation against 3.

(2) For user setting “Y”, the group separator character is ” ” and decimal separator is “,” , stored in corresponding attribute in variable oOptions.

 

SAP Fiori globalization实现原理之Number显示的格式原理
            
    
    
        sapSAP云平台SAP Cloud PlatformSAP成都研究院Cloud 

 

(3) You can debug the NumberFormat.format in the run time to have a better understanding on the logic above. Suppose you do not the exact location of NumberFormat.js, just switch to debug mode, open Chrome development tool and go to Sources tab,

 

SAP Fiori globalization实现原理之Number显示的格式原理
            
    
    
        sapSAP云平台SAP Cloud PlatformSAP成都研究院Cloud 

 

press Ctrl+O and type “NumberF” and then there is auto-complete function which lists all potential results.

 

SAP Fiori globalization实现原理之Number显示的格式原理
            
    
    
        sapSAP云平台SAP Cloud PlatformSAP成都研究院Cloud 

 

Click the second one ( ) and you will navigate to NumberFormat.js. Hover the mouse and you can see its absolute path in tooltip. Now you can set breakpoint and debug. For more tips about Chrome development tool used in my daily work, please refer to this blog. Enjoy debugging!

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

SAP Fiori globalization实现原理之Number显示的格式原理
            
    
    
        sapSAP云平台SAP Cloud PlatformSAP成都研究院Cloud