Можно ли? master-detail в одном бэнде?

отредактировано 02:19 Раздел: FastReport 3.0
Здравствуйте, уважаемые, вот такой вопрос всплыл в недрах тёмного разума заказчика.

Есть классический мастер-деталь, ну, предположим, master -
номер документа, дата
detail -
исполнитель1, срок, отметка о выполнении;
исполнитель2, срок, отметка о выполнении;
исполнительN, срок, отметка о выполнении;

казалось-бы, распечатать такое запросто - стандартный m-d отчёт, но заказчик не ищет лёгких путей а мнение девелопера по этому поводу его мало волнует, и задача формулируется так: напечатеть отчёт так, чтобы выглядело это как если такой же отчёт представить себе выполненным в Excel, то есть сделать строки:

номер, дата, исполнитель1
номер, дата, исполнитель2
номер, дата, исполнитель...
номер, дата, исполнительN

а потом колонки "номер", "дата" объединить по вертикали.

Получится как-бы мастер-детэйл но "в одну строку (переменной высоты по вертикали)".

Я представляю себе два решения, и надеюсь, что вы меня укрепите в одном из них или подскажете лучшее:

1. datasource возвращает записи с полями "номер", "дата", "исполнительN" сортированные в нужном порядке. в отчёте делаем группировку по master-полям и используем опцию "скрывать повторяющиеся значения" на нужных колонках. Вертикальное выравнивание "по центру" для значений в этих колонках возможно?

2. subreport (очень не хочется).

Надеюсь на вашу помощь. Заранее спасибо.

Комментарии

  • gpigpi
    отредактировано 02:19
    написал:
    Вертикальное выравнивание "по центру" для значений в этих колонках возможно?
    К сожалению, нет.
    А чем тебя subreport не устраивает? На мастер бэнде расположи мемо с полями "номер", "дата". Бэнд растягиваемый, мемо - растягиваемые до максимальной высоты. Правее мемо располагаешь на мастер бэнде subreport с опцией печати на бэнде
  • отредактировано 02:19
    спасибо.

    сделал с сабрепортом. работает нормально.

    только ещё вопрос появился - в мастер-детэйле можно у мастера сказать что-то типа "не печатать если детэйл пуст".

    а тут можно как-то в этом духе извернуться? то есть не печатать мастер-бэнд если сабрепорт как-бы пуст?

  • gpigpi
    отредактировано 02:19
    Есть предположение (реально не пробовал)
    Добавь Detail-бэнд с высотой 0 и установи у мастера "не печатать если детэйл пуст"

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.