Группировка в DataBand с объединением ячеек

Обсуждение Stimulsoft Reports.NET
eLVik
Сообщения: 54
Зарегистрирован: 26 окт 2010, 07:45
Откуда: Сыктывкар, Республика Коми

Группировка в DataBand с объединением ячеек

Сообщение eLVik »

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

Предположим, есть запрос, возвращающий выборку

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

Name1|Name2|Value
A    |A1   |10
A    |A2   |20
A    |A3   |30
B    |B1   |1
B    |B2   |2
B    |B3   |3
Необходимо вывести таблицу из трех колонок, в которой к Name1 применить объединение ячеек, а к Value агрегирующую операцию (например SUM)

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

Name1|Name2|Value
     |A1   |
A    |A2   |60
     |A3   |
==================
     |B1   |
B    |B2   |6
     |B3   |
==================
Как этого добиться? Спасибо.
Aleksey
Сообщения: 2784
Зарегистрирован: 22 апр 2010, 06:57

Группировка в DataBand с объединением ячеек

Сообщение Aleksey »

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

Для реализации данной задачи вы можете использовать скрипты и переменную.
Посмотрите пример отчета в приложении.

Спасибо.
Вложения
SampleReport.mrt
(17.66 КБ) 555 скачиваний
eLVik
Сообщения: 54
Зарегистрирован: 26 окт 2010, 07:45
Откуда: Сыктывкар, Республика Коми

Группировка в DataBand с объединением ячеек

Сообщение eLVik »

Aleksey писал(а):Здравствуйте,

Для реализации данной задачи вы можете использовать скрипты и переменную.
Посмотрите пример отчета в приложении.

Спасибо.
Где можно скачать XML-данные для Вашего отчета?
Aleksey
Сообщения: 2784
Зарегистрирован: 22 апр 2010, 06:57

Группировка в DataBand с объединением ячеек

Сообщение Aleksey »

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

Данные для данного отчета устанавливаются вместе с установкой Stimulsoft Reports.

Спасибо.
Вложения
Demo.zip
(280.92 КБ) 262 скачивания
Nickola
Сообщения: 14
Зарегистрирован: 15 окт 2010, 08:31
Откуда: SPb

Группировка в DataBand с объединением ячеек

Сообщение Nickola »

Спасибо, я тоже посмотрел этот пример.

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

Суть в том, что мне пришлось (для экономии пространства в отчете), таблицу сделать таким образом, что одна строка данных размещалась бы на двух строках таблицы. А точнее 6 полей с текстом, сгруппированных вертикально попарно, и общий для обоих строк № пункта:
В первой колонке я объединил вертикально две ячейки, и вставил в объединенную ячейку поле датасета, в котором выводится № пункта.
Вот примерно так должно бло получиться:

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

----------------------------------------
|       | TEXT1.1  | TEXT2.1 | TEXT3.1 | 
| №п    |-------------------------------
|       | TEXT1.2  | TEXT2.2 | TEXT3.2 | 
----------------------------------------
|       | TEXT1.1  | TEXT2.1 | TEXT3.1 | 
| №п    |-------------------------------
|       | TEXT1.2  | TEXT2.2 | TEXT3.2 | 
----------------------------------------
|       | TEXT1.1  | TEXT2.1 | TEXT3.1 | 
| №п    |-------------------------------
|       | TEXT1.2  | TEXT2.2 | TEXT3.2 | 
----------------------------------------

В полях TEXT может содержаться многострочный текст, совершенно разной длины и кол-ва слов.Причем как в пределах одной строки данных, так и в разных строках. Всем ячейкам я задал перенос текста и расширение. Качество текста - Wysywg. Запускаю предварительный просмотр. И вижу вот такую картину:

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

---------
|       | 
|       |-------------------------------
| №п    | TEXT1.1  | TEXT2.1 | TEXT3.1 | 
|       |-------------------------------
|       | TEXT1.2  | TEXT2.2 | TEXT3.2 | 
----------------------------------------
|       | 
|       |-------------------------------
| №п    | TEXT1.1  | TEXT2.1 | TEXT3.1 | 
|       |-------------------------------
|       | TEXT1.2  | TEXT2.2 | TEXT3.2 | 
----------------------------------------
|       | 
| №п    |-------------------------------
|       | TEXT1.1  | TEXT2.1 | TEXT3.1 | 
|-------|-------------------------------
        | TEXT1.2  | TEXT2.2 | TEXT3.2 | 
        --------------------------------
И такой разрыв во всех строках, кроме последней. В последней строке вообще ужас какой то получается, именно так как указано на моей попытке изобразить результат.

Я что то не так опять сделал? :(
Aleksey
Сообщения: 2784
Зарегистрирован: 22 апр 2010, 06:57

Группировка в DataBand с объединением ячеек

Сообщение Aleksey »

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

Пожалуйста пришлите ваш .mrt файл с данными для анализа на support@stimulsoft.com

Спасибо.
Nickola
Сообщения: 14
Зарегистрирован: 15 окт 2010, 08:31
Откуда: SPb

Группировка в DataBand с объединением ячеек

Сообщение Nickola »

Aleksey писал(а):Здравствуйте,

Пожалуйста пришлите ваш .mrt файл с данными для анализа на support@stimulsoft.com

Спасибо.
Добрый день - пример отчета отправил. Конечно не тот, что я делал изначально, а аналогичный, сделанный специально для отправки Вам. В качества базы данных для этого примера использовал MS Access, а то оригинал отчета был к MS SQL Server подцеплен, и в качестве источника использовалась хранимая процедура с параметрами.

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

Кстати, также, в процессе создания примера натолкнулся еще на одну недоработку. Вы ее сами прочувствуете, когда будете в моем примере базу данных пересоединять к отчету. Я в тестовой базе данных назвал таблицу "Table", без всякой задней мысли, просто первое, что в голову пришло. Когда стал подключать источник к отчету, и выбрал объект БД - таблицу по имени Table, то мне Ваш генератор запросов сформировал такое выражение "SELECT * FROM Table" - и на нем же сам и умер при попытке выполнения. Вывалил ошибку синтаксиса в запросе! Я сначала не понял, был немного в шоке, а потом увидел голубую подсветку имени таблицы в запросе и понял, что Table - это системное имя для SQL, и поэтому он на него и ругается. Сделав ручные изменения в запросе вот так "SELECT * FROM [Table]" я добился желаемого - запрос выполнился. Может Вам стоит все имена объектов для SQL запросов заранее заключать в квадратные скобки, чтоб таких неувязок не было в принципе?
Aleksey
Сообщения: 2784
Зарегистрирован: 22 апр 2010, 06:57

Группировка в DataBand с объединением ячеек

Сообщение Aleksey »

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

Ок. Спасибо.
eLVik
Сообщения: 54
Зарегистрирован: 26 окт 2010, 07:45
Откуда: Сыктывкар, Республика Коми

Группировка в DataBand с объединением ячеек

Сообщение eLVik »

К сожалению, не всегда получается то что нужно.
Если у двух соседних групп значения {SumMerge} совпадают, то получится одна общая ячейка на эти группы за счет объединения повторов.
Aleksey
Сообщения: 2784
Зарегистрирован: 22 апр 2010, 06:57

Группировка в DataBand с объединением ячеек

Сообщение Aleksey »

Здравствуйте,
eLVik писал(а):К сожалению, не всегда получается то что нужно.
Если у двух соседних групп значения {SumMerge} совпадают, то получится одна общая ячейка на эти группы за счет объединения повторов.
Пожалуйста пришлите ваш .mrt файл с данными для анализа на support@stimulsoft.com

Спасибо.
Ответить