Числовое поле получилось как текст в Excel, SSRS

myPromise, который вы нажимаете на myList, создается после запуска конструктора Promise. Итак, на первой итерации myPromise равно undefined (а на последующих итерациях последняя myPromise помещается в массив).

Создайте Обещание, а затем немедленно нажмите на массив в той же итерации:

var myList = [];

for (let i = 1; i <= 20; i++) {
  var myPromise = new Promise(function(resolve, reject) {
    resolve("ITEM " + i);
  });
  myList.push(myPromise);
}
Promise.all(myList).then(function(values) {
  console.log(values);
});

console.log("End");

Может быть понятнее, если вы вручную поднимите myPromise (чтобы код был ближе к тому, как его выполняет интерпретатор):

var myPromise;
var myList = [];
for (let i = 1; i <= 20; i++) {
  myPromise = new Promise(function(resolve, reject) {
    resolve("ITEM " + i);
  });
  myList.push(myPromise);
}
Promise.all(myList).then(function(values) {
  console.log(values);
});

console.log("End");
[ 1110]

13
задан ag93 9 October 2019 в 20:01
поделиться

2 ответа

Excel распознает это поле как текст, потому что Вы производите пустую строку каждый раз, когда поле 0.

Вы могли попробовать это, для вывода нулевого значения вместо пустой строки:

=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value,  Nothing)

Это, как гарантируют, не будет работать, однако, поскольку я, кажется, помню, что Excel предполагает, что поле является типом того, что находится в первой строке данных.

3
ответ дан 2 December 2019 в 00:04
поделиться

У меня возникла эта проблема. Некоторые ячейки будут текстовыми, а другие - числами - все с одинаковой строкой форматирования. Решение состоит в том, чтобы умножить выражение вашей ячейки на 1.000 (1 не работает!) - это заставляет SSRS форматировать ячейку как число. например; (здесь ваше выражение) * 1.000

12
ответ дан 2 December 2019 в 00:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: