Как создать итоговую строку для сгруппированных столбцов

Если у вас есть rdlc-отчет со сгруппированными столбцами в табликсе (таблице). Я хочу добавить строку нижнего колонтитула, которая охватывает все динамически созданные столбцы и показывает общую сумму для всех столбцов вместе. Как я могу сообщить ячейке, что она должна охватывать все созданные столбцы, созданные группой?

|-------|-------|-------|
| col 1 | col 2 | col 3 |
|-------|-------|-------|
|   Column-Group Total  |
|-----------------------|

Обратите внимание, что вычисление итоговой суммы не является моей задачей. Я всего лишь ищу способ заставить средство просмотра отчетов объединить ячейки, созданные автоматически через группу столбцов для определенной строки.

Обновление
К сожалению, до сих пор я не нашел решения этой проблемы. Более того, с тем же вопросом я также столкнулся в отчете, где мне нужно было добавить итоги группы строк в объединенный столбец.

|------|-------|
|row 1 |       |
|------| Row-  |
|row 2 | Group |
|------| Total |
|row 3 |       |
|------|-------|

Я считаю, что это довольно распространенный способ отображения итогов. Это невозможно в любом случае или я упускаю что-то очевидное?

Update2
Вот скриншот того, что я имею в виду:

Всего охвата категории

Посередине находится группа. Это создает во время выполнения n столбцов. Что я хочу сделать, так это «общую сумму охвата категории», чтобы охватить все динамически созданные столбцы. Это означает, что ширина столбца ячейки равна n. Есть только одна ячейка и в этой ячейке я покажу сумму всех категорий. Это почти то же самое, что средство просмотра отчетов создает автоматически вверху группы.


person HCL    schedule 19.04.2012    source источник
comment
Динамические столбцы, это своего рода сводка (например, заголовок столбца финансового года и стоимость данных в долларах, потраченных в этом финансовом году)?   -  person Pulsehead    schedule 24.04.2012
comment
@Pulsehead: Да, как вы упомянули, есть отчеты с поворотными годами. Например. col1 = 2005, col2 = 2006, col3 = 2007, а сумма группы столбцов должна показывать сумму col1-col3. В других отчетах есть другие сгруппированные столбцы, такие как расположение офисов, названия месяцев и т. д. Количество столбцов не является фиксированным, оно зависит от данных, которые необходимо визуализировать.   -  person HCL    schedule 24.04.2012


Ответы (3)


Не знаю, нашли ли вы ответ на этот вопрос, но если нет...

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

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

Я использовал несколько областей данных внутри прямоугольников и списков для управления всеми видами макетов. Вам просто нужно поиграть с областями и, возможно, настроить выходные данные (суммы/средние значения по группам в хранимой процедуре), если эти области просто не взаимодействуют. Дайте мне знать, если это решит вашу проблему.

person horinemj    schedule 12.06.2012
comment
Попробуйте добавить скриншот сейчас, у вас должно получиться. - person saluce; 13.06.2012

Насколько я знаю, rdlc — это файлы отчетов, которые вы редактируете в мастере отчетов или Visual Studio, в отличие от rdl, которые представляют собой файлы отчетов, разрабатываемые в BIDS.

Я не знаю, будет ли это работать с файлами rdlc, потому что я использую только BIDS, но я думаю, что стоит попробовать:

  1. на вкладке групп строк (внизу слева) щелкните правой кнопкой мыши свою группу и выберите добавить итог -> после этого будет добавлена ​​итоговая строка.
  2. временно скопируйте ячейку суммы (итого) в другое место в отчете (потому что на следующем шаге она будет удалена, если вы этого не сделаете)
  3. используя SHIFT, выберите ячейку за ячейкой в ​​строке, которую вы хотите объединить (не выбирайте саму строку)
  4. щелкните правой кнопкой мыши и выберите объединить ячейки
  5. вставьте ячейку суммы, которую вы скопировали на шаге 2

Результат (надеюсь вы видите):

введите здесь описание изображения

РЕДАКТИРОВАТЬ:

отвечая на ваш вопрос, да, я уверен, что это можно сделать, потому что я делал это несколько раз, а также вы видели на экране печати. Я вставляю XML для своей строки, думаю, секрет в теге <ColSpan>8</ColSpan>. У меня есть 8 столбцов в моем отчете.

<TablixRow>
<Height>0.25in</Height>
<TablixCells>
  <TablixCell>
    <CellContents>
      <Textbox Name="textbox18">
        <CanGrow>true</CanGrow>
        <KeepTogether>true</KeepTogether>
        <Paragraphs>
          <Paragraph>
            <TextRuns>
              <TextRun>
                <Value>=Sum(Fields!myField.Value)</Value>
                <Style>
                  <FontFamily>Tahoma</FontFamily>
                  <FontSize>9pt</FontSize>
                  <Format>'$'#,0.00;('$'#,0.00)</Format>
                </Style>
              </TextRun>
            </TextRuns>
            <Style>
              <TextAlign>Right</TextAlign>
            </Style>
          </Paragraph>
        </Paragraphs>
        <rd:DefaultName>textbox16</rd:DefaultName>
        <Style>
          <Border>
            <Color>LightGrey</Color>
            <Style>Solid</Style>
          </Border>
          <BackgroundColor>White</BackgroundColor>
          <PaddingLeft>2pt</PaddingLeft>
          <PaddingRight>2pt</PaddingRight>
          <PaddingTop>2pt</PaddingTop>
          <PaddingBottom>2pt</PaddingBottom>
        </Style>
      </Textbox>
      <ColSpan>8</ColSpan>
      <rd:Selected>true</rd:Selected>
    </CellContents>
  </TablixCell>
  <TablixCell />
  <TablixCell />
  <TablixCell />
  <TablixCell />
  <TablixCell />
  <TablixCell />
  <TablixCell />
</TablixCells>
</TablixRow>
person Diego    schedule 26.04.2012
comment
Спасибо за Ваш ответ. Я пытался, но визуальная студия не позволяет мне объединить ячейки (шаг 3+4). Как только я выбираю ячейку, которая является частью группы, команда слияния редактора отключается. Вы уверены, что это возможно с помощью BIDS? Если да, то может быть возможность определить слияние в xml, потому что, насколько я знаю, движок рендеринга тот же. В этом случае это будет только ограничение редактора. Можете ли вы с уверенностью сказать, что BIDS позволяет объединять сгруппированные ячейки? Это было бы большим подспорьем для дальнейших поисков... - person HCL; 26.04.2012
comment
а что хочешь? сумма col1 + col2 + col3 по всем строкам? это было бы просто вопросом изменения вашего выражения с =Sum(Fields!col1.Value) на =Sum(col1+col2+col3) - person Diego; 26.04.2012
comment
Диего: Если я правильно понял ваше решение, это не то, что мне нужно. Вы добавляете строки, это означает, что вы пытаетесь решить проблему второй фигуры, которую я нарисовал. Как вы видите, есть динамически созданные строки (через группу), а затем в конце строки есть одна единственная ячейка, которая охватывает все строки группы для отображения суммы. Если вы добавите группу строк в табликс, средство просмотра отчетов создаст такую ​​объединенную ячейку в начале группы. Я хочу иметь такую ​​объединенную ячейку в конце. Может быть, у вас есть дополнительные идеи о том, как решить эту проблему? Я добавил картинку. - person HCL; 26.04.2012
comment
Нет, это не вопрос расчета, это работает нормально. Речь идет о том, как объединить динамически созданные ячейки группы. Я добавил картинку к своему вопросу. Возможно, это немного поможет прояснить проблему (извините, я не являюсь носителем английского языка, поэтому мой пост может быть трудно интерпретировать). - person HCL; 26.04.2012
comment
Хм, кажется, я понял. Как вы создаете динамические столбцы? ПС: откуда ты? - person Diego; 26.04.2012
comment
Привет ХКЛ. Вы не сказали, как вы генерируете динамические столбцы. Мне нужна эта информация, чтобы попытаться помочь вам в дальнейшем - person Diego; 01.05.2012
comment
Здравствуйте, посмотрите на изображение, которое я добавил в свой пост. В центре находится группа столбцов (столбец с оранжевой полосой над ним). Я назвал заголовок как Категория. Во время выполнения эта группа создает n столбцов на основе предоставленных данных. Цель состоит в том, чтобы общая ячейка, охватывающая категорию, была объединенной ячейкой (только одна ячейка), тогда как ячейка категории и ячейка значения не будут объединены и, следовательно, будут умножены n раз (n - количество категорий содержится в данных). - person HCL; 01.05.2012
comment
В дополнение к моему предыдущему комментарию: если вы посмотрите на рисунок один, там 3 категории. Это означает, что n = 3. - person HCL; 01.05.2012
comment
Я имею в виду, как значение категории создает n динамических столбцов? - person Diego; 01.05.2012
comment
В дизайнере добавляю столбец-группу. Затем я открываю свойства группы столбцов и указываю поле, которое используется в качестве поля группировки. Затем во время выполнения механизм создания отчетов создает для каждого отдельного значения в этом поле новый столбец. Если вопрос об источнике данных, я использую CLR-объекты, которые объявлены как источники данных. Но это делает для группировки никакой разницы с простыми наборами данных. - person HCL; 01.05.2012

Поскольку похоже, что у вас есть динамическая группа столбцов, вы, вероятно, поместите в столбцы:

Поля!ColHeading.Value |Всего
Поля!DataValue.Value | =СУММ(Поля!ЗначениеДанных.Значение)

Если вы предпочитаете графический интерфейс, щелкните правой кнопкой мыши поле итогового значения и выберите «Выражение». Во всплывающем окне разверните «Общие функции» и нажмите «Агрегировать», а в окне «Элемент» дважды щелкните «Сумма». Введите или щелкните поле данных, и вы получите что-то вроде этого: Заполненное окно выражения.

Нажмите «ОК», и все готово!

person Pulsehead    schedule 25.04.2012
comment
Спасибо за ваш ответ, но он не отвечает на мой вопрос - я должен знать, как я могу сказать механизму отчетов объединить динамически созданные ячейки для итоговой строки, чтобы итоговая ячейка охватывала все автоматически созданные столбцы. Что-то вроде ColSpan в HTML для итоговой строки. - person HCL; 25.04.2012