Розглянуто деякі типові завдання, які вирішуються за допомогою визначених макетів, а також перераховані кілька випадків, для яких макети не підходять
Найбільш складним в застосуванні макетів є заповнення колонки "Макет" на вкладці "Макети" в конструкторі СКД.
У природі існує непогана довідка з цього питання. Вона допомагає зрозуміти основні принципи. Але все одно кожен раз доводиться експериментувати з різними видами макетів, щоб зрозуміти чи можна вирішити конкретну задачу за допомогою цього інструменту чи ні. Тому мені прийшла ідея викласти результати експериментів у вигляді статті, щоб потім можна було до них звертатися, і в майбутньому заощадити час. Не обов'язково вчитуватися в текст, досить швидко пробігтися по скриншотам, щоб вибрати вид макета, який найбільше підходить для розв'язуваної задачі
У статті я трохи повторю згадану довідку, щоб викласти деякі важливі деталі більш зрозумілим і конкретним мовою.
Експерименти я проводив над звітом такого вигляду.
макет поля
Цей макет застосовується до конкретної осередку, на відміну від макетів угруповання і заголовка угруповання, які застосовуються до цілої рядку.
Його можна накладати на поля угруповання і на поля ресурсів
Макет заголовка угруповання
Даний вид макета, як уже було сказано вище, застосовується до всієї рядку заголовка.
Якщо його призначити для самої верхньої угруповання, то він таким чином, застосовується для всієї шапки таблиці звіту. Як видно на малюнку, заголовки інших угруповань, а також заголовки ресурсів при цьому ховаються. Тому доводиться ці заголовки домальовувати вручну. Іноді це і потрібно, наприклад для об'єднання осередків в шапці
Застосовувати цей макет для угруповань другого і більш нижніх рівнів зазвичай не має сенсу, тому що одержуваний результат мало де можна застосувати
Однак якщо призначити рядку макета висоту 1, то можна приховати заголовки угруповань поточного і наступного рівнів. На малюнку нижче приховані заголовки Посада та Співробітник
Також заслуговує на увагу використання типу макета Підвал, наприклад для виведення підписантів.
Використання типів Загальний підсумок. наскільки я зрозумів ні на що не впливають. Мені не вдалося створити настройку з цими типами, щоб вона застосувала
макет угруповання
Цей макет застосовується до всієї рядку угруповання. Він може застосовуватися для деяких типових задач, хоча здогадатися як його використовувати не просто
Якщо застосувати цей макет до самої верхньої угрупованню з типом Тема, то під кожною угрупованням повторюється шапка таблиці. Застосовувати такий макет має сенс в тих випадках, наприклад, коли потрібно вставити розриви сторінки перед кожною угрупованням
Якщо застосувати цю схему для угруповання нижнього рівня, то виходить ось що
Або, якщо домалювати стовпці, то вийде так
Якщо виникає завдання змінити підвал з підсумками, то потрібно використовувати цей макет з типом Загальний підсумок підвал або Загальний підсумок заголовок. Наскільки я зрозумів, ці два типи макета роблять одне і те ж
макет ресурсів
Макет використовується тільки для ТАБЛИЦІ. Він застосовується на перетині угруповань, зазначених в настройках
Обмеження використання макетів
- У багатьох випадках при використанні макетів втрачається можливість настройки звіту користувачем. Він не зможе змінювати порядок ресурсів і угруповань, відключати ресурси і угруповання, тому що при цьому звіт приймає незрозумілий вид. Даний недолік не поширюється тільки на макет поля.
- Немає можливості оформити за допомогою макета ТІЛЬКИ заголовок потрібного ресурсу (або групи ресурсів). Наприклад, якщо потрібно вирівняти заголовки ресурсів по центру. Доведеться оформляти всю шапку таблиці повністю і отримати обмеження з п.1
- Немає можливості оформити ТІЛЬКИ заголовок підсумків. Наприклад, кілька разів було потрібно замінити слово "Разом" на слово "Всього". В цьому випадку доведеться малювати всю рядок підсумків і отримати обмеження з п.1 або придумувати щось інше.
Всі описані вище приклади включені до статті у вигляді файлу для скачування. Він містить консоль СКД з набором схем (вбудованим в неї). Запити в прикладі не звертаються до таблиць бази даних, тому приклади запускаються на будь-якої конфігурації в режимі керованого застосування.