SSRS: основной детализированный отчет с двумя источниками данных

Вы можете взять Map и массив пар ключ / значение с Array.from .

Кстати, вам нужно переименовать глобальный status во что-то другое, потому что window.status - это строка, зарезервированная для сообщений о состоянии пользовательского агента.

var array = [{ status: 1, id: 10 }, { status: 2, id: 11 }, { status: 1, id: 12 }],
    result = Array.from(array.reduce(
        (m, { status }) => m.set(status, (m.get(status) || 0) + 1),
        new Map
    ));

console.log(result);

8
задан Svish 28 April 2009 в 12:22
поделиться

4 ответа

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

Это означает, что вам нужно выполнить одно из двух:

  1. Рефакторинг ваших двух источников данных в единый источник данных. Например, выполните соединение между сотрудниками и рабочим временем каждого сотрудника. Затем вы можете использовать свойства группировки объекта Table для форматирования списка так, как вы этого хотите.

  2. Если объединение двух источников данных нецелесообразно, вы можете использовать подотчеты, чтобы выполнить то, что вы хотите. Создайте подотчет, содержащий источник данных о рабочем времени, и задайте ему параметр для текущего сотрудника. Отфильтруйте рабочее время по этому параметру.

    В своем родительском отчете вы можете поместить вложенный отчет в список и передать идентификатор сотрудника для текущей строки в качестве параметра.

    Обратите внимание, что есть несколько причуд форматирования, связанных с использованием подотчетов. В большинстве случаев мне удавалось обходить их, но предпочтительным методом, безусловно, был бы номер один выше.

5
ответ дан 5 December 2019 в 15:26
поделиться

Чтобы настроить несколько источников данных ... вам нужно поместить два отдельных объекта списка в отчет. Перейдите к конструктору, и в наборе инструментов вы можете добавить в него новый «список». Затем вы можете сделать еще один отчет. Свяжите этот второй список со своим вторичным набором данных, который вы реализуете через вторичный источник данных.

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

1
ответ дан 5 December 2019 в 15:26
поделиться

Добавление нового ответа, чтобы убедиться, что для него отправлено уведомление.

Использование подотчета - самый простой метод, когда он работает. Вы можете просто перетащить вложенный отчет в ячейку таблицы, и он заполнит область содержимого этой ячейки. Щелчок правой кнопкой мыши по вложенному отчету позволит вам редактировать параметры вложенного отчета. Как и большинство значений в SSRS, для параметров можно задать выражения, использующие поля в таблице.

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

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

employee1 time1.1
employee1 time1.2
employee1 time1.3
employee1 time1.4
employee2 time2.1
employee2 time2.2
employee2 time2.3

Затем вы можете создать группу для повторяющихся столбцов (сотрудник в этом примере) и включить свойство HideDuplicates для этих столбцов. Результат будет выглядеть следующим образом:

employee1 time1.1
          time1.2
          time1.3
          time1.4
employee2 time2.1
          time2.2
          time2.3
5
ответ дан 5 December 2019 в 15:26
поделиться

В классе документа отчета есть свойство под названием «База данных», которое содержит набор таблиц. Вы можете использовать SetDataSource для каждой из этих таблиц, чтобы поместить отдельные списки объектов в отчет.

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

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