Страница 1 из 2
Группировка в DataBand с объединением ячеек
Добавлено: 27 окт 2010, 11:43
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 |
==================
Как этого добиться? Спасибо.
Группировка в DataBand с объединением ячеек
Добавлено: 27 окт 2010, 12:33
Aleksey
Здравствуйте,
Для реализации данной задачи вы можете использовать скрипты и переменную.
Посмотрите пример отчета в приложении.
Спасибо.
Группировка в DataBand с объединением ячеек
Добавлено: 27 окт 2010, 13:01
eLVik
Aleksey писал(а):Здравствуйте,
Для реализации данной задачи вы можете использовать скрипты и переменную.
Посмотрите пример отчета в приложении.
Спасибо.
Где можно скачать XML-данные для Вашего отчета?
Группировка в DataBand с объединением ячеек
Добавлено: 27 окт 2010, 13:13
Aleksey
Здравствуйте,
Данные для данного отчета устанавливаются вместе с установкой Stimulsoft Reports.
Спасибо.
Группировка в DataBand с объединением ячеек
Добавлено: 27 окт 2010, 13:25
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 |
--------------------------------
И такой разрыв во всех строках, кроме последней. В последней строке вообще ужас какой то получается, именно так как указано на моей попытке изобразить результат.
Я что то не так опять сделал?
Группировка в DataBand с объединением ячеек
Добавлено: 28 окт 2010, 03:18
Aleksey
Здравствуйте,
Пожалуйста пришлите ваш .mrt файл с данными для анализа на
support@stimulsoft.com
Спасибо.
Группировка в DataBand с объединением ячеек
Добавлено: 28 окт 2010, 10:44
Nickola
Aleksey писал(а):Здравствуйте,
Пожалуйста пришлите ваш .mrt файл с данными для анализа на
support@stimulsoft.com
Спасибо.
Добрый день - пример отчета отправил. Конечно не тот, что я делал изначально, а аналогичный, сделанный специально для отправки Вам. В качества базы данных для этого примера использовал MS Access, а то оригинал отчета был к MS SQL Server подцеплен, и в качестве источника использовалась хранимая процедура с параметрами.
Вам к сведению: В процессе пределки отчета провел дополнительную аналитику, и понял, что на подобное поведение таблицы оказывает влияние, во-первых - многострочный заголовок таблицы, а именно он виноват в появлении разрывов над строками. И, во-вторых, влияет установленное свойство "Может разрываться - ДА" на самой таблице - оно дает бардак в первом столбце, где объединены ячейки.
Кстати, также, в процессе создания примера натолкнулся еще на одну недоработку. Вы ее сами прочувствуете, когда будете в моем примере базу данных пересоединять к отчету. Я в тестовой базе данных назвал таблицу "Table", без всякой задней мысли, просто первое, что в голову пришло. Когда стал подключать источник к отчету, и выбрал объект БД - таблицу по имени Table, то мне Ваш генератор запросов сформировал такое выражение "SELECT * FROM Table" - и на нем же сам и умер при попытке выполнения. Вывалил ошибку синтаксиса в запросе! Я сначала не понял, был немного в шоке, а потом увидел голубую подсветку имени таблицы в запросе и понял, что Table - это системное имя для SQL, и поэтому он на него и ругается. Сделав ручные изменения в запросе вот так "SELECT * FROM [Table]" я добился желаемого - запрос выполнился. Может Вам стоит все имена объектов для SQL запросов заранее заключать в квадратные скобки, чтоб таких неувязок не было в принципе?
Группировка в DataBand с объединением ячеек
Добавлено: 28 окт 2010, 11:28
Aleksey
Здравствуйте,
Ок. Спасибо.
Группировка в DataBand с объединением ячеек
Добавлено: 24 дек 2010, 11:26
eLVik
К сожалению, не всегда получается то что нужно.
Если у двух соседних групп значения {SumMerge} совпадают, то получится одна общая ячейка на эти группы за счет объединения повторов.
Группировка в DataBand с объединением ячеек
Добавлено: 27 дек 2010, 06:49
Aleksey
Здравствуйте,
eLVik писал(а):К сожалению, не всегда получается то что нужно.
Если у двух соседних групп значения {SumMerge} совпадают, то получится одна общая ячейка на эти группы за счет объединения повторов.
Пожалуйста пришлите ваш .mrt файл с данными для анализа на
support@stimulsoft.com
Спасибо.