Посты от Ноябрь 11th, 2010

Хитрости компоновки: произвольный заголовок

Отзывов (4)FavoriteLoadingВ закладки

Как вывести произвольный макет в произвольном месте схемы компоновки данных.

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

По шагам рассмотрю как вывести шапку для счет-фактуры:

Как вывести произвольный макет в произвольном месте схемы компоновки данных. В ходе работы мне понадобилось формировать печатные формы по заданному макету поставщика. Решил делать с использованием СКД, но столкнулся с тем, что нужно выводить произвольный заголовок, но непонятно как. Немного поискав и посмотрев примеры нашел способ сделать это быстро и просто. Внимание – написанное ниже предполагает, что вы знаете, что такое СКД и как примерно работают в СКД макеты. По шагам рассмотрю как вывести шапку для счет-фактуры: 1. Создаем в схеме новую группировку без указания поля (детальные записи) 2. Установим имя группировке 3. Удалим у данной группировки из выбранных полей автополе 4. В других настройках выберем макет оформления “Без оформления” (иначе на наш макет будет накладываться стандартный макет и вокруг всех ячеек будет рамка) 5. На вкладке макеты добавляем наши данные 6. Добавляем макет группировки и указываем наше имя группировки из п.2 и указываем область с нашими данными 7. Готово Автор статьи Александр Фотов, оригинал статьи тут...

Далее

Как объединить заголовки колонок в таблице

Отзывов (5)FavoriteLoadingВ закладки

Данный пост родился в результате поиска решения проблемы из поста http://1cskd.ru/2010/07/kak-v-skd-nakryt-kolonki-shapkoj/

Имеем отчет вида:

:

Настройки отчета:

Необходимо одинаковые заголовки группировок объединить.

Данный пост родился в результате поиска решения проблемы из поста http://1cskd.ru/2010/07/kak-v-skd-nakryt-kolonki-shapkoj/ Имеем отчет вида: : Настройки отчета: Необходимо одинаковые заголовки группировок объединить. Предлагаю данную операцию произвести над сформированным табличным документом, используя следующий код: // Проверка двух смежных ячеек на идентичночность Функция ОбъединятьЯчейки(ТабДок, индСтр, индКол) Ячейка = ТабДок.Область(индСтр, индКол); ЯчейкаСлед = ТабДок.Область(индСтр, индКол+1); Если ПустаяСтрока(Ячейка.Текст) Тогда Возврат ложь ИначеЕсли //Проверяем на соответствие заголовка Ячейка.Текст = ЯчейкаСлед.Текст // Проверяем на соответствие имени (отсеиваем уже объединенные ячейки) и Ячейка.Имя = "R"+индСтр+"C"+индКол Тогда Возврат Истина; Иначе Возврат ложь КонецЕсли; КонецФункции // Обработка заголовков таблицы // // Параметры // Табл - < Тип.ТабличныйДокумент> - Табличный документ формы Процедура ОбработатьЗаголовки(ТабДок) ОбъединяемаяОбласть = Неопределено; //Для оптимизации здесь нужно будет ограничить высоту таблицы Для индСтр=1 По ТабДок.ВысотаТаблицы Цикл НачальнаяКолонка = 0; Для индКол=1 По ТабДок.ШиринаТаблицы Цикл // определяем начало объединения Если ОбъединятьЯчейки(ТабДок, индСтр, индКол) Тогда Если не НачальнаяКолонка Тогда НачальнаяКолонка = индКол; КонецЕсли; ИначеЕсли НачальнаяКолонка Тогда // завершаем объединение ТекстЗаголовка = ТабДок.Область(индСтр, индКол).Текст; ОбъединяемаяОбласть = ТабДок.Область(индСтр, НачальнаяКолонка, индСтр, индКол); ОбъединяемаяОбласть.Объединить(); ОбъединяемаяОбласть.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр; ОбъединяемаяОбласть.Текст = ТекстЗаголовка; НачальнаяКолонка = 0; Иначе НачальнаяКолонка = 0; КонецЕсли; КонецЦикла; // Если нашли в строке области для объединения, то прекращаем дальнейшие поиски Если не ОбъединяемаяОбласть = Неопределено Тогда возврат; КонецЕсли; КонецЦикла; КонецПроцедуры Вставляем вызов после формирования табличного документа: Результат представлен ниже: Главный недостаток этого способа, трудно заранее определить начальную и конечную область поиска, т. к. функция может отработать  и объединить любые другие смежные идентичные ячейки. Если есть идеи как однозначно идентифицировать ячейки заголовка группировок пишите. А пока этот код можно использовать с некоторыми изменения в каждом  конкретном случае....

Далее

Авторизация

Логин:
Пароль:
Регистрация

Архивы

Закладки

  • Your favorites will be here.