SSRS: Подведение итогов TimeSpan оценивает в отчете

Правильный способ с классами заключается в том, чтобы не псевдоним this:

class Apple2 {
  constructor(type) {
    this.type = type
    this.color = 'red'
  }

  getInfo() {
    return `${this.color} ${this.type} apple`
  }
}

console.log(new Apple2('Jazz').getInfo())

причина в том, что это на самом деле (приблизительно) эквивалентно следующему коду:

function Apple(type) {
  this.type = type
  this.color = 'red'
}

Apple.prototype.getInfo = function() {
  return this.color + ' ' + this.type + ' apple'
}

console.log(new Apple('Granny').getInfo())

, поэтому используется this работает. На самом деле, даже с вашим исходным кодом, псевдоним не был необходим:

function Apple(type) {
  this.type = type
  this.color = 'red'
  this.getInfo = function() {
    return this.color + ' ' + this.type + ' apple'
  }
}

var apple = new Apple('Granny')

// does not make a difference
console.log(apple.getInfo())

var getInfo = apple.getInfo

// here is where it makes a difference
console.log(getInfo())
// how to fix
console.log(getInfo.call(apple))

Для получения дополнительной информации об этом поведении, см. Как работает «это»? работа с ключевыми словами?

8
задан Svish 27 February 2009 в 15:14
поделиться

3 ответа

вздохните решение, раздражающе простое... Почему я, возможно, не просто попробовал это во-первых? О, хорошо..., возможно, потому что я не понял, что у меня был доступ к TimeSpan класс..., возможно, потому что я думал сам слепой... Но так или иначе, здесь это:

=TimeSpan.FromTicks(Sum(Fields!TheTime.Value))

D'oh!

14
ответ дан 5 December 2019 в 11:27
поделиться

@Svish - Я удалил свое предыдущее сообщение, потому что у меня была пригодная неуверенность по поводу моего ответа, но я соглашаюсь с @pfunk.

Я наконец вернул SSRS и имел игру вокруг, и, конечно, похоже, что Ваше большое количество является количеством галочек, таким образом, похоже, что немного форматирования результата будет работать на Вас.

Интересно достаточно моего предыдущего замысловатого ответа было обходным решением для подведения итогов значений DateTime (использующий Тип данных datetime SQL Server в моем запросе), который Вы не можете сделать в SSRS (и SQL), потому что Вы наклоняетесь, суммируют ДАТУ И ВРЕМЯ. Я буду включать его здесь снова для дальнейшего использования, но я думаю, был на чем-то вроде касательной ранее :)

Ниже кода преобразовывает поле DateTime в двойное, суммирует результат и затем преобразовывает его назад в DateTime и форматирует его для hh:mm:ss

=Date.FromOADate(Sum(Fields!TheTime.Value.ToOADate())).ToString("hh:mm:ss")
1
ответ дан 5 December 2019 в 11:27
поделиться

То, что, вероятно, происходит, является этим, когда Вы отображаете Поля! TheTime. Значение, SSRS достаточно умен для знания для отображения этого как поля типа DateTime

когда Вы добавляете сумму там, она думает, что это - числовое поле типа и отображает его как таковой (т.е., она суммирует количество "галочек" в каждом поле промежутка),

попытка, конкретно форматирующая суммированное значение как дата и время в свойствах полей и это, вероятно, покажет правильно

0
ответ дан 5 December 2019 в 11:27
поделиться
Другие вопросы по тегам:

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