Обработка дубликатов

Обсуждение Stimulsoft Reports.NET
Ответить
4it
Сообщения: 78
Зарегистрирован: 29 июн 2010, 04:46
Откуда: Moscow

Обработка дубликатов

Сообщение 4it »

Здравствуйте, в свое время вы мне уже подробно объясняли как это работает, но теперь мне нужен экспорт в pdf...

Проблема в следующем. Есть таблицы, много таблиц, (структуру таблиц можно видеть во вложении). Есть MasterBand допустим с именами (Коля, Паша, Ваня и т.д.). Сам по себе бэнд пустой, необходим лишь для правильной группировки данных. Затем идут бэнды группировок, они представляют собой по сути заголовки таблиц которые выгружаются из бд.

Чуть ниже идет DataBand, для которого мастер-бэндом является Masterband (Допустим в нем будут выводиться конфеты, которые любят парни). В этом бэнде необходимо организовать обработку дубликатов.

1) При обработке в зависимости от свойства тэг - все группирует верно, однако есть лишнее место в ячейке от оставшихся обработанных дубликатов.
2) При обработке в зависимости от значения и свойства тэг - в рамках одного значения мастер бэнда данные группируются верно (нет пустого места внизу ячеек), однако, если, допустим, "Коля любит карамель, карамель, шоколадки", а Паша "Шоколадки", то у Паши в таблице шоколадки не выгрузятся.

Т.е. обработка дубликатов происходит независимо от значений мастербэнда.

Как избавиться от этой проблемы?

Прошу прощения за спутанное объяснения, надеюсь понятно изложил.
Вложения
Скриншот.JPG
Скриншот.JPG (84.13 КБ) 3675 просмотров
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Обработка дубликатов

Сообщение Aleksey »

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

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

Спасибо.
4it
Сообщения: 78
Зарегистрирован: 29 июн 2010, 04:46
Откуда: Moscow

Обработка дубликатов

Сообщение 4it »

Во вложении пример. Столбец с диагнозом обрабатывается : в зависимости от свойства тэг. - лишнее место в ячейке от оставшихся обработанных дубликатов
Столбец пациент - в зависимости от значения и свойства тэг. - пустое место в случае если пациент приходил к разным докторам и в списке это происходит "подряд". Объединяется внезависимости от доктора.

Нужен компромисс - корректное сжатие ячейки при обработке дубликато как во 2-м случае, и правильное объединение в рамках одного доктора как в первом.
Вложения
Обработка дубликатов.mrt
(22.6 КБ) 220 скачиваний
med-01.accdb
(784 КБ) 611 скачиваний
обработка.JPG
обработка.JPG (54.69 КБ) 3661 просмотр
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Обработка дубликатов

Сообщение Aleksey »

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

К сожалению, это невозможно сделать, так как обработка дубликатов производится после построения отчетов. Поэтому сжать ячейки уже не получится.

Спасибо.
4it
Сообщения: 78
Зарегистрирован: 29 июн 2010, 04:46
Откуда: Moscow

Обработка дубликатов

Сообщение 4it »

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

К сожалению, это невозможно сделать, так как обработка дубликатов производится после построения отчетов. Поэтому сжать ячейки уже не получится.

Спасибо.
Алексей, насколько я помню из ваших предыдущих ответов, обработка дубликатов в зависимости от значения и свойства тэг происходит до построения отчета. Нужно лишь как-либо ограничить обработку дубликатов в пределах одного значения мастербэнда.
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Обработка дубликатов

Сообщение Ivan »

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

Посмотрите пожалуйста пример отчета во вложении.
Из-за некоторых особенностей движка (и непознанных особенностей Net Framework при сортировке списков) не удалось реализовать нужное поведение с помощью таблиц, поэтому вместо таблицы используется простой датабэнд.

Спасибо.
Вложения
Отчет1.zip
(3.49 КБ) 238 скачиваний
4it
Сообщения: 78
Зарегистрирован: 29 июн 2010, 04:46
Откуда: Moscow

Обработка дубликатов

Сообщение 4it »

Здравствуйте, не могли бы вы пояснить что вы изменили?

Не могу добиться того же результата.
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Обработка дубликатов

Сообщение Ivan »

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

В отчете были произведены следующие изменения:
- таблица заменена на датабэнд
- в событие BeforePrint бэнда GroupHeaderBand3 добавлен код Engine.ResetProcessingDuplicates("Text4");
- Text1: CanShrink=true, GrowToHeight=true, Duplicates: Merge,
- Text2: CanShrink=true, GrowToHeight=true, Duplicates: Merge based on Value and Tag, Tag={ИсточникДанных1.Patient_Doktor.doctorName}
- Text3: CanShrink=true, GrowToHeight=true, Duplicates: Merge based on Value and Tag, Tag={ИсточникДанных1.Patient_Doktor.doctorName}{ИсточникДанных1.patientName}
- Text4: CanShrink=true, GrowToHeight=true, Duplicates: Merge based on Value and Tag, Tag={ИсточникДанных1.Patient_Doktor.doctorName}{ИсточникДанных1.visitComment}
- DataBand2: CanShrink=true, MinHeight=0.01

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