BIRT: странное поведение parseInt - PullRequest
0 голосов
/ 07 ноября 2018

Я использую параметр отчета в BIRT.

Это строка, которая содержит месяц / год, например: 08/2018

Для проверки значения я использую следующий код. Он расположен в динамическом тексте:

var dateStringArray = params["monthYear"].value.split("/");
var date = new Date(parseInt(dateStringArray[1]), parseInt(dateStringArray[0]) - 1, 1);
var t = parseInt(dateStringArray[0]);
t;

Если я заполняю параметр 08/2018, я получаю NaN, см .:

Result of parseInt(

Но если я заполняю параметр 07/2018, он работает правильно:

Working correctly

Я проверил это с несколькими числами. Просто не работает с 08 и 09. Все остальные номера до 10 работают ...

1 Ответ

0 голосов
/ 08 ноября 2018

Это кажется странным сценарием. Нужно поднять ошибку на этом. Но для вашего решения вы можете использовать приведенный ниже код в Dynamic Text, который работает нормально:

var dateStringArray = params["monthYear"].value.split("/");
var monNum;
if (BirtStr.charLength(dateStringArray[0]) == 2) 
{monNum = BirtStr.right(dateStringArray[0],1);}
else {monNum = dateStringArray[0];}
monNum;
//var date = new Date(parseInt(dateStringArray[1]), parseInt(dateStringArray[0]) - 1, 1);
var t = parseInt(monNum);
t;
...