[SOLVED] Динамическое объединение ячеек.

Обсуждение Stimulsoft Ultimate
Ответить
Dmitry Utkin
Сообщения: 2
Зарегистрирован: 15 окт 2013, 17:13

[SOLVED] Динамическое объединение ячеек.

Сообщение Dmitry Utkin »

Здравствуйте,

Подскажите пожалуйста по динамическому объединению ячеек. Видел тему с аналогичным вопросом, но к сожалению, предложенное в ней решение не помогло (линк).

Нужно сформировать таблицу (Table или DataBand - не принципиально), в которой ячейки в строках объединяются в зависимости от параметра isMerge исходных данных.
Данные имеют следующий вид:

Код: Выделить всё

<root>
	<data>
		<text>Text1</text>
		<isMerge>1</isMerge>
	</data>
	<data>
		<text>Text2</text>
		<isMerge>0</isMerge>
	</data>
	<data>
		<text>Text3</text>
		<isMerge>1</isMerge>
	</data>
</root>
Подскажите как на основе них получить таблицу вида:
Изображение

Использую версию StimulsoftReports.Ultimate_2012.2

Заранее спасибо.
Последний раз редактировалось Dmitry Utkin 18 окт 2013, 11:02, всего редактировалось 1 раз.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Динамическое объединение ячеек.

Сообщение HighAley »

Здравствуйте.

К сожалению, во время рендеринга отчёта объединить ячейки не представляется возможным. Таблица это достаточно сложный компонент, который преобразуется в более простые.
Можем посоветовать использовать простой бэнд с текстовыми компонентами.

Спасибо.
Dmitry Utkin
Сообщения: 2
Зарегистрирован: 15 окт 2013, 17:13

Re: [SOLVED] Динамическое объединение ячеек.

Сообщение Dmitry Utkin »

Aleksey Andreyanov, спасибо за ответ.

Как писал ранее, в решении Table или DataBand - не принципиально.
Решить проблему получилось при помощи DataBand.

Может кто-то столкнулся с подобной проблемой и мое решение поможет. Aleksey Andreyanov, поправьте меня пожалуйста если где-то ошибся или можно сделать проще.

На DataBand нужно положить контролы, для отображения разделенных и объединенных значений.
Изображение
Текст в ячейках будет отображаться в зависимости от признака isMegre.
Для разделенных ячеек:

Код: Выделить всё

{IIF(data.isMerge == "1", data.displayText, string.Empty)}
{IIF(data.isMerge == "1", "some_static_text", string.Empty)}
Для объединенной ячейки:

Код: Выделить всё

{IIF(data.isMerge != "1", data.displayText, string.Empty)}
Для панели на которой лежат разделенные ячейки нужно указать:
CanGrow: true
CanShrink: true

Для ячеек на панели:
CanGrow: true
CanShrink: true
GrowToHeight: True
ShiftMode: Increasing Size, Decreasing Size

Для ячейки эммулирующей объединение:
CanGrow: true
CanShrink: true
ShiftMode: Increasing Size, Decreasing Size

Таким образом ячейки, в которых нет текста будут сжиматься и их не будет видно в результате.
Вложения
sample.zip
В архиве пример, на котором можно посмотреть как работает описанный выше алгоритм.
(3.35 КБ) 372 скачивания
Aleksey
Сообщения: 2792
Зарегистрирован: 22 апр 2010, 06:57

Re: [SOLVED] Динамическое объединение ячеек.

Сообщение Aleksey »

Здравствуйте,

Спасибо за подробное описание решения данной задачи.
Ответить