Страница 1 из 1

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

Добавлено: 28 мар 2011, 19:44
4it
Здравствуйте, в свое время вы мне уже подробно объясняли как это работает, но теперь мне нужен экспорт в pdf...

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

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

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

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

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

Прошу прощения за спутанное объяснения, надеюсь понятно изложил.

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

Добавлено: 29 мар 2011, 06:44
Aleksey
Здравствуйте,

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

Спасибо.

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

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

Нужен компромисс - корректное сжатие ячейки при обработке дубликато как во 2-м случае, и правильное объединение в рамках одного доктора как в первом.

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

Добавлено: 01 апр 2011, 10:07
Aleksey
Здравствуйте,

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

Спасибо.

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

Добавлено: 05 апр 2011, 06:24
4it
Aleksey писал(а):Здравствуйте,

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

Спасибо.
Алексей, насколько я помню из ваших предыдущих ответов, обработка дубликатов в зависимости от значения и свойства тэг происходит до построения отчета. Нужно лишь как-либо ограничить обработку дубликатов в пределах одного значения мастербэнда.

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

Добавлено: 05 апр 2011, 12:40
Ivan
Здравствуйте.

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

Спасибо.

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

Добавлено: 11 апр 2011, 12:17
4it
Здравствуйте, не могли бы вы пояснить что вы изменили?

Не могу добиться того же результата.

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

Добавлено: 12 апр 2011, 12:17
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

Спасибо.