We have updated Flexmonster Software License Agreement, effective as of September 30, 2024. Learn more about what’s changed.

How to set format correctly

Resolved
Dawid Nowaczyk asked on April 12, 2018

Hi,
I am pulling data using ajax and updating pivot after each refresh. Please see the simple code:
 

  $.post( window.location, {data: JSON.stringify( data ) }, function(result, textStatus) {

pivot.updateData({ data: result });
pivot.runQuery( getSlice() );
pivot.setFormat({ name: "TFormat", decimalPlaces: 2 });
pivot.refresh();

}, "json");

 
 
Data is updated correctly but I saw that only first refresh works good, every next one changes name of all string fields adding "Count of FIELDNAME ) to the name.
I would appreciate any help, pointers or experiments I could try
 
 

6 answers

Public
Dmytro Zvazhii Dmytro Zvazhii Flexmonster April 12, 2018

Hi Dawid!
Probably those fields were detected automatically as numbers.  To prevent autodetection you can predefine field types https://www.flexmonster.com/doc/managing-data-presentation-json
If everything is fine with your data types you also can change labels via localization https://www.flexmonster.com/doc/localizing-component/
Does it work for you?
Regards,
  Dmytro

Public
Dawid Nowaczyk April 12, 2018

Hi, thanks for the response,
 
yes, I am defining field types in JSON code ( at the beginning as in your example )
I want to understand what is changing after update. Looks like this is because of this line:

pivot.setFormat({ name: "TFormat", decimalPlaces: 2 });

Everything works ok if I remove it. But I wanna see only 2 decimal places so I can't remove it permanently.
 
Will be thankful for the support,
 
Thanks,
Dawid

Public
Dmytro Zvazhii Dmytro Zvazhii Flexmonster April 12, 2018

Dawid,

 Could you please send me a data sample? It will help us to resolve your issue much faster.

Thanks,
 Dmytro

Public
Dawid Nowaczyk April 13, 2018

Sure ,please take a took:
 
[
{
u'function': {u'caption': u'Function', u'type': u'string'},
u'v': {u'caption': u'vol1', u'type': u'number'},
u'id': {u'caption': u'ID', u'type': u'string'},
u'week': {u'caption': u'Week', u'type': u'string'},
u'process': {u'caption': u'Process', u'type': u'string'},
u'type': {u'caption': u'Type', u'type': u'string'},
u'hours': {u'caption': u'Hours', u'type': u'number'},
u'size': {u'caption': u'Size', u'type': u'string'}
},

{
u'function': u'tsi',
u'v': 367.0,
u'id': u'233x',
u'week': '2018-14',
u'process': u'tsi',
u'type': u'0-39',
u'hours': 7.64111111111,
u'size': u'Large'

},
{
u'function': u'tsi',
u'v': 238.0,
u'id': u'233x',
u'week': '2018-14',
u'process': u'tsi',
u'type': u'120-159',
u'hours': 4.12111111111,
u'size': u'Large'

},

{
u'function': u'tsu',
u'v': 135.0,
u'id': u'233x',
u'week': '2018-14',
u'process': u'tsu',
u'type': u'160-199',
u'hours': 2.50222222222,
u'size': u'Large'

}
]

Public
Tanya Gryshko Tanya Gryshko Flexmonster April 13, 2018

Hello, Dawid,
Thank you for sharing your data sample! It has really helped us.
You use setFormat as following:

pivot.setFormat({ name: "TFormat", decimalPlaces: 2 });

We suggest to use it a little bit differently:
a) if you want to apply this number format to all numerical values, please set name property as an empty string

pivot.setFormat({ name: "", decimalPlaces: 2 });

b) if you want to apply "TFormat" to some specific measure, for example, "Price", you need to specify this measure as a second parameter

pivot.setFormat({ name: "TFormat", decimalPlaces: 2 }, "Price");

In both cases, "Count of FIELDNAME" should not appear anymore.
Does it help?
Regards,
Tanya

Public
Dawid Nowaczyk April 13, 2018

Yes, it helps a lot!
 
Thanks,
Dawid

Please login or Register to Submit Answer