Можно ли? master-detail в одном бэнде?
Здравствуйте, уважаемые, вот такой вопрос всплыл в недрах тёмного разума заказчика.
Есть классический мастер-деталь, ну, предположим, master -
номер документа, дата
detail -
исполнитель1, срок, отметка о выполнении;
исполнитель2, срок, отметка о выполнении;
исполнительN, срок, отметка о выполнении;
казалось-бы, распечатать такое запросто - стандартный m-d отчёт, но заказчик не ищет лёгких путей а мнение девелопера по этому поводу его мало волнует, и задача формулируется так: напечатеть отчёт так, чтобы выглядело это как если такой же отчёт представить себе выполненным в Excel, то есть сделать строки:
номер, дата, исполнитель1
номер, дата, исполнитель2
номер, дата, исполнитель...
номер, дата, исполнительN
а потом колонки "номер", "дата" объединить по вертикали.
Получится как-бы мастер-детэйл но "в одну строку (переменной высоты по вертикали)".
Я представляю себе два решения, и надеюсь, что вы меня укрепите в одном из них или подскажете лучшее:
1. datasource возвращает записи с полями "номер", "дата", "исполнительN" сортированные в нужном порядке. в отчёте делаем группировку по master-полям и используем опцию "скрывать повторяющиеся значения" на нужных колонках. Вертикальное выравнивание "по центру" для значений в этих колонках возможно?
2. subreport (очень не хочется).
Надеюсь на вашу помощь. Заранее спасибо.
Есть классический мастер-деталь, ну, предположим, master -
номер документа, дата
detail -
исполнитель1, срок, отметка о выполнении;
исполнитель2, срок, отметка о выполнении;
исполнительN, срок, отметка о выполнении;
казалось-бы, распечатать такое запросто - стандартный m-d отчёт, но заказчик не ищет лёгких путей а мнение девелопера по этому поводу его мало волнует, и задача формулируется так: напечатеть отчёт так, чтобы выглядело это как если такой же отчёт представить себе выполненным в Excel, то есть сделать строки:
номер, дата, исполнитель1
номер, дата, исполнитель2
номер, дата, исполнитель...
номер, дата, исполнительN
а потом колонки "номер", "дата" объединить по вертикали.
Получится как-бы мастер-детэйл но "в одну строку (переменной высоты по вертикали)".
Я представляю себе два решения, и надеюсь, что вы меня укрепите в одном из них или подскажете лучшее:
1. datasource возвращает записи с полями "номер", "дата", "исполнительN" сортированные в нужном порядке. в отчёте делаем группировку по master-полям и используем опцию "скрывать повторяющиеся значения" на нужных колонках. Вертикальное выравнивание "по центру" для значений в этих колонках возможно?
2. subreport (очень не хочется).
Надеюсь на вашу помощь. Заранее спасибо.
Комментарии
А чем тебя subreport не устраивает? На мастер бэнде расположи мемо с полями "номер", "дата". Бэнд растягиваемый, мемо - растягиваемые до максимальной высоты. Правее мемо располагаешь на мастер бэнде subreport с опцией печати на бэнде
сделал с сабрепортом. работает нормально.
только ещё вопрос появился - в мастер-детэйле можно у мастера сказать что-то типа "не печатать если детэйл пуст".
а тут можно как-то в этом духе извернуться? то есть не печатать мастер-бэнд если сабрепорт как-бы пуст?
Добавь Detail-бэнд с высотой 0 и установи у мастера "не печатать если детэйл пуст"